最早玩 Linux 服务器也不知道拿来干啥,就练习练习命令,后来学了 Django,能写个简单的应用然后部署了,Django 部署其实很容易,但对于新手来说还要处理各种依赖安装失败,简直噩梦,后来用的多了,有经验了,再加上使用场景也多了。服务器在 DigitalOcean 上也是随便开着用,想玩个爬虫就临时开机器出来用,安装配置也是分分钟的事儿,处理什么依赖安装失败也很容易,随便搜索搜索再加上经验,很容易就搞定了。但我一直没装过 Wordpress,正好有朋友要我帮忙弄个站点,还有点要求,速度要快,要上 HTTPS,我就先给他在 DigitalOcean 一键安装了出来,先凑合用,一键安装出来是 Apache 做 HTTP 服务器,我不会 HTTP 更不会配置 Apache,所以还是得手动装,我也大致了解 Wordpress 是怎么运行的,nginx + php7.0-fpm + mysql + wordpress 就这四个东西,和其他应用的原理都是一样的,我也把这个过程做个笔记,以后方便查。
DigitalOcean 上开个 $5 的机器,选上 add ssh key
,直接用 root 用户,就先不配服务器的用户了,照理说这一步是配置好 ssh 登录,然后把 root 用户登录关闭掉,避免风险的。
登录上服务器,直接更新升级然后安装一波必要东西
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install git gcc g++ vim
安装 nginx/mysql-server/php7.0-fpm
sudo apt-get install nginx
sudo apt-get install mysql-server
sudo apt-get install php7.0-fpm
配置 mysql
创建 wordpress 要用的数据库,这里 mysql 就也不再创建用户了,直接用 root,把密码设置复杂点。
mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL ON wordpress.* TO ‘root’@‘localhost' IDENTIFIED BY ‘root’;*FLUSH PRIVILEGES;
EXIT;
重启 mysql
sudo systemctl restart mysql-server
安装 php 插件
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
DigitalOcean 里面让安装这些东西,实际我安装完了之后发现报错,还少 mysql 的一个插件:
sudo apt-get install php7.0-mysql
配置 php7.0-fpm
就是个 wsgi 的中间件。
sudo vi /etc/php/7.0/fpm/php.ini
在最后加一行:
cgi.fix_pathinfo=0
sudo vi /var/www/html/info.php
粘贴进去:
<?php
phpinfo();
?>
把中间件的连接方式换成端口
sudo vi /etc/php/7.0/fpm/pool.d/www.conf
找到 listen = /var/run/php5-fpm.sock
注释掉,换成:
listen = 127.0.0.1:9000
重启 php7.0-fpm
sudo systemctl restart php7.0-fpm
下载解压 wordpress,配置
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
cd wordpress
cp wordpress-config-sample.php wp-config.php
生成 key:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
复制后:
sudo vi wp-config.php
找到对应的地方,粘贴替换。
数据库的名字、用户名、密码也替换掉之前创建的:
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
配置 nginx
nginx 也不新建配置了,直接写在默认配置里面:
sudo vi /etc/nginx/sites-available/default
改掉这几个地方:
server {
listen 80 default_server;
listen 198.199.119.75 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location \.php$ {
include snippets/fastcgi-php.conf;
# \# With php7.0-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# \# With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
重启 php7.0-fpm 和 nginx
sudo systemctl restart php7.0-fpm
sudo nginx -s stop
sudo nginx
完成,然后就是把 nginx 加上压缩,加上 https,再加上那个 google analytics 就齐活了,一个网站就搞定了,要做外贸电商也很容易,woocommerce 插件一装,paypal 配置好,上架商品,就行了。做码农真的容易被限制思维方式,其实想做任何东西,都有现成的工具可以用,只要整合就行了。
参考链接
How To Install WordPress with LEMP on Ubuntu 16.04 | DigitalOcean Installing Nginx with PHP 7 and MySQL 5.7 (LEMP) on Ubuntu 16.04 LTS How to Fix the Missing MySQL Extension Error in WordPress – RoseHosting Blog