无法在我的服务器上启用 PHP-FPM

无法在我的服务器上启用 PHP-FPM

我刚刚用 Ubuntu 18.04 和 PHP 7.3 创建了一个服务器

但当我检查我的服务器是否正在使用 PHP-FPM 时,我发现没有。但是,它已激活。

ubuntu@www-example-com:~$ 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 Sat 2020-03-07 13:12:45 CET; 3min 22s ago
     Docs: man:php-fpm7.3(8)
  Process: 19779 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/7.3/fpm/pool.d/www.conf 73 (code=exit
  Process: 19803 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.3/fpm/pool.d/www.conf 73 (code=ex
 Main PID: 19781 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 2303)
   CGroup: /system.slice/php7.3-fpm.service
           ├─19781 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─19800 php-fpm: pool www
           └─19802 php-fpm: pool www

Mar 07 13:12:45 www-example-com systemd[1]: Stopped The PHP 7.3 FastCGI Process Manager.
Mar 07 13:12:45 www-example-com systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Mar 07 13:12:45 www-example-com systemd[1]: Started The PHP 7.3 FastCGI Process Manager.

但报告显示:服务器 API:Apache 2.0 处理程序

答案1

仅安装 PHP 7.3 FPM 来让 Apache 使用它而不是 Apache 的 mod_php7 是不够的;您还需要对其进行配置。对于开箱即用的全局 PHP 7.3 FPM 配置,您可能至少需要:

sudo a2dismod php7.3
sudo a2enmod proxy_fcgi
sudo a2enconf php7.3-fpm
sudo systemctl reload apache2

但对不同的网站使用单独的 FPM 池并以不同的用户身份运行可能是一个更好的主意。假设您网站的文档根目录是/var/www/example.com并且文件夹归用户所有examplecom,您可以例如

  1. 添加一个池/etc/php/7.3/fpm/pool.d/example.conf(你可以复制它www.conf作为基础):

    [examplecom]
    user = examplecom
    group = examplecom
    
    listen = /run/php/examplecom.sock
    chdir = /var/www/example.com
    
    . . .
    
  2. 让 Apache 上的虚拟主机使用此套接字来处理 .php 文件:

    <VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/example.com
    
        <FilesMatch ".php$"> 
            SetHandler "proxy:unix:/run/php/examplecom.sock|fcgi://localhost/"          
        </FilesMatch>
    
        . . .
    </VirtualHost>
    
  3. sudo systemctl reload php7.3-fpm apache2

相关内容