Ubuntu

無法在我的伺服器上啟用 PHP-FPM

  • March 7, 2020

我剛剛使用 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.

但報告顯示:Server API: Apache 2.0 Handler

僅僅安裝 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

. . .
  1. 讓您在 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>
  1. sudo systemctl reload php7.3-fpm apache2

引用自:https://serverfault.com/questions/1005981