Xreaレンタルサーバーで、htmlファイル上でphpを動かす必要がありました。
これまでは、
1 |
AddType application/x-httpd-php .php .html |
と.htaccessファイルに書き込んでOKだったのですが、今回は、
1 |
syntax error, unexpected ':', expecting '{' in <b>/virtual/eworks3/public_html/●●●●/wp-includes/compat.php</b> on line <b>498</b><br /> |
というエラーが出てしまいました。
WordPress関連のファイルを、html上に読み込もうとしたのです。以前も同様のことをしたことがあり、うまくいったのですが、今回はエラーが出てしまいました。
また、index.htmlではなく、index.phpだとうまく動作することも判明しました。
そのあたり事実と、エラーコードの内容をChat-GPTに伝えて、原因を調べていくと、
「関数の戻り値に型(例:: string)」を指定している行が、古いPHPで解釈できないためです。
.htaccess で .html を PHPとして扱う設定をしても、
サーバーのPHPバージョンが .html 側で「古いPHP」として動いている可能性が高いです。🔥つまり:
index.php は PHP8.1 など「新しいPHP」で動作しているでも index.html は「古いPHP(例:5.x)」で実行されてしまい、
→ WordPress内の : string のような構文に対応できず 構文エラー
とのこと。
よって、html上でphpを動かす際に、PHP8.xで動かすと明示してないため、古いバージョンのPHPが作動してしまっているのではないか?と考えました。
そこで、サーバーのPHPをバージョンを8.1にアップデートした上で、.htaccessに
1 |
AddHandler application/x-httpd-php81cgi .php .html |
と、php8.1を明示する記述したところ、無事PHPが正しく動作しました。
コメント