如何在Ubuntu 18.04 LTS上安装带PHP-FPM Apache

时间:2019-05-19 01:26:37  来源:igfitidea点击:

PHP FPM (FastCGI进程管理器)是PHP FastCGI的替代实现。
它提供了一些额外的特性,比如自适应过程衍生,这对站点很有用。
本教程将使用PHP-FPM/FastCGI在Ubuntu 18.04 (Bionic) LTS系统上安装Apache。
在本教程中,我们使用PHP 7.3,并使用PHP- fpm和FastCGI配置Apache。

Apache安装

Apache包在默认存储库下可用。
使用sudo特权帐户SSH到Ubuntu 18.04 LTS系统,并从官方存储库安装Apache web服务器。

sudo apt update 
sudo apt install apache2 libapache2-mod-fcgid

PHP安装

对于PHP安装,我们建议使用ppa:ondrej/ PHP ppa,它为Ubuntu系统提供了最新的PHP版本。
使用以下命令将PPA添加到系统中。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

然后安装在编写本教程时可用的最新版本PHP 7.3。
简单地执行以下命令来安装PHP和PHP- fpm包。

apt update
sudo apt install php7.3 php7.3-fpm

注意:当我们使用PHP-FPM时。 所有的PHP模块配置都位于 /etc/php/7.3/fpm目录下。

安装以上软件包后,php7.3-fpm服务将自动启动。
我们可以通过在终端上键入下面的命令来确认。

 **sudo systemctl status php7.3-fpm**  

● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-21 03:36:08 UTC; 36s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 9054 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 4704)
   CGroup: /system.slice/php7.3-fpm.service
           ├─9054 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─9069 php-fpm: pool www
           └─9070 php-fpm: pool www

Nov 21 03:36:08 theitroad systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Nov 21 03:36:08 theitroad systemd[1]: Started The PHP 7.3 FastCGI Process Manager.

Apache配置

现在启用Apache中多个PHP版本的配置所需的几个模块。
这些模块是将PHP FPM和FastCGI与Apache server集成所必需的。

sudo a2enmod actions fcgid alias proxy_fcgi

让我们将Apache虚拟主机配置为使用FPM/FastCGI运行。
在本教程中,我们使用默认虚拟主机。
在文本编辑器中编辑虚拟主机主机配置文件。
我们可以根据需求创建新的虚拟主机,所以请确保启用任何新的虚拟主机。

sudo vim /etc/apache2/sites-available/000-default.conf

内容如下:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch \.php$>
        # 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost"
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

将更改保存到配置文件中,并重新启动Apache以重新加载更改。

sudo systemctl restart apache2.service

测试设置

使用 phpinfo()函数创建一个PHP脚本,并将其放置到服务器文档根目录中。
使用下面的命令来做。

echo " <?php phpinfo(); ?>  " > /var/www/html/info.php

现在使用在Apache VirtualHost中配置的域的服务器IP地址(默认虚拟主机)访问info.php。

http://服务器ip/info.php

总结

我们已经在Ubuntu 18.04(仿生)LTS上成功地用PHP-FPM配置了Apache。