私たちのサーバーはUbuntu18.04.5LTS(GNU / Linux 4.15.0-135-generic x86_64)です。
しばらく前にhttps://tecadmin.net/install-multiple-php-version-apache-ubuntu/からの指示に従い、7.2が新しいときにPHP 5.6と7.2を実行し直し、7.3と7.4をアップグレードして追加しました。今朝まで問題ありません。昨日はうまくいきましたが、今日はそうではありません。昨日早くにアップデートをパッケージ化しましたが、再起動は必要なく、uptime
として一晩で再起動したとは思われません。 15日近くだと言っています。
そこで本日、プロセスを再度実行し、すべてのステップの後にapache2を再起動してこれを実行しました:
試行:a2enmod actions fcgid alias proxy_fcgi
取得:エラー:モジュールfcgidが存在しません!
apt install apache2 libapache2-mod-fcgid
を実行しました そしてそれはうまくいった パッケージを追加しました。
a2enmod actions fcgid alias proxy_fcgi
を実行しました そしてそれはすべてがすでに有効になっていると言っていました 。
/ etc / apache2 / sites-enabledのconfファイルを確認しました :
<FilesMatch .php$>
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
phpinfo()を試しました ページと予想される5.6.40の代わりにPHP7.4.15を取得しました。 7.3でも同じことを行い、php7.3のSetHandlerを使用してphpinfo()でも同じ7.4を取得しました。
次に、 systemctl statusを試しました php5.6-fpmとphp7.4-fpmおよび両方がアクティブ(実行中)
私の/etc/apache2/conf/php5.6-fpm.conf 初心者向けのファイルです。php7.4-fpm.confのファイルは、mod_php5/7とSetHandlerバージョンを除いて同じです。
# Redirect to local php-fpm if mod_php is not available
<IfModule !mod_php5.c>
<IfModule proxy_fcgi_module>
# Enable http authorization headers
<IfModule setenvif_module>
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<FilesMatch ".+.ph(ar|p|tml)$">
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
</If>
</FilesMatch>
<FilesMatch ".+.phps$">
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>
</IfModule>
</IfModule>
ここまたは他のどこかでエラーが発生しましたか?
FWIW、同様の設定の別のサーバーがあり、同じ問題が発生していますが、現時点ではそのサーバーに5.6のレガシーアプリケーションしか必要ないため、/ etc / apache2/conf-のポインターファイルを削除して7.4を無効にしました。 enabled /php7.4-fpm.confを実行し、apache2を再起動します。ただし、このサーバーには複数のバージョンが必要です。
関連:UbuntuでデフォルトのGccおよびG ++バージョンを選択する方法は?承認された回答:
変更:
<FilesMatch .php$>
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
対象:
<FilesMatch .php$>
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</If>
</FilesMatch>