Ubuntu 18.04サーバーにLAMPをインストールしましたが、PHP fastcgiが動作しません。私の設定は次のとおりです。
私のfpm PHPファイル:/etc/php/7.2/fpm/pool.d/sites.mydomain.conf
[sites.mydomain]
...
user = sites
group = sites
...
listen = /run/php/php7.2-fpm.sites.mydomain.sock
...
listen.owner = www-data
listen.group = www-data
それから
Sudo service php7.2-fpm reload
Sudo service php7.2-fpm restart
私の仮想ホストファイル:etc/Apache2/sites-available/sites.mydomain.conf
ServerName sites.mydomain
ServerAdmin webmaster@localhost
DocumentRoot /srv/www/sites/html
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi-sites .php
Action php7-fcgi-sites /php7-fcgi-sites
Alias /php7-fcgi-sites /usr/lib/cgi-bin/php7-fcgi-sites
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-sites -idle-timeout 60 -socket /var/run/php/php7.2-fpm.sites.mydomain.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
<Directory /srv/www/sites/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
それから
Sudo a2enmod actions
Sudo service Apache2 restart
ただし、PHPはスクリプトの実行時には解釈されず、ページはプレーンテキストとして表示されます。
誰かが私の設定の何が悪いのか教えてもらえますか?
注:Ubuntu 16.04サーバーでもまったく同じ方法で設定し、正常に動作します。
最後に、libapache2-mod-fastcgi
パッケージをインストールする必要はありません。
トリックはetc/Apache2/sites-available/sites.mydomain.conf
ファイルで行われます(上記の例を参照)。<IfModule mod_fastcgi.c>
部分を置き換えます
<FilesMatch "\.php$">
SetHandler "proxy:unix:///var/run/php/php7.2-fpm.sites.mydomain.sock|fcgi://sites/"
</FilesMatch>
これで完了です。
それが役に立てば幸い。
残念ながら、ここでの回答のアドバイスは間違っていました。
少し掘り下げた後、問題のモジュール(proxy_fcgi)が実際には bionic Apache2-binパッケージの一部 であることに気付きました。
必要なのは次のとおりです。
a2enmod proxy_fcgi
だから...私はこれについていくつか掘り下げました。
まず、mod_fcgidはmod_fastcgiの無料バージョンですが、ストリームごとに送信するリクエストが少ないため、速度が遅いようです。
しかし、両方ともかなり古くなっているようで、libapache2-mod-fastcgiパッケージはさまざまな理由でDebianから引き出されたようです: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug= 835374
ただし、Apache 2.4.10の時点では、php fpmでmod_proxy_fcgiモジュールを使用するのが最適です。 https://serverfault.com/questions/783173/differences-between-mod-fastcgi-and-mod-proxy-fcgi
これが問題を解決するのに役立つことを願っています。周りのほとんどのphp-fpmガイドは、mod_proxy_fcgiの使用のためにまだ更新されていないようで、混乱を引き起こしている可能性があります。
私が収集したものから、libapache2-mod-fastcgi
パッケージはまだバイオニックで利用できない可能性があります。そのため、Apache2で使用可能なfastcgiモジュールはありません。
17.10から18.04にアップグレードしましたが、ページをレンダリングするのではなく、ページにphpファイルのコンテンツが読み込まれていました。 /etc/Apache2/mods-enabled/fastcgi.conf
ファイルを次のように更新するだけでした:
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi-sites .php
Action php7-fcgi-sites /php7-fcgi-sites
Alias /php7-fcgi-sites /usr/lib/cgi-bin/php7-fcgi-sites
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-sites -idle-timeout 60 -socket /var/run/php/php7.2-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>