博客迁移记录

#站点记录 @博客
版权声明:所有博客文章除特殊声明外均为原创,允许转载,但要求注明出处。

本博客原来使用二级域名(blog.yuhao.space),现为了方便统一管理,迁移到新地址(https://www.yuhao.space/blog)。本文是迁移过程中的一些要点记录,以供参考和备查。

初始配置

安装 nginx、mysql、php 过程不再赘述。需要说明的是php使用fpm模式。

安装HTTPS证书

首先需要修改DNS指向机器IP地址。

网站证书使用 Let's Encrypt It 生成,工具为官方推荐的 Certbot。安装过程参考:

具体命令:

certbot certonly --webroot -w /var/www/html -d yuhao.space -d www.yuhao.space

成功后会有提示,获取到的证书位于 /etc/letsencrypt/live/yuhao.space/xxx.pem.

修改 /etc/nginx/sites-avialable/default,打开HTTPS,并配置证书:

ssl_certificate /etc/letsencrypt/live/yuhao.space/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yuhao.space/privkey.pem;

创建数据库

# mysql -u root -p
> create database wordpress;
> grant all privileges on wordpress.* to 'wordpress'@'localhost' identified by '<password>';
> flush privileges;
# quit

安装配置Wordpress

wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz
tar zxf wordpress-4.7.4-zh_CN.tar.gz
sudo mv wordpress /var/www/html/blog
cd /var/www/html/blog
sudo cp wp-config-example.php wp-config.php
curl --sSL https://api.wordpress.org/secret-key/1.1/salt/ >> wp-config.php

编辑 wp-config.php,

  1. 按照前述配置修改 DB_NAME, DB_USER, DB_PASSWORD, DB_HOST。
  2. 将服务追加到文件末尾的几行(AUTH_KEY)替换掉原来的行。
sudo vim /etc/nginx/sites-avialable/default

删除php配置部分的注释,包括fpm, 但不需要打开cgi。

完毕后运行 wp-admin/install.php,按提示执行(记录密码备用)。

 

Nginx路由配置

运行后发现博客首页可访问,文章点进去出现404。参考文章 如何将wordpress安装在子目录中? 编辑Nginx配置:

location /blog {
    index  index.html index.htm index.php;
    try_files $uri $uri/ /blog/index.php?$args;
}

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    if (!-f $document_root$fastcgi_script_name) {
    return 404;
}

fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
# fastcgi_index> index.php;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}

完成后重启Nginx。

更新

打开 Wordpress 可能会提示有新版本和插件更新。如果点击更新后发现有FTP的提示,一般是因为php目录权限引起,按如下方式修改文件所有者:

chmod -R www-data /var/www/html/blog
chgrp -R www-data /var/www/html/blog

(www-data是php-fpm默认运行使用的用户名/组名)

重启服务(sudo service nginx restart; sudo service php7.0-fpm restart;)然后再更新即可。