我终于找到了一个很好的教程,专门用于执行此操作。我将概述已经安装了LAMP堆栈的步骤,但是可以在此处找到完整的教程。
新的注意事项:
在本教程中,首先使用以下命令切换到root用户:
sudo su
就我而言,我只是给这些命令加上前缀sudo
而不是切换用户,因此我将以这种方式记录我的步骤。
开始
第一步:安装Apache Worker MPM(多进程模块)
sudo apt-get install apache2-mpm-worker
这取代了我安装的prefork,这是安装Apache时的默认设置。
步骤2:安装PHP5和必要的模块
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
此时,您可能会在安装'libapache2-mod-fastcgi'时出错:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
这部分不在上面的教程中
要对此进行协调,multiverse
必须将存储库添加到apt源中。
去做这个:
sudo nano /etc/apt/sources.list
我在其上附加了以下几行:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
在这种情况下,指的是我的Ubuntu版本“ Precise Pangolin ”。
所以现在,保存这些更改并返回到终端:
sudo apt-get update
然后再次:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
现在将(应该)工作。
现在启用以下Apache模块:
sudo a2enmod actions fastcgi alias
重新启动Apache
sudo service apache2 restart
步骤3:Apache配置
为了使Apache使用PHP-FPM,我们需要以下配置:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
注意:
如果您使用的是Apache的旧版本(2.3.x或更高版本),则省去了
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
您可以使用以下命令检查已安装的版本
apache2 -version
您可以将其放在全局Apache配置中(这样,所有vhost都启用了它),例如在/etc/apache2/conf.d/php5-fpm.conf
(此文件不存在,因此必须创建它)中,也可以将其放置在应使用PHP-FPM的每个vhost中。
我选择走全球路线,所以:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
粘贴在上面的代码块中,然后保存并退出。这个新文件将由Apache的默认配置自动加载,该默认配置将加载目录中的所有文件/etc/apache2/conf.d/
。
重新启动Apache:
sudo service apache2 restart
现在在文档根目录中创建以下PHP文件/var/www
:
sudo nano /var/www/info.php
加:
<?php phpinfo();
保存并退出。
现在,我们在浏览器中调用该文件(例如http://your-server-ip/info.php
)
在顶部的Server API下,您应该看到FPM/FastCGI
。
成功!
有关如何将PHP-FPM更改为使用unix套接字而不是默认TCP端口或如何为单个虚拟主机(而不是所有虚拟主机)进行配置的更多信息,请参阅顶部链接的源教程。