PHPエラーについて

2019年1月25日 at 16:05

さくらインターネット(スタンダード)を使用中、PHPのバージョンが自動的に7.1→7.2になった際、下記のエラーがトップページに表示されるようになりました。
下層ページは正常に表示されていますし、concrete5の操作も正常に動作できます。
(トップページは、編集ボタン等も表示されません。)
------------------------------------------------------------------------------------------------------------------------
予期せぬエラーが発生しました。
Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP)
-----------------------------------------------------------------------------------------------------------------------
ちなみに、サーバー会社へ確認したら7.1には戻せないそうです。

環境は以下になっています。
使用テーマは、「HEY DJ バージョン 2.0.8」
------------------------------------------------------------------------------------------------------------------------
# concrete5 Version
Core Version - 8.4.4
Version Installed - 8.4.4
Database Version - 20180717000000

# concrete5 Packages
ABC Auto Reply forms (1.0.4), Dynamic Images (1.1), Editor Comment (7.0.1), hey_dj (2.0.8), Pure Accordion (0.9.2), Spacer (0.9.3)

# concrete5 Overrides
None

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache

# Server API
apache2handler

# PHP Version
7.2.13

# PHP Extensions
apache2handler, apcu, Core, ctype, curl, date, dom, exif, fileinfo, filter, gd, gettext, gmp, hash, iconv, intl, json, libxml, mbstring, mcrypt, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, posix, Reflection, session, SimpleXML, snmp, soap, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zip, zlib

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - -1
max_input_vars - 1000
memory_limit - 128M
post_max_size - 8M
upload_max_filesize - 2M
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - no value
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
opcache.max_accelerated_files - 10000
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5
------------------------------------------------------------------------------------------------------------------------
解決方法を大至急ご教示ください。

タグ:

Re: PHPエラーについて

2019年1月26日 at 8:52
concrete5 ver8.4.4はphp7.2系で動くので、
『使っているテーマ・アドオンの中に、php7.2非対応のものがある』
という可能性が高いと思われます。

もしサーバーのログが見れるようなら、どのファイルで問題が生じているか(=どのテーマ・アドオンが問題か)が直接分かると思います。
→そのテーマ・アドオンを停止すればOK

もしサーバーのログが見れないのであれば、
テーマを初期テーマに変えてみる、アドオンを順番に停止してみる、
を行ってみてはいかがでしょうか。
 

Re: PHPエラーについて

2019年1月26日 at 11:11
ありがうございます。
ご指摘いただいた情報を元にアドオンを精査しましたが、関係するようなアドオンは見つからず、テーマに入っていたカスタムテンプレートのPHPを編集しましたら、正常に表示されるようになりました。

ちなみに、

<?php// if ($showPagination): ?>
<?php// echo $pagination;?>
<?php// endif; ?>

の「//」がいけなかったようです。
7.1系では良かったのですが、7.2になったとたんのことでしたので、とても焦りました。
ご教示ありがとうございました。
 

Re: PHPエラーについて

2019年1月26日 at 11:58
私も同様のエラーが発生したことがありますが、コメントアウトの位置で判断されるのか、

<?php//  の場合、エラーが表示されますが、

<?//php にしたら、エラーは表示されませんでした。

※ 簡単に調べただけなので、理由はよくわかりません。
※ 調べた結果
An empty <?php?> Codeblock in PHP 7.2.0 will put out an "Unquoted strings" warning. To prevent that, add at least one empty space into the codeblock.
と公式に書かれていたので、<?phpのあと、スペースが必要なのかもしれません。→<?php //
<?php// ではphpの部分を文字列と認識するようで、「文字列はクォートで囲ってね」と注意されているようです。

php7.1から7.2は結構いろんなところでうまくいかないことが発生するので対応が大変ですが、
細かいことでもここでご報告いただけると、あとあと助かります。

ありがとうございます。