# 使用 FastCGI 模式运行 PHP7 教程
## 1. 什么是 FastCGI
FastCGI(Fast Common Gateway Interface)是一种用于在服务器与应用程序之间进行通信的协议,它可以增加服务器处理动态内容的性能。在传统的 CGI(Common Gateway Interface)模式中,每个请求都会生成一个新的进程来处理,而 FastCGI 可以在进程池中重用已经存在的进程,减少了进程生成和销毁的开销,提高了处理速度。
## 2. PHP7 和 FastCGI
PHP7 是最新的 PHP 版本,相较于 PHP5,它具有更高的性能和更低的内存消耗。FastCGI 模式可以与 PHP7 配合使用,进一步提高 PHP 代码的执行速度和并发处理能力,使得网站更加高效稳定。
## 3. 安装和配置 FastCGI 支持
首先,我们需要安装 FastCGI 支持的组件。在 Ubuntu 上,可以使用以下命令安装 FastCGI:
```
sudo apt-get install libapache2-mod-fastcgi
```
安装完成后,我们需要修改 Apache 的配置文件以启用 FastCGI 模式。找到并打开 `apache2.conf` 文件:
```
sudo nano /etc/apache2/apache2.conf
```
在文件中找到以下行(可能位于文件末尾),并取消注释(去掉行首的 `#`):
```
# Include /etc/apache2/mods-enabled/*.conf
```
保存文件并退出。
接下来,我们需要创建一个 FastCGI 配置文件,用于指定 PHP7 进程池的相关设置。在终端中输入以下命令:
```
sudo nano /etc/apache2/mods-available/fastcgi_php.conf
```
在打开的文件中,输入以下内容:
```
AddHandler php7-fcgi .php
Action php7-fcgi /php7-fcgi
Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
Require all granted
```
保存文件并退出。
现在,我们需要将刚刚创建的配置文件链接到 Apache 的配置中。在终端中输入以下命令:
```
sudo ln -s /etc/apache2/mods-available/fastcgi_php.conf /etc/apache2/mods-enabled/
```
重启 Apache 服务器以使配置生效:
```
sudo service apache2 restart
```
至此,我们已经成功安装和配置了 FastCGI 的支持。
## 4. 在 PHP7 中运行 FastCGI
要在 PHP7 中使用 FastCGI,我们需要确认 PHP7 已经安装并正在运行。在终端中输入以下命令:
```
php -v
```
如果输出中显示了 PHP7 的版本信息,则表示 PHP7 已经正确安装。
接下来,我们可以创建一个简单的 PHP 脚本,用于测试 FastCGI 的运行。在终端中输入以下命令来创建一个名为 `test.php` 的文件:
```
nano test.php
```
在文件中输入以下内容:
```php
phpinfo();
?>
```
保存文件并退出。
将 `test.php` 文件移动到 Apache 的默认网页目录(一般为 `/var/www/html`)下:
```
sudo mv test.php /var/www/html/
```
现在,我们可以在浏览器中访问 `http://你的域名/test.php`,如果一切配置正确,应该能够看到 PHP 信息页面。
## 5. 总结
本教程介绍了如何使用 FastCGI 模式运行 PHP7,以提高 PHP 代码的执行效率和并发处理能力。通过安装和配置 FastCGI 的支持,我们可以使 PHP7 与 FastCGI 协同工作,进一步优化网站的性能。希望本教程对您有所帮助。
参考资料:
- [Ubuntu Manpage: libapache2-mod-fastcgi](http://manpages.ubuntu.com/manpages/bionic/man8/libapache2-mod-fastcgi.8.html)
- [How To Set Up Apache with PHP-FPM on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-with-php-fpm-on-ubuntu-18-04)