Ubuntu 16.04 快糙猛安装部署 Wordpress

Posted by JC on 2017-12-14 13:48:38 Updated on 2017-12-14 13:48:38

最早玩 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

tags: devops


BMC logoBuy me a coffee via Alipay or Wechat Pay