とあるレンタルサーバー会社のレンタルサーバーのPHPバージョンを変更した時の話です。
そのレンタルサーバーはCent OSのサーバーでPHP 7.3.33以外はコンパネから選べない仕様でした。
Cent OSはPHP8.1も対応しているということで、.htaccessからPHP8.1に変更する手順がありましたが、phpファイルがダウンロードされてしまう挙動に悩まされました。
この記事では、Add Handlerを使ってPHPバージョンを変更した時にphpファイルがダウンロードされた時の解決方法をメモしておきます。
CentOSサーバーのPHPバージョンの変更方法(ダメな方法)
レンタルサーバー会社が提示したPHP8.1への変更方法は、.htaccessに以下の内容を記載するというものでした。
AddHandler php8.1-script .php
ところが、この記述を追加してもphpファイルがダウンロードされるだけで、まともに動作しませんでした。
他の記述方法で以下のようなものがあり、変更してみたのですが結果は同じでした。
AddHandler application/x-httpd-php81 .php
ネットを検索するとキャッシュの問題という事例が散見されましたが、ブラウザをプライベートモードにしても解決しませんでした。
PHPバージョンの変更がうまくいった方法
いろいろ調べても原因がわからず、あきらめかけていたのですが、さくらサーバーでサイト毎にPHPバージョンの変更する方法が今回の手順に似ていたことを思い出しました。
この手順をまねて、php.cgiを作成しました。
#!/bin/sh
exec /usr/local/php81/bin/php-cgi
.htaccessに以下を記載します。/wp/はサブディレクトリにWordpressをインストールしているため、そうなっています。
Action myphp-script /wp/php.cgi
AddHandler myphp-script .php .html
この方法でphp.cgiと.htaccessを変更したら、php8.1でwordpressが動作するようになりました。
さくらサーバー恐るべしと感じました。
まとめ
PHP7.4以上じゃないとインストールできないプラグインが増えてきています。
PHP7.3というのは現在ではかなり制限のあるPHPのバージョンです。
もし、Cent OSでPHP7.3しか使えないレンタルサーバーに出会ったときは、今回の方法を試してみてください。