現象
sixcoreの一部のサーバは、PHP7.1までしか選択できませんでした。
Xserverのプラン統合によって、sixcoreがXserver Businessになりました。Xserver Businessでは、PHP7.4も選択できるとのこと。
利用者側では特に何もしなくても、プラン統合とともに、新サーバへ移転も完了していました。
そこで、移転前のsixcoreでPHP7.1で動かしていたサイトを、移転後の新サーバでPHP7.4に切り替えることにしました。
ステージング環境にデプロイして、Xserver Businessの管理画面でPHP7.4.13に切り替えました。phpinfoで確認すると、PHP7.1.33のままです。
すぐに反映されないのかもしれないと思い、5分待ちましたが、やはりPHP7.1.33のままです。
ダメ元で、いったんPHP7.3.25に切り替えてから、もう一度PHP7.4.13に切り替えてみましたが、やはりPHP7.1.33のままでした。
対応
移転前のsixcoreでは、PHPの切り替えは、.htaccessに記述されていました。
#####fastcgi#####
AddHandler fcgid-script .php .phps
FCGIWrapper "/home/xxxx/xxxx/php/php-cgi" .php
FCGIWrapper "/home/xxxx/xxxx/php/php-cgi" .phps
#####end:fastcgi#####
Code language: plaintext (plaintext)
移転後の新サーバでは、この5行を削除するか、先頭に「#」をつけてコメントアウトします。
#####fastcgi#####
#AddHandler fcgid-script .php .phps
#FCGIWrapper "/home/xxxx/xxxx/php/php-cgi" .php
#FCGIWrapper "/home/xxxx/xxxx/php/php-cgi" .phps
#####end:fastcgi#####
Code language: plaintext (plaintext)
phpinfoで確認すると、PHP7.4.13になりました。
おまけ
もう少し追ってみると、php-cgiに「7.1」の設定がありました。
#!/bin/sh
ulimit -u 500
exec /usr/bin/php-fcgi7.1 -c /home/xxxx/xxxx/php/php.ini
Code language: JavaScript (javascript)
さきほどの.htaccessの5行は活かしたまま、この「7.1」を「7.4」に置き換えることでも、PHP7.4.13に切り替わりました。
#!/bin/sh
ulimit -u 500
exec /usr/bin/php-fcgi7.4 -c /home/xxxx/xxxx/php/php.ini
Code language: JavaScript (javascript)
sixcoreから移転してきたサイトのPHP切り替えを優先しつつ、新サーバのPHP切り替えは、ここを書き換えないようです。