主流Wordpress服务器配置方案,大概是几种:
APACHE2 + MPM_WORKER + PHP5+ (libapache2-mod-php5)
这套方案非常成熟,也能应对中小型Wordpress站点流量,比MPM_WORKER比MPM_PREFORK资源利用率高,但仍不是最优。
APACHE2 + MPM_PREFORK + PHP7.x
新手站长听说PHP7.x的性能优势,果断升级,但APACHE2在这个PHP版本下只能工作在PREFORK模式,资源利用率其实很低。
NGINX + PHP7.x-FPM
看上去这是完美的配置,充分利用了NGINX引擎的非阻塞处理能力以及PHP7.x的高性能。但是只要稍有经验的Wordpress站长就会知道,这会让.htaccess失效,对常用且重要的插件如:Wordfence 安全插件,以及缓存性能插件并不友好,不得不手动去做些NGINX配置。
NGINX + APACHE2 + PHP7.x-FPM
只把NGINX当作反向代理来用,兼顾性能与配置兼容性,但稍显麻烦。
其实还有一种较平衡的组合,既能保证对.htaccess的友好,主流插件无缝激活,最小化手动配置,也能兼顾性能与服务器资源利用率。
APACHE2.4 + MPM_EVENT + PHP7.x-FPM
Web服务器是APACHE2.4,但跑在MPM_EVENT模式下,具备非阻塞处理网络请求的能力,对.htaccess友好,并能充分利用PHP7.x-FPM的高性能。
MPM_EVENT的能力也许无法和NGINX相比,但对绝大多数站点,并没有高并发的实际需求,想办法节省服务器资源更重要,所以这种方案更平衡。
这种方案的安装也不麻烦,Ubuntu,CentOS等主流Linux发型版本下都可实现,只要能正确对应包,手动配置量很小。
比如在Ubuntu 16.04下的方法:
sudo apt-get install -y software-properties-common # 加入 Apache PPA sudo add-apt-repository -y ppa:ondrej/apache2 # 加入 PHP PPA sudo add-apt-repository -y ppa:ondrej/php # 更新 sudo apt-get update# 安裝 Apache HTTP Server sudo apt-get install -y apache2 # 安裝 PHP、PHP-FPM opcache sudo apt-get install -y php7.2 php7.1-fpm php7.2-opcache # 安裝所需的 PHP Extensions (依照自身需求添加) sudo apt-get install -y php7.2-cli php7.2-dev php7.2-phpdbg php7.2-bz2 php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-readline php7.2-snmp php7.2-tidy php7.2-xml php7.2-xmlrpc php7.2-zip # 将Apache MPM 由 Prefork 切换为 Event,因为安装PHP7.x会自动切换apache模式到prefork sudo a2dismod mpm_prefork sudo a2enmod mpm_event # 啟用 PHP-FPM proxy_fcgi sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm # 重启 Apache Service sudo service apache2 restart
如果你的服务器资源宽裕(内存,CPU),也许并没有必要换这个配置,但如果服务器资源有限,CPU + 内存长期运行于临界(80%+),或者Wordpress站点需要尽量对.htaccess友好,这个配置值得一试。
如果你选哟长期管理多站点或多服务,应该考虑自动化服务器配置工具。