Ubuntu搭建WordPress完整过程

WordPress作的世界上最流行的博客程序,换来换去依然选择了它;因为它完整的社区支持,庞大的插件系统,拥有最全面的主题样式。基本上使用过程中的所有问题都能够从网上找到答案,可定制性极强,非常适合想要安心写博客的人。

WordPress 的“后悔成本”很低,即当你不想继续使用 WordPress ,可以轻松的迁移到其他博客平台。因为其他博客若是想要获得用户,就需要让用户量第一的 WordPress 使用者可以迁移过去。所以当世界第二大博客程序超过WordPress之前,我想我大概不会去换博客了,于是在此记录下我的安装过程。

注意:以下示例均在 Ubuntu 18.04 的环境下安装,其他版本 Debian 系系统均大同小异。这里我们以使用域名 yuan.ga 部署 WordPress 为演示案例。

一、安装LAMP环境

安装 LAMP 环境这在Ubuntu下就是一句命令的事,由于现在 HTTPS 的普及,也顺便安装上 certbot:

sudo apt install lamp-server^ -y
sudo apt install certbot

不要忽略后面的^,之后会自动安装Apache2、PHP、MySql这些安装 WordPress 所必须的网站环境。此过程中可能需要输入 MySql 的 root 帐号密码,记下这个,这很重要。当然,你也可能不满足于这种固定的安装方式,想要自己选择组件版本,还有一篇文章可供参考:Ubuntu搭建LAMP环境

二、下载WordPress

进行下列操作,就可以完成从下载 WordPress 到解压,并把文件夹及目录的拥有者更改为 www-data ,这是 Apache2 使用的用户,修改拥有者和用户组使得 Apache2 有权限访问 WordPress 文件。

cd /var/www
sudo wget https://wordpress.org/latest.zip
sudo unzip latest.zip
sudo mv wordpress yuan.ga
sudo chown –R www-data:www-data yuan.ga

另外我将目录名更改为 yuan.ga,网站文件目录名为域名是一种惯例,方便我们记忆和管理。

三、配置Apache2、Mysql

1)配置Apache2

sudo a2enmod headers rewrite ssl http2 # 启用一些必要的模块
sudo vim /etc/apache2/sites-available/yuan.ga.conf # 编辑配置文件加入下列内容
<IfModule mod_ssl.c>
<VirtualHost *:80>
	ServerName yuan.ga
	Redirect permanent / https://yearliny.com/
</VirtualHost>
<VirtualHost *:443>
	ServerAdmin [email protected]
	DocumentRoot /var/www/yuan.ga
	Protocols h2 http/1.1

	ErrorLog ${APACHE_LOG_DIR}/yuan.ga.error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	ServerName yuan.ga
	ServerAlias www.yuan.ga
	Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
	Include /etc/letsencrypt/options-ssl-apache.conf
	SSLCertificateFile /etc/letsencrypt/live/yuan.ga/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/yuan.ga/privkey.pem
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>

编辑配置中的 ServerAdmin 的邮箱为自己的,第二行修改成自己的 WordPress 目录,配置中所有 yuan.ga 全部修改成自己的域名。修改后保存退出,并启用自己的网站配置,禁用默认配置。

然后我们开始使用 certbot 获取 Let’s Encript 证书,这段内容参考 Let&#8217;s Encryp,建议使用文章中的 泛域名证书 进行配置,不再赘述。最后我们启用我们的网站配置,重新载入配置文件使其生效。

sudo a2dissite 000-default
sudo a2ensite yuan.ga
# Ubuntu 14.10 或更老版本选择这个命令
sudo service apache2 reload
# Ubuntu 16.04或更高版本选择下列命令,后面对此区别不再重复。
sudo systemctl reload apache2

2)配置Mysql

新版本 Ubuntu 安装 Mysql 的过程不再要求设定 root 用户密码,而是在安装完毕后进行设定,设定 root 用户密码的过程参考 Ubuntu18.04 安装 Mysql

执行mysql -uroot –p  ,输入之前设定的 root 密码,执行下列操作

CREATE DATABASE wordpress;
CREATE USER 'wpuser'@localhost IDENTIFIED BY '12345';
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost;
FLUSH PRIVILEGES;
exit;

上面的操作含义依次是:

  1. 创建名为 wordpress 的数据库。
  2. 创建一个用户,名为 wpuser ,密码为12345。
  3. 赋予 wpuser 用户对 wordpress 数据库的所有操作权限。
  4. 刷新权限:Mysql 新设置用户或更改密码后都需要刷新权限,否则修改不会即时生效,重启 Mysql 服务可以起到同样的效果。
  5. 退出

三、WordPress配置

到此为止,基本部署的差不多了,就差最后一步了,也是最简单的一步,当使用到熟悉的可视化直接在浏览器访问自己的 VPS IP,就能够看到 WordPress 的界面,配置进去自己的 MySql 数据库名称、用户名、密码等信息,其他的直接默认,接着输入站点名称、描述什么的就完成了。

之后只要 DNS 解析 A记录 到自己的域名就基本完成了。

四、固定链接

WordPress固定链接设置已经非常人性化了,只要你给 WordPress 给网站目录的写入权限,当你需要这个功能并设定的时候,就可以自动的完成服务端的 .htaccess 配置,但是 Apache2 默认禁用了 .htaccess ,所以需要我们手动去配置。

sudo vim /etc/apache2/apache2.conf

找到上图的配置,并把 None 修改为 All(不区分大小写,可以写成all),然后重启 Apache2 ,搞定!

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
</Directory>
sudo systemctl restart apache2

五、禁用Manual

你也许不知道 Manual 是什么,但这个和使用 Apache2 的人息息相关,此时你的站点应该可以完全访问了,你可以尝试访问 youdomain.com/manual ,接着你可能会看到类似下面的东西:

没错,这就是 Apache2 的帮助文档,上面的内容对于使用 Apache 非常有用,若是想要完全了解 Apache2 功能和配置的话,看这个无疑是最有帮助的。但是你也不想要在自己的网站里面弄这么个东西,对于有洁癖和强迫症的人更是如此。

实际上取消这个非常容易,此时网上搜索到的方法大多都已经过时了,这个配置被整合了起来而不是写入到单个配置中,它实际就是 /etc/apache2/conf-available/apache2-doc.conf ,我们只需要禁用它就 OK 了,重新载入配置生效。

sudo a2disconf apache2-doc
sydo systemctl reload apache2

评论

《 “Ubuntu搭建WordPress完整过程” 》 有 2 条评论

  1. 博主你的 ubuntu 版本多少? Apache / PHP / MySQL 的版本分别是多少?

    1. Linux 2.6.32-042stab113.11 #1 SMP Fri Dec 18 17:32:04 MSK 2015 i686 i686 i686 GNU/Linux
      ubuntu14.04,
      PHP 5.5.9-1ubuntu4.14
      Apache Server version: 2.4.7
      mysql Server version: 5.5.47
      我想这些版本号一般不是很重要吧,通过这种方式安装的版本大概不是最新的但也不会很老,你需要什么帮助吗?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注