虽然LAMP堆栈(Linux + Apache + MySQL + PHP)在为WordPress提供动力方面非常流行,但也可以使用Nginx。WordPress支持Nginx,一些大型WordPress网站(例如WordPress.com)由Nginx提供支持。
在谈论Nginx时,重要的是要知道有多种实现Nginx的方法。可以将它设置为Apache前面的反向代理,这是一个非常强大的设置,它使您可以使用Apache的所有功能和功能,同时受益于Nginx的速度。实际上,大多数报告使用Nginx作为服务器的网站(基于从HTTP响应标头收集的统计信息)实际上都是使用Nginx作为反向代理运行的Apache。(显示“ Nginx”的HTTP响应标头是由反向代理而不是服务器本身报告的。)
本指南指的是一个独立的Nginx设置,该设置被用作主要服务器而不是Apache。应当指出,Nginx并不是Apache的完全可互换的替代品。在继续进行操作之前,需要了解一些影响WordPress实现的关键差异:
- 使用Nginx,没有像Apache的.htaccess或IIS的web.config文件这样的目录级配置文件。所有配置都必须由管理员在服务器级别完成,并且WordPress无法修改配置,就像使用Apache或IIS一样。
- 运行Nginx时,Premier Permalinks功能略有不同。
- 由于Nginx不具有.htaccess类型的功能,并且WordPress无法自动为您修改服务器配置,因此它无法为您生成重写规则。
- 在不修改安装的情况下,“ index.php”将添加到您的永久链接中。(有多种方法可以通过插件(见下文)缓解和/或向子主题的functions.php添加自定义代码。)
- 但是,如果您确实希望具有某些(有限的).htaccess功能,则从技术上讲,可以通过为PHP安装htscanner PECL扩展来进行添加。(但是,这不是一个完美的解决方案,因此请确保在实际站点上使用之前进行彻底的测试和调试。)
本指南将不会介绍如何安装和配置Nginx,因此假定您已经安装了Nginx,并且对如何使用和调试它具有基本的了解。
通用和多站点支持通用和多站点支持
要使WordPress与Nginx一起使用,您必须配置后端php-cgi。可用的选项为“ fastcgi”或“ php-fpm”。在这里,使用了php-fpm,因为它已包含在PHP 5.3+中,因此安装起来很简单。
Nginx配置已分解为五个不同的文件,并进行了大量注释,以使每个选项都更易于理解。该作者还做了最大努力试图遵循“最佳实践”为nginx的配置。
主(通用)启动文件主(通用)启动文件
这等效于/etc/nginx/nginx.conf(如果使用的是Arch Linux,则为/etc/nginx/conf/nginx.conf)。
1个
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18岁
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# Generic startup file. user {user} {group}; #usually equal to number of CPUs you have. run command "grep processor /proc/cpuinfo | wc -l" to find it worker_processes auto; worker_cpu_affinity auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Keeps the logs free of messages about not being able to bind(). #daemon off; events { worker_connections 1024; } http { # rewrite_log on; include mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; # tcp_nopush on; keepalive_timeout 3; # tcp_nodelay on; # gzip on; #php max upload limit cannot be larger than this client_max_body_size 13m; index index.php index.html index.htm; # Upstream to abstract backend connection(s) for PHP. upstream php { #this should match value of "listen" directive in php-fpm pool server unix:/tmp/php-fpm.sock; # server 127.0.0.1:9000; } include sites-enabled/*; } |
这与标准的nginx.conf文件有点不同。此配置遵循Ubuntu / Debian方法来声明已启用的站点以实现最大的灵活性-使用“ sites-available”存储配置,然后从“ sites-enabled”符号链接到配置文件。