私はApache 2.4がインストールされた小さなDebian 9サーバーを持っています。 PHP7.0が必要な家にNextcloudサービスを提供するために必要です。その後、かなり古いサービスを提供する必要があります(http://www.refbase.net)、PHP5.6が必要です。
私はApacheの専門家ではありません。私が望むのは、この2つのサービスを自宅で利用できるようにすることだけです。少し読んだ後、これはPHP5-FPMおよびPHP7.0-FPMサービスを使用して達成できることを理解したようです。私は以下をインストールしました:
user@server:/$ sudo systemctl status php5-fpm
[sudo] password of user:
● php5-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php5-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-11-05 22:08:08 GMT; 3 days ago
それから:
user@server:~$ sudo systemctl status php7.0-fpm
● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-11-09 16:48:14 GMT; 59min ago
私はまた以下をインストールしました:
sudo apt install libapache2-mod-fcgid
sudo a2enmod actions fcgid alias proxy_fcgi
したがって、2つの異なる仮想ホストを構成するために、/var/www/、php56、およびphp70に2つのフォルダを作成しました。
<VirtualHost *:80>
ServerName php56.example.com
DocumentRoot /var/www/php56
<Directory /var/www/php56>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
それから:
<VirtualHost *:80>
ServerName php72.example.com
DocumentRoot /var/www/php70
<Directory /var/www/php70>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.0-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
上記で作成した対応するwwwディレクトリに2つのファイルを作成しました。
echo "<?php phpinfo(); ?>" > /var/www/php56/index.php
echo "<?php phpinfo(); ?>" > /var/www/php70/index.php
両方の仮想サイトがアクティブになっていますが、テストに行ったときに両方ともPHP 7.0が有効になっているとマークされました。 /var/run/php/フォルダを確認すると、7.0 FPM sockファイルとpidファイルのみが表示されます。
代替アップデートPHP7.0はデフォルトで有効になっています。
両方のサービスを実行できるように両方のPHPバージョンを提供する方法についての手がかりはありますか?
ありがとう