
現在静的サイトの一部にWordPressを組み込み形でサイト構築をしてまして、
やりたいこととしては、「htmlファイルでPHPを動かせるようにし、静的ページでWordPressの内容を表示させる」ことです。
■使用サーバー(クライアント側でかなり昔から契約しているものになります)
お名前.com(SD-11)
■元々のPHPバージョン
5.5.38
■インストールしているWordPress
WordPress6.0
※WordPressはルート階層にwpディレクトリを作成し、そこにインストールしています。
試したこと
1. PHPバージョンの変更
PHPバージョンが古かったため、
お名前.comのコントロールパネル → Web設定 → PHPバージョン変更 から、PHPバージョンを7.4.28に変更
2. .htaccess、php.cgiファイルの作成
お名前.comでPHPを別の拡張子で動作させるためには該当ファイルをcgiとして実行する、と記載があったため、下記ファイルを作成してルート階層にアップロード。
htaccess
1Action myphp-cgi /php.cgi 2AddHandler myphp-cgi .html
php.cgi
1#!/bin/sh 2exec /usr/local/bin/php-cgi
これでトップページを開くと、
Your server is running PHP version 5.5.38 but WordPress 6.0 requires at least 5.6.20.
つまり、サーバーはPHPバージョン5.5.38を実行しているが、WordPress6.0には少なくとも5.6.20が必要です。といったエラーが出てしまいます。
このエラーが出るということは、とりあえずhtmlでPHPが動作していることは確認できそうです。ただ、PHPは7.4.28にアップデートしたはずなのにこのエラーが出てしまうのが謎でした。。
3. ブラウザ上でPHPバージョンの確認
次に、以下の記述をしたPHPファイルをサーバーにアップして、ブラウザ上でPHPのバージョンを確認しました。
php
1<?php phpinfo(); ?>
これでブラウザを更新してみると、確かにPHPバージョンは7.4.28と表示されていました。
4. サポートセンターに電話
原因が分からなかったため、お名前.comのサポートセンターに電話してみました。
現状を伝え、サーバー状況を確認してもらったところ、確かにPHPは最新にアップデートされていて、それが稼働しているとのことで、原因があるとしたらhtaccessファイル等の記述が影響しているかもしれないとのことでした。
ファイルの中身については回答対象外だったため、結局色々と調べてみましたが、特に間違いもないように思います。
このようにコントロールパネルでPHPバージョンをアップデートしても
Your server is running PHP version 5.5.38 but WordPress 6.0 requires at least 5.6.20.
といったエラーが出続けてしまう原因が何か分かりましたらご教示頂けますと幸いです。
※以下、追記
説明に不足がありましたので追記致します。
そもそも、お名前.comのサイトには、「.phpファイルを別の拡張子で動作させるためには、該当ファイルをcgiとして実行する記述を追記ください」との記載があったため、今回モデュール版ではなく、cgiを用いる形にしております。
php.cgiファイルで、バージョンを指定した書き方もいくつか試してみました。
お名前.comにはバージョン毎の書き方が用意されている感じではなかった(パスの指定は「/usr/local/bin/php-cgi」の形とのこと)ため、自分で調べて一般的に使われていそうな下記の書き方をそれぞれ試してみました。(一部書き方に誤りがあったら申し訳ありません)
/usr/local/bin/php7.4-cgi
/usr/local/bin/php74-cgi
/usr/local/bin/php-cgi-7.4
/usr/local/bin/php-cgi-74
/usr/local/bin/php/7.4/php-cgi
/usr/local/bin/php/74/php-cgi
/usr/local/bin/php-cgi/php74.cgi
/usr/local/bin/php-cgi/php7.4.cgi
しかし、上記のどの場合もブラウザを開くと「Internal Server Error」となってしまう形でした。。



