

レンタルサーバーでPHPのエラーで困っています。

バックアップデータをリストアしたらブラウザに以下の１行しか表示されなくなってしまいました。

> Parse error: syntax error, unexpected '[', expecting ',' or ';' in
> /var/www/public_html/sysadmin/common/function.php on line 242

該当ファイル該当行周辺の抜粋です。

[code]

    236 function field_name_list()
    237 {
    238   global $dbh,$mainname,$db_tbl;
    239
    240   for($i=0;$i<sizeof($db_tbl);$i++)
    241   {
    242     global $$db_tbl[$i];
    243     $in.=$db_tbl[$i];
    244     if($db_tbl[($i+1)]!=""){ $in.=","; }
    245   }
    246
    247   return $in;
    248 }
    
[/code]

[code]

    $ php --version
    PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51) 
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
        with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
    
[/code]

レンタルサーバーの自動バックアップからデータをリストアしたら、掲題のエラーが出てページが表示されません。ドキュメントルートにPHPでウェブサイトを作って、ドキュメントルート/blogにWordPressをインストールしてます。

バックアップデータは１週間前のもの。その時はウェブサイトは動作してたそうです。  
確認したことは以下の通り。

  1. ウェブサーバー領域を初期化
  2. バックアップデータをリストア
  3. トップページへアクセスすると掲題のメッセージが一行だけ表示されます。
  4. WordPressの管理画面にはログインできます（`http://example.com/blog/wp-admin`)
  5. WordPressの管理画面から「サイトを表示」を選ぶと同じエラーが発生
  6. WordPressの管理画面からWordPress本体、プラグインを最新化しても結果変わらず
  7. WordPressのDEBUGオン。結果は以下へ。
  8. メンテ画面を作って置く

初質問になります。どなたか知見のある方、お願いいたします。

* * *

**WordPressのDEBUGオン時の画面表示と該当するコード抜粋**

> Deprecated: Function create_function() is deprecated in
> /var/www/public_html/blog/wp-includes/pomo/translations.php on line 208
[code]

    206                 function nplurals_and_expression_from_header( $header ) {
    207                         if ( preg_match( '/^\s*nplurals\s*=\s*(\d+)\s*;\s+plural\s*=\s*(.+)        $/', $header, $matches ) ) {
    208                                 $nplurals   = (int) $matches[1];
    209                                 $expression = trim( $matches[2] );
    210                                 return array( $nplurals, $expression );
    211                         } else {
    212                                 return array( 2, 'n != 1' );
    213                         }
    214                 }
    
[/code]

> Deprecated: Function create_function() is deprecated in
> /var/www/public_html/blog/wp-content/plugins/wordpress-23-related-posts-
> plugin/init.php on line 440
[code]

    439         if (!empty($tags)) {
    440                 $post_tags = '[' . implode(', ', array_map(create_function('$v', 'return "\        '" . urlencode(substr($v, strpos($v, \'_\') + 1)) . "\'";'), $tags)) . ']';
    441         } else {
    442                 $post_tags = '[]';
    443         }
    
[/code]

> Notice: Undefined variable: meta_noindex in
> /var/www/public_html/libs/meta.php on line 73
[code]

    73 <?php if($meta_noindex==1 and $blog!=1){ ?>
    74 <meta name="robots" content="noindex,follow">
    75 <?php }elseif($blog!=1){ ?>
    76 <meta name="robots" content="index,follow">
    77 <?php } ?>
    
[/code]

> Notice: Undefined variable: mainname in
> /var/www/public_html/sysadmin/common/tbl_inc.php on line 6
[code]

    4 switch ($mainname)
    5 {
    6   case 'member':
    7     $db_tbl=array("member_id","name","nickname","sex_cd","mail","password","facebook_user_i        d","facebook_url","role_cd","is_toll","toll_datetime","is_wish_toll","is_temp","zip","pref_        id","address1","address2","tel","url","birth","office_name","is_tel_public","is_mail_magazi        ne","know_cd","login_fail","is_login_lock","is_search","fee_standard_cd","fee_minimum_cd","        fee_skillful_cd","plan_target_cd_list","signature_move_cd_list","skillful_structure_cd_list        ","appeal","img_title_list","freeword","view","is_publish","publish_datetime","ins_datetime        ","ins_login_id","upd_datetime","upd_login_id","del_datetime","del_login_id","img_flg");
    8   break;
    
[/code]


CC BY-SA 4.0
2019-11-02T03:21:59.433
60200
2019-11-02T08:59:01.220
2019-11-02T06:08:12.380
32986
9317
question
php cakephp wordpress
バックアップデータをリストアしたウェブサイトでPHPエラー：Parse error: syntax error, unexpected '[', expecting ',' or ';' in ... function.php on line 242


自己解決しました。

コマンドではPHP5.4だと表示されていましたが、レンタルサーバー（Xserver）のサーバーパネルでPHPバージョンを確認したら、PHP7.2でした。

ドメインを初期化した時にデフォルトPHPバージョンは７.２でした。そこにPHP5.4で開発したソースコードをリストアした為に、エラーや警告メッセージが表示されていたようです。

サーバーパネルでPHPバージョンを５.４.１６にして、バックアップしたデータを再びリストアすることで解決しました。


CC BY-SA 4.0
2019-11-02T08:59:01.220
60205
2019-11-02T08:59:01.220
9317
60200
answer