FastCGI功能与 CGI 的工作非常相似。 FastCGI 与 CGI 相比,在一些地方存在差异,例如 FastCGI 进程是持久的,并且每个进程可以处理多个请求。 FastCGI 允许通过在单个全双工连接上复用环境信息、标准输入、输出和错误来在远程计算机上运行程序。阅读更多关于 FastCGI。
- 在 Ubuntu 上使用 PHP-FPM/FastCGI 安装 Apache
本教程将帮助您在基于 RedHat 的系统上使用 PHP 和 FastCGI 设置 Apache Web 服务器。
步骤 1 – 先决条件
首先,在您的系统上启用 REMI 和 EPEL yum 存储库。这些存储库为基于 RedHat 的系统提供最新的软件包。
步骤 2 – 安装 Apache2
Apache2 软件包可用于基于 Redhat 的系统,名称为 HTTPD。您可以使用以下命令在系统上配置的存储库中安装最新的可用 Apache2 (HTTPD) 软件包。
yum install httpd
第 3 步 – 安装 PHP 和 FastCGI
安装 Apache Web 服务器后,让我们在系统上安装 PHP 和 FastCGI Apache 模块。您可以安装所需 PHP 的任何版本,或者只需使用以下命令来安装可用的 PHP 软件包。本教程不包括安装 PHP 模块,因此您还可以安装所需的 PHP 模块。
yum install php php-cli mod_fcgid
步骤 4 – 禁用默认 PHP 处理程序
在使用 PHP/FastCGI 处理程序之前,您必须禁用系统上的默认 PHP 处理程序。编辑 Apache 的 PHP 配置文件(/etc/httpd/conf.d/php.conf)在您最喜欢的文本编辑器中,通过在行的开头添加井号(#)来注释下面屏幕截图中显示的行。
第 5 步 – 设置 FastCGI 处理程序
至此我们已经成功安装了Apache FastCGI Module。现在导航到/var/www/cgi-bin目录,如果不存在则创建目录。然后创建一个php.fastcgi文件并将以下内容添加到该文件中。还要确保 php.ini 文件和 php-cgi 存在于您的系统上。
vim /var/www/cgi-bin/php.fastcgi
#!/bin/bash
PHPRC="/etc/php.ini"
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php-cgi
更改权限php.fastcgi脚本使其可由 Apache 服务器执行。
chown apache:apache /var/www/cgi-bin/php.fastcgi
chmod +x /var/www/cgi-bin/php.fastcgi
第 6 步 – 使用 FastCGI 设置 VirtualHost
最后,在 Apache 配置文件中创建一个具有 FastCGI 支持的 VirtualHost。 VirtualHosts 用于使用单个 IP 配置多个站点。以下配置将允许在端口 80 上使用任何系统 IP 来定位 svr1.tecadmin.net。
<VirtualHost *:80>
ServerName svr1.tecadmin.net
ServerAdmin admin@tecadmin.net
DocumentRoot /var/www/html
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/html">
Options +Indexes +FollowSymLinks +ExecCGI
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php.fastcgi
AllowOverride All
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
第 7 步 – 重新启动 Apache 和测试设置
至此,您已经完成了支持 FastCGI 的 Apache 配置。让我们使用以下命令重新启动 Apache 服务器。
service httpd restart
现在在文档根目录中创建一个文件/var/www/html/info.php并添加以下内容来查看详细的php信息。
使用 IP 地址作为域名访问您的 Apache 服务器,后跟php.info文件在您的网络浏览器中如下所示。这将显示系统中 PHP 的当前配置。看看值服务器API选项,如果你得到这个值CGI/快速CGI,这意味着服务器已正确配置为使用 FastCGI。
http://svr1.tecadmin.net/info.php