🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

WordPress 性能优化:使用 nginx 服务器

“WordPress 为什么这么慢”,您或许会有这样的疑问。我觉得强大的东西都是有代价的,但也是有方法可以解决的,接下来我们花点时间去研究一下 WordPress 的性能优化。这里说的性能优化,包含两个东西,scalability 还有 performance。scalability 是扩展性,意思就是能承受的压力,也就是 WordPress 能为多少人提供服务。performance 是性能,也就是 WordPress 页面的响应速度。

我们不需要太担心 WordPress 是否能承受大规模的访问,有两个很好的例子,可以让我们放心去使用 WordPress,一个是 WordPress.com 还有一个是 WordPress.org,根据 alexa 的统计,WordPress.com 还有 WordPress.org 在全世界的网站排名都在前一百名。当然 alexa 的统计数据仅供参考,并不是确切的排名。除非你觉得自己的网站规模与流量会大过这两个网站,不然,我们还是可以放心使用 WordPress 去创建能够承受大规模访问的网站。

优化性能,主要是两个方面,硬件还有软件,硬件方面,当然 CPU 越快,RAM 内存更大,你的网站也就会越快。软件方面,可以去优化提供服务的平台的配置,比如优化 Web 服务器,优化数据库,使用各种缓存功能等等,我们也可以搭配 CDN ,负载均衡这些服务。WordPress 本身也可以优化,比如在设计主题的时候,可以减少冗余的代码,可以减少请求的次数,可以把多个样式表或者脚本文件合并在一起,可以把小图像使用 Sprites 技术合并在一起,或者可以把小图像放在样式表里等等。

现在的云服务可以给我们提供一个可扩展的平台,CPU 不快,内存不够,数据盘满了都可以很容易去增加,并且很多云服务商都提供 CDN 或者负载均衡服务,这让我们很容易去部署它们,而且成本很低,一般都是按需收费。

使用 nginx 服务器

我们可以先把 Web 服务器换成 nginx,WordPress.com 还有 WordPress.org 也都在使用 nginx 服务器,你可以使用 http://builtwith.com/ 提供的服务去查看一下,另外我在 WordPress.tv 上看到的一个视频里(我找不到了),也提到过 WordPress.com 使用的 Web 服务器就是 nginx。之前我们介绍过怎么样去创建一个 nginx 服务器。想在 nginx 服务器上去运行 WordPress,还需要一点配置。比如你得考虑 WordPress 的伪静态(地址重写)。下面,假设您已经安装并配置好了基本的 nginx 服务器,然后我们再去安装一下 WordPress。

在服务器上安装 WordPress

使用 ssh 登录到服务器以后,去给 WordPress 创建一个数据库,再去安装 WordPress。可以下载中文版 WordPress。先进入到你的网站目录,然后使用 wget 命令去下载最新的中文版的 WordPress:

wget http://cn.wordpress.org/wordpress-3.8.1-zh_CN.zip

完成以后使用 unzip 解压一下:

unzip wordpress-3.8.1-zh_CN.zip

unzip 后面加上要解压的 zip 格式的压缩包的名称。注意解压以后,WordPress 的所有的文件会放在一个叫 wordpress 的目录下面,我们需要把这个目录里面的东西全部都移动到网站的根目录下面,也就是跟你的域名绑定在一起的那个目录。假设你已经在这个目录里面了,移动文件或目录可以这样:

mv wordpress/* .

这行命令意思是,把当前目录里面的 wordpress 这个目录里面的所有的东西,全部都移动到当前目录的下面,一个点表示当前目录。这样,我们应该可以直接使用你跟这个目录绑定在一起的域名,访问到这个目录下面的内容了,因为还没有安装 WordPress,所以,打开以后,会显示 WordPress 的安装界面。

创建 wp-config.php

安装过程中,WordPress 需要让你输入连接到数据库的相关信息,比如数据库的用户名,密码,数据库的名称等等。这些信息需要保存在一个叫 wp-config.php 的文件里面,配置好数据库信息以后,点下一步,会要求你去创建这个 wp-config.php 文件,文件里面的内容会显示在安装的界面上,复制这些内容,然后使用 vim 命令,去在 WordPress 的根目录下创建一个 wp-config.php 的文件:

vim wp-config.php

按小 i 进入编辑模式,把复制的内容粘贴进去,然后按 esc 退出,再输入 :wp 保存并退出。回到 WordPress 的安装界面,点击 进行安装,再输入网站的标题,管理员用户名,密码,点击 安装 WordPress。现在,你已经在服务器上成功的安装了 WordPress。

修改目录权限

在 WordPress 里面上传文件到媒体库,安装或更新主题与插件,这些都需要为 wp-content 目录设置合适的权限。因为上传的文件,安装的插件或者主题都会放在这个目录的下面,如果你的 Web 服务器没有对 wp-content 的写入权限,在安装插件的时候,可能会提示你输入 FTP 的帐户信息。我们可以把 wp-content 这个目录以及它里面所包含的目录的拥有者设置成 Web 服务器的用户。

我用的是 nginx + php-fpm ,这两个东西的用户我都设置成了 nginx ,所以,我们只需要把 wp-content 这个目录的拥有者设置成 nginx 就行了。修改目录或文件的用户与用户组可以使用 chown 命令:

chown -R nginx:nginx wp-content

上面这行命令加了一个 -R 参数,表示递归,意思是把 wp-content 这个目录,以及它所包含的子目录的拥有者与用户组都设置为 nginx ,设置好以后,可以使用 ls 命令去查看一下:

ls -la

确定 wp-content 这个目录的拥有者还有用户组都已经修改成了 nginx 。注意 nginx 这个用户是我自己定义的,也就是通过修改 nginx 还有 php-fpm 的配置文件来定义的。你的 Web 服务器还有 php-fpm 使用的用户很可能不是这个用户。

强制 WordPress 直接安装插件

我在测试安装 WordPress 插件的时候,虽然为 wp-content 设置了合适的权限,但在安装时,还是提示我输入 FTP 的相关信息。解决的方法是,可以通过修改 wp-config.php 文件,编辑一下这个文件,然后添加下面这行代码:

define('FS_METHOD', 'direct');

这行代码的意思是,告诉 WordPress 我们要直接去安装或者更新插件,不使用 FTP,SSH 等方法。保存文件并退出。现在,你可以正常去上传图片,文件,可以安装或更新插件和主题了。

nginx 下 WordPress 的伪静态

多站点,安装了缓存插件的 WordPress 这些都需要特殊的 nginx 配置,才能让 WordPress 使用伪静态,也就是地址重写,设置固定链接的功能。下面我们先来看一下没有使用这些功能的 WordPress 的最小化的配置:

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

只需要在 WordPress 的 nginx 配置文件里面,在 location / 这个区块里,添加  try_files $uri $uri/ /index.php?$args; 这行代码就可以了。

WordPress nginx

评论

好久不见王老师了

你好 yuesong :)

谢谢浩哥,最后一个rewrite的,我之前用的是,
if (!-e $request_filename){
rewrite (.*) /index.php;
}

我再学学 nginx 的配置

白告哥,这个是用哪个服务器操作系统装的?

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点