如何在Ubuntu13.04VPS上使用PHP池优化Nginx

来自菜鸟教程
跳转至:导航、​搜索

介绍

PHP-FPM 的好处之一是您可以在自己的用户下运行不同的网站和应用程序。 这些被称为池并且很容易设置。 这可能是一种方便的方法,可以帮助您在不同服务器以及您可能设置的不同用户之间建立安全性,从而防止安全漏洞。 这还允许您授予用户目录和文件的所有权并防止服务器错误,因为不同的 PHP 池正在尝试写入它不拥有的文件。

这是一个相当简单且无痛的设置,如果您计划在 Nginx 服务器块(虚拟主机)上运行多个框架安装,则特别有用。

免责声明: 但是,这确实允许您启动消耗内存的空闲 PHP 线程。 因此,您应该监控和平衡您的服务器 PHP 进程。 当数据交换开始时,设置过多的池可能会导致有趣的事情发生。

设置

本教程中的步骤要求用户在虚拟专用服务器上具有 root 权限。 请参考初始服务器设置教程中的步骤3和4。

本教程所需的安装是 Nginx 和 PHP-FPM。 建议您安装正确配置的 LEMP 堆栈(Linux、Nginx、MySQL、PHP-FPM)。 这应该涵盖所有必要的要求。

第一步:创建一个新的 PHP-FPM 内存池

对于 Nginx,要创建一个新池,我们需要复制属于 www-data 的默认池。 您可能会记得在初始安装 PHP-FPM 和 Nginx 时配置此池。

警告:不要删除默认池。 让 www-data 运行它自己的池并根据需要为不同用户添加池,以使系统权限与用户权限分开,这被认为是标准做法。

为此,我们只需复制默认的 www.conf 并将副本重命名为我们想要关联的用户(将 username 替换为用户名):

sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/username.conf

接下来,在 nano 中打开它:

sudo nano /etc/php5/fpm/pool.d/username.conf

现在处理文件并更改选项,如下所示:

; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[username]
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = username
listen = /var/run/php5-fpm.username.sock

注意:您可以在此文件中调整其他设置,但为简洁起见,我们将只调整快速设置基本池所需的设置。

然后保存并关闭文件并重新启动 PHP-FPM:

sudo service php5-fpm restart

第二步:调整你的服务器块

如果您花了一些时间 设置服务器块(虚拟主机),那么 VPS 将需要调整到正确的套接字以允许访问新创建的池。

打开你的服务器配置文件:

sudo nano /etc/nginx/sites-available/default

或者,如果您设置服务器块(虚拟主机),则:

sudo nano /etc/nginx/sites-available/example.com

然后编辑以下行并替换 username

fastcgi_pass unix:/var/run/php5-fpm.username.sock;

最后重启 Nginx:

sudo service nginx restart

如果一切正常重启,那么您已经成功设置了另一个 PHP-FPM 池!