[toc]
一、背景
现在(2019年2月22日)大家看到的我的博客是基于Ubuntu 14.04
搭建的,也就是说系统出来已经五年了,所以很多工具还是比较老的,于是我尝试着将系统做一次升级。升级过程中,提示我某些工具版本可能不兼容,等等,我都没怎么在意,结果升完级一看,博客无法正常打开了。只好将系统还原回去,另作打算。后来一想,即使能解决成功,但是肯定会出现一些小问题的,对于我这种有点小洁癖的人,心里自然是不太爽的。干脆基于Ubuntu 18.10
重新搭建博客,再将数据迁移过来。一来可以完美升级一下系统;二来顺便记录一下博客搭建的步骤和方法,分享给更多人;再次顺便实践一下博客数据的备份和恢复,以防万一哪天博客打不开,我可以以最快速度还原一个镜像出来。博客的迁移涉及到很多数据,比如博客文章的数据,网页站点的设置,还有一些小功能,比如安装SSL证书,添加google索引,等等。所以,本次博客的迁移将按照以下步骤来完成,每个步骤分别为一篇文章。
- 新系统上博客的搭建
- 博客数据备份、迁移和还原
- 个人博客免费申请并安装SSL证书
- 一些其他的小设置
简单说一下我的博客框架:我的博客是以WordPress
为模板、以apache
作为Web服务器、以phpmyadmin
为数据库管理工具搭建出来的。当然,安装wordpress最权威的教程自然是官方的博客。但是,安装不可避免的会碰到各种各样的问题。由于环境不一样,每个人遇到问题自然不一样。所以本文也会详细节录下来我这次安装时遇到的问题,以供大家参考。
二、环境
系统版本: Ubuntu 18.10
Kernel版本: 4.18.0-10-generic
以上是我本次搭建博客的服务器信息。该服务器是VPS,它是按照如何搭建自己的虚拟专用服务器上记录的方法创建出来的。注意:操作系统的版本是ubuntu 18.10
,不同的操作系统,后续安装的软件方法会略有不同,务必区分清楚系统版本。
三、必备软件安装
以下是官方博客中提到的安装WordPress
基本软件需求。
- PHP 7.3 or greater
- MySQL 5.6 or greater OR MariaDB 10.0 or greater
- Nginx or Apache with mod_rewrite module
- HTTPS support
下面我们来一一安装。安装时我参考了参考阅读1。
3.1 安装Web服务器
apache2
是一个被广泛使用的Web服务器,它的作用就是相应浏览器的需求,将用户需要的页面提供给浏览器。类似的nginx
也是一种Web服务器,我们在前面搭建Gerrit
的时候已经遇到过了。这里使用apache2
来最为我们本次搭建博客的Web服务器。其安装命令如下:
sudo apt update
sudo apt install apache2
安装完成之后,可以打开浏览器,输入以下网址来测试apache2
是否安装成功:
http://your_server_ip
如果从浏览器能看到下图,则表示安装成功。
3.2 安装MySQL
博客的数据库使用MySQL来存储和操作。其安装方法如下:
sudo apt install mysql-server
3.3 安装PHP
由于WordPress
是使用php
来编写的博客框架,所以我们需要安装php
相关的套件,以支持WordPress
的运行。具体安装命令如下:
sudo apt install php libapache2-mod-php php-mysql
3.4 安装phpMyadmin
phpMyadmin
是一个基于Web页面管理MySQL的工具,在其上面可以方便的建立、修改、删除数据库。其安装命令如下:
sudo apt install phpmyadmin php-mbstring php-gettext
在安装过程中会弹出来下面窗口:
此时,默认会选中apache2
,应该按下空格
键,apache2
前面出现*
,即选定apache2
,然后按TAB
,再按下回车
键。这个步骤最终会在/etc/apache2/config-enable
目录下创建phpmyadmin.conf
文件。
接下来会弹出来下面窗口:
询问是否使用dbconfig-common
来设置数据库,这里选择是
.
然后,会弹出下面的窗口,来设置数据库的密码:
之后会再次弹出窗口确认密码:
等待程序安装完成之后,使用下面的命令使能mbstring
这个php扩展插件。
sudo phpenmod mbstring
然后使用下面的命令重启apache服务:
sudo systemctl restart apache2
这时,phpMyAdmin
已经成功安装了。在浏览器中输入
http://your_server_ip/phpmyadmin/
可以看到下面的界面,使用账号:phpmyadmin
和刚才输入的密码即可登陆。
四、WordPress安装
下面我们来安装WordPress
。
4.1 下载wordpress
wget https://wordpress.org/latest.tar.gz
4.2 解压
由于在访问网站时,apache
默认读取的是/var/www/html
下的内容,因此,我们只需要把WordPress
里解压出来的内容替换到这个目录下即可。注意,在安装apache
时,默认在/var/www/html
文件下生成了一个名为index.html
的网页。而apache
默认会优先读取它,所以在复制WordPress
下的内容之前,应该先删除掉该文件.
sudo rm /var/www/html/index.html
tar zxvf latest.tar.gz
sudo cp -rf wordpress/* /var/www/html
sudo chown -R www-data:www-data /var/www
完成上述操作后,博客已经部署完成,登录博客http://your_server_ip/
就可以看到下图:
可以看出来第一次登录默认跳转到设置界面。选择你的博客后台默认语言(我选择的是简体中文
),然后继续。则会看到下面的页面。
这里是要填写博客的数据库等信息。
4.3 添加数据库及相关权限。
在设置完phpMyAdmin
之后,我们可以使用用户名为phpmyadmin
来登录数据库后台,但是这个用户仅具有设置phpmyadmin
数据库的相关操作的权限,并非我们创建博客使用的数据库的权限。因此,我们最好是使用root账号或者创建一个新用户来专门管理博客使用的数据库。
在运行高于MySQL 5.7
版本以上的Ubuntu系统上,root
用户被设置成默认使用auth_socket
而不是使用密码登录。这虽然在某些情况下更安全和更实用,但是对于使用外部程序管理数据库(比如phpMyAdmin
)的软件来讲,却变得非常复杂。所以,为了能够使用root
账号登录MySQL
,我们需要把root
用户的认证方式从auth_socket
切换成mysql_native_password
。
4.3.1 查看当前认证方式
使用下列命令查看
sudo mysql
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
查看结果如下图所示:
上图可看出,当前root
用户的plugin
使用的是auth_socket
;
4.3.2 设置root用户密码并且换认证方式
使用下面命令修改认证方式,并查看是否修改成功:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
注:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
中的password
为root
用户的密码,可根据自己需要设置。
上图可以看出,已经修改成功。此时,我们就可以使用root
账户可刚刚设置的密码来登录数据库的后台了。在浏览器中输入http://your_server_ip/phpmyadmin/
,登陆成功后,可以看到下面的页面:
我们注意到左侧列表中的数据库比之前我们使用phpmyadmin
账户登录后看到的数据库多了几个。这里可以看到使用命令行安装的phpMyAdmin
版本为4.6.6
。
4.4 为博客创建数据库
1) 使用root
登录phpMyAdmin
,点击左上角的新建
2) 输入数据库的名字(比如wordpress_DB
),点击创建
4.5 继续完成安装博客
- 填写数据库等信息
还记我们4.2中,我们打开博客后显示的管理页面吗?点击现在就开始!
,再打开的页面中输入4.4中我们填的数据库名字。账户为4.3.2中提到的root
,密码为当时设置的密码。后面两项默认即可。点击提交
。GO!
点击现在安装
- 填写博客信息
“站点标题”、“用户名”和“密码”可以自己随意设置,“邮箱”填写自己可用的邮箱。点击安装WordPress
点击登录
使用刚才创建的博客后台账号密码登录
- 博客后台预览
恭喜你,你的博客已经搭建OK!
五、遇到的问题
5.1 数据库导入页面检测到错误
现象:在使用root
账户登录到phpMyAdmin
后,我们点导入
按钮,会发现以下报错:
Warning in ./libraries/plugin_interface.lib.php#551
count(): Parameter must be an array or an object that implements Countable
经过google发现类似的问题需要修改phpMyAdmin
的源码。这种问题显然是软件的bug,因此我觉得可以通过更新较新的版本来解决。
解决办法:更新phpMyAdmin
版本
由于我们之前是在update源之后通过命令安装的phpMyAdmin
,在不修改源的情况下,是没有办法通过命令更新到较新版本的。所以这里需要手动下载安装phpmyadmin
版本。注意,重新安装不能卸载之前的版本!
1. 使用命令sudo rm -rf /usr/share/phpmyadmin
删掉phpmyadmin
的安装目录(一般是在/usr/share
下)
2. 打开phpMyAdmin
官网,查找最新版本的下载链接,使用wget下载最新安装包。
wget -P ~/Downloads/ https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip
- 使用下列命令解压上述文件,并将其复制到
/usr/share
下。
cd ~/Downloads
unzip phpMyAdmin-4.8.5-all-languages.zip
sudo cp -rf phpMyAdmin-4.8.5-all-languages /usr/share/phpmyadmin
sudo mv /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
执行完上述操作后,打开phpmyadmin
,原来的错误果然没有了。但是,如果你能够看到以下两个小错误的话,
1. the configuration file now needs a secret passphrase (blowfish_secret). phpmyadmin
2. The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.
请继续往下做。
- 打开网站,复制它帮我们生成的
Blowfish Secret
,将其填写到/usr/share/phpmyadmin/config.inc.php
里的$cfg['blowfish_secret']
对应的值。这样可以解决第一个错误。 -
为phpMyAdmin创建运行的临时目录可以解决第二个错误。命令如下:
sudo mkdir /usr/share/phpmyadmin/tmp sudo chown -R www-data:www-data /usr/share/phpmyadmin
按照上述设置修改完成之后,在进入phpmyadmin
首页我们会发现,其版本变成了4.8.5
.
请问这个配置下应该怎么修改maximum upload file size。
我尝试了网上所有办法都没成功,php.ini等等。试了俩小时了,无论怎么改,WORDPRESS的限制都是2M
和默认上传文件大小相关的值有三个:memory_limit、post_max_size和upload_max_filesize。这三个值的大小依次应该是:
memory_limit > post_max_size > upload_max_filesize
你可以确认一下memory_limit,post_max_size这两个值是不是被限制成2M了,如果是的话也要将它们改大一点,比如20M。
感谢,已经搞定了。
浪费那么多时间主要原因是懒得查phpinfo,自以为知道默认php.ini的位置。今天先查了info才发现实际加载的php.ini在另一个目录
感谢, 让我一个小白也可以搭自己的博客
共同学习,共同学习,我也是边摸索边搭建起来的。^_^
卡在http://your_server_ip/phpmyadmin了