在 EC2 中安装 Apache 2.4、PHP 5.5 和 MySQL 5.5 并运行 WordPress

0 前言

在更换主机的同时,我顺便也升级了一下软件。之前使用的是 Apache 2.2 + PHP 5.3.5,没有 MySQL。Apache 2.2 依然是世界上使用最多的网络服务器,只不过它已经很老了,目前已停止新功能的开发,只进行安全更新。只是它一直都运行地很好,多数网站都没有动力去升级,以至于已经推出了 2 年的 Apache 2.4 目前还只有 3.5% 的使用率。同样,由于 PHP 5.3 到 5.4 有一些不兼容的更新,使得 PHP 5.4+ 也普及得比较慢。

新版本的使用人数少,相关的问题解答和文档也相应较少,这里就记录一下我的升级步骤,或许对其他人也有帮助。本文针对 EC2 中的 Amazon Linux(基于 Fedora),如果你使用的是其它的 Linux 发行版,部分命令需要相应更改。

1 安装和配置 Apache

1.1 安装 Apache

1.1.1 安装 SSL 模块(可选)

如果你的站点不需要 HTTPS,可以不装。

1.1.2 安装 Pagespeed 模块(可选)(详细介绍

推荐但不是必需的,Pagespeed 可以极大地提升页面打开速度,只要安装好就可以看到效果,不需要额外配置。

1.2 配置 Apache

Apache 的目录是/etc/httpd,2.4 的目录结构和 2.2 有很大的差别,不建议直接把 2.2 的配置文件直接复制过来,还是重新配置为好:

1.2.1 修改 /etc/httpd/conf/httpd.conf

1.2.2 修改 /etc/httpd/conf.modules.d/00-mpm.conf

1.2.3 新建 /etc/httpd/conf.d/y-common.conf

1.2.4 新建/etc/httpd/conf.d/z-leonax.conf

如果你已经有 vHost 的配置,可以直接复制过来,如果没有,可以按下面的方法创建一个简单的 vHost。vHost 的作用是告诉 Apache 域名和本地文件的对应关系。

2 安装和配置 PHP-FPM

PHP-FPM 是一个 PHP 的运行环境,FPM 全称 FastCGI Process Manager。它相当于一个独立的 PHP 服务器,专门用于解释 PHP 文件。和 Apache 2.2 中的 PHP-Fcgid 不一样的是,PHP-FPM 不再依赖于 Apache。它的性能更好,而且完全兼容 PHP 5.5。

2.1 安装 PHP-FPM

其中 php55-mysqlnd 是 MySQL 的连接库,php55-opcache 是新的 PHP 缓存组件,用于取供之前的 APC。

2.2 配置 PHP-FPM

2.2.1 修改 /etc/php-fpm-5.5.d/www.conf

2.2.2 修改 /etc/php-5.5.d/opcache.ini

2.2.3 修改 /etc/httpd/conf.d/php-5.5.conf

2.2.4 删除 /etc/httpd/conf.modules.d/10-php-5.5.conf

这个文件原本是用来加载 mod_php 模块的,但我们已经改用 PHP-FPM 了,所以就把它删掉。

2.2.5 在 vHost 中添加 PHP-FPM 的Proxy

这段指令让 Apache 把所有的 PHP 文件都交由 PHP-FPM 处理,可以把它写在 vHost 的最后一行。

3 安装和配置 MySQL

3.1 安装 MySQL 5.5

其中 mysql55 是 MySQL 的命令行工具,mysql55-server 是数据库的运行环境。

3.2 配置 MySQL 5.5

3.2.1 修改 /etc/my.cnf

3.2.2 添加新的用户

为了安全起见,新的数据库可以设置一个单独的帐号来访问。帐号出问题也只影响这一个数据库。当然你也可以用 root 直接访问,并跳过这一部分。

3.2.3 把之前 MySQL 的数据导出

如果不需要导入之前的 WordPress 数据,可以跳到 3.2.5。

3.2.4 导入备份的数据

3.2.5 修改 wp-config.php

假设你已经复制好了 WordPress 的源文件,如果还没有的话,请参考附录 5.1。

4 主机配置

4.1 启动各项服务

之后你的 WordPress 博客就可以访问了。

4.2 自动启动各项服务

如果不设置这一步,机器重启之后,各项服务是不会自动启动的。

4.3 把 /tmp 移到 tmpfs (原因

修改 /etc/fstab 文件,在最后添加一行:

4.4 创建 swap 分区

swap 分区是在内存不够用的情况下,把一些进程暂时写到文件中,以达到释放内存的效果。通常来说 t2.micro 的内存够用了,一般用量在 800M 左右,但以防万一,我还是做了一个 swap 分区。以下代码会创建一个 1GB 大小的 swap 文件:

继续修改 /etc/fstab 文件,在最后添加一行:

5 附录

5.1 下载并安装 WordPress

6 更新历史

  • 2014.07.31 初版
  • 2015.12.18 修复一些小错误