Ubuntu18.04のLAMP環境で複数phpバージョン対応
問題
php5を使いたいこともあるし、php7を使いたいこともあるんですけど、複数のphpのバージョンに対応するにはどうしたらよいですか?
答え
apt install php7.4-fpm
apt install php5.6-fpm
php-fpmは、リソースに余裕があれば両方起動させておいても大丈夫。
service php7.4-fpm start
service php5.6-fpm start
「共存」させる必要があるのであれば、ディレクトリやVirtualHostで切り替えは可能。
例えば、/etc/apache2/sites-available/000-default.conf に以下のように書くと、127.0.0.1はphp5.6、127.0.0.7はphp7.4になる。
<VirtualHost *:80> DocumentRoot /var/www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost" </FilesMatch> </VirtualHost> <VirtualHost *:80> ServerName 127.0.0.7 DocumentRoot /var/www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch> </VirtualHost>
ただ、常に同時に使うわけではなく、開発するプログラムに応じて「切り替え」ができればよいのであれば、000-default.conf はそのままにして、必要な方を有効にする対応でもよいでしょう。
php7.4設定を有効にしてサービス再起動
a2disconf php5.6-fpm
a2enconf php7.4-fpm
service apache2 reload
php5.6設定を有効にしてサービス再起動
a2disconf php7.4-fpm
a2enconf php5.6-fpm
service apache2 reload
コメント