如何在 Ubuntu 上使用PHP-FPM 安装 Apache?
Apache HTTP Server 是一个免费的、开源的、跨平台的 Web 服务器软件。它由 Apache Software Foundation 开发和维护。 Apache 是世界上使用最广泛的 Web 服务器。绝大多数 Apache HTTP 服务器实例在 Linux 发行版上运行,但当前版本也在 Microsoft Windows、OpenVMS 和各种类 UNIX 系统上运行。 PHP-FPM 被称为 FastCGI 进程管理器。它是另一种PHP FastCGI 实现,具有对重载站点有用的额外功能。它允许我们同时运行多个版本的PHP 。在本文中,我们将讨论如何在 Ubuntu 上使用 Apache 安装PHP-FPM。在这里,我们将在虚拟机上使用 Ubuntu 版本 20.04.03。
在 Ubuntu 上使用 Apache 安装PHP-FPM
要在 Ubuntu 上使用 Apache 安装PHP-FPM,请执行以下步骤:
步骤 1:运行以下命令在基本系统中进行基本更新,以获取最新的可用软件包。
# apt update -y
第二步:用需要的安装包安装apache2和PHP-fpm。
# apt install apache2 libapache2-mod-fcgid php php-fpm php-cli libapache2-mod-php
上述命令将安装PHP 7.4 版本,但如果您想安装手动特定版本,请遵循 apt install php7.3。
第3步:安装php-fpm后,你必须启用几个模块来配置多个版本的PHP fastCGI with apache2
# a2enmod actions fcgid alias proxy_fcgi
第 4 步:使用 php-fpm 配置 Apache2。现在我们需要用 php-fpm 配置 apache2。因此,您可以创建一个新的配置文件,也可以对默认文件进行更改。在这种情况下,我创建了一个新的 gfg.conf 配置文件
# nano /etc/apache2/sites-available/gfg.conf
添加命令行如下
ServerAdmin admin@geekforgeek.com
ServerName geekforgeek.com
ServerAlias www.geekforgeek.com
DocumentRoot /var/www/html
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
# 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
保存文件并重新启动 apache2 以重新加载更改。
# systemctl restart apache2
第 5 步:现在我们测试PHP设置。用 phpinfo() 创建PHP脚本;函数并保存在 Web 服务器文档根目录中。
# nano /var/www/html/info.php
phpinfo();
?>
所以打开网络浏览器并转到 http://localhost/info。 PHP或者您也可以使用系统 IP 而不是 localhost。
因此,在 ubuntu 20.03.04 中使用 apache2 成功安装 php-fpm。 php-fpm 的主要用途是一次使用多个版本的PHP 。因此,您可以同时运行另一个版本的PHP 。
让我们用 apache2 安装和配置另一个版本的 php-fpm
第 1 步:您需要安装一些存储库。
# add-apt-repository ppa:ondrej/php
第 2 步:接下来我们使用以下命令安装 php-fpm。
# apt install php8.0 php8.0-fpm
如上图所示,在 php8.0 和 php8.0-fpm 安装结束时,系统会自动说运行该命令以启用 php8.0,就像我们在 php7.4 安装的第 3 步运行时一样。他们两个命令是一样的。此外,图中还显示了两个不同的PHP版本套接字。
第 3 步:创建一个我们在上面创建的新配置文件。
# nano /etc/apache2/sites-available/gfg1.conf
ServerAdmin admin@geekforgeek.com
ServerName geekforgeek.com
ServerAlias www.geekforgeek.com
DocumentRoot /var/www/gfg
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
# 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
您必须进行一些更改,例如端口号、文档根目录和主要PHP sock 版本。
第 4 步:在 port.conf 文件中添加一个新端口
# nano /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 8888
Listen 443
Listen 443
第 5 步:要启用此功能,请告诉 apache 一个新的配置文件并重新加载 apache2。
# a2ensite gfg1.conf
# systemctl reload apache2
第 6 步:最后测试PHP设置。因此,首先,我们在配置文件中提到 DocumentRoot,在 /var/www 路径中创建一个新目录“gfg”。并创建一个PHP测试文件。
# mkdir /var/www/gfg
# echo “” > /var/www/gfg/index.php
因此,打开浏览器并转到 http://localhost:8888