HOME  /Synology
 /PHP7.3にしたらエラーになる(対策)
2020年06月17日

PHP7.3にしたらエラーになる(対策)

このサイトは「PHP5.6」で作成し「PHP7.0」にバージョンUPしましたが、この時は問題は発生しませんでした。

今回、更に「PHP7.3」に変更した結果、画面が途中で表示されないという問題が発生してしまいました。

この時に色々対策した結果を紹介します。

1.「PHP Compatibility Checker」による互換性チェック

PHP7.3にあげる前に「PHP Compatibility Checker」を使って互換性をチェックします。

1-1.プラグイン「PHP Compatibility Checker」のインストール

新規プラグイン追加で「PHP Compatibility Checker」を指定すると下記アイコンが表示されます。

■「今すぐインストール」ボタンを挿入してインストールします。

■「有効化」ボタンを挿入して有効化します。

 

1-2.「PHP Compatibility Checker」を実行します。

■「ツール」メニュに追加された「PHP Compatibility」をクリックします。

 

1-3.スキャンパラメータを設定し、実行します

■PHPのバージョンで「PHP7.3」を選択します。

■サイトスキャンを実行します。

1-4.スキャン結果の対応

①プラグインが対応してない場合

ネットで対応策を探して下さい。

対応策が無い場合はこれを使わない運用に切り替える必要があります。

 

②独自テーマに警告が出る場合

スキャン結果の右にある「詳細切り替え」をクリックすると「プログラム名」と「エラー内容」が表示されます。

私の場合は、自分が作ったテーマに下記の警告が表示されました。

File has mixed line endings; this may cause incorrect results

上記のエラーは1行の終わりがおかしいよ!というメッセージです。

 

警告なので無視しても良いのですが、気持ちが悪いので修正しました。

<修正方法>

①エラーが出るプログラムをPC上にコピーし「EmEditor」で開く。

②エラーが出るプログラムを「EmEditor」開いて、総てを消します。

③①のプログラムを「クリップボード」にコピーし、②に張り付け保存する。

以上で行の終わりは綺麗になります。

 確認する時の注意点

修正結果を「PHP Compatibility」で再チェックする時は、プラグインを総て無効化してから「再スキャン」するとスキャン時間が短くなります。

 

2.表示が途中で止まる対策

2-1.Web Stationの設定を変更する。

①DSMにログインして下記アイコンをクリックします

②PHP設定から「PHP7.3」のプロファイルを開きます

③下記の「PHPエラーチェック」機能をONにする。

④「OK」で保存すると「PHPエラーチェック」機能がONになります。

以上で画面の表示が止まった所のPHPプログラムが表示される様になりました。

 

下記に「PHP7.0」では問題なかったが、「PHP7.3」でエラーになった事例を紹介します。

2-2.プログラムの引数の受け渡し方法(致命的なエラー)

このエラーは、関数の引数の省略表示の受け渡しが、より厳密になった為のエラーです。

①「PHP7.0」の時のプログラム

<関数を呼ぶ側>

<?php my_pagenavi($wp_query);?>

■引数は省略してCALL

<関数側>

/*****************************************************************************
ページネーションプログラム(WordPreessの基本機能とBootstrap機能を使っている)
<引数>
$wp_queryは、一般投稿は$wp_query、カスタム投稿はnew WP_Query($args)で指定した変数
$show_allは、1:すべてのページ番号を表示  0:省略表示(デフォルトは省略表示)
$mid_sizeは、現在のページ前後の表示個数  デフォルトは2 ※これを変更する場合は$show_allは0にする事
*******************************************************************************/
function my_pagenavi($wp_query,$show_all,$mid_size=2)

■$show_allは指定しなくても、「0」として処理できた。

 

②「PHP7.3」の為に変更した箇所

<関数側>

/*****************************************************************************
ページネーションプログラム(WordPreessの基本機能とBootstrap機能を使っている)
<引数>
$wp_queryは、一般投稿は$wp_query、カスタム投稿はnew WP_Query($args)で指定した変数
$show_allは、1:すべてのページ番号を表示  0:省略表示(デフォルトは省略表示)
$mid_sizeは、現在のページ前後の表示個数  デフォルトは2 ※これを変更する場合は$show_allは0にする事
*******************************************************************************/
function my_pagenavi($wp_query,$show_all=0,$mid_size=2)

■$show_allのデフォルト値を「=0」で明示的に定義した。

 

2-3.メニュのクラス変更(致命的なエラー

このエラーは、メニュークラスの変更が許されなくなった為のエラーです。

①「PHP7.0」の時のプログラム

<function.phpの設定>

/*リストクラスをカレントのみにしてBootstrapルールに合わせる*/
function my_menu_class($classes, $item ){
  $classes = '';
  if( $item -> current == true ) {$classes[] = 'active';}
return $classes;
}
add_filter( 'nav_menu_css_class', 'my_menu_class', 10, 2 );

■メニュが「current」の時は、「active」というクラスを付けた。

 

<CSSでの設定>

#top_menu .active a,
#top_menu li ul .active a{
color:white;
background-color:#c7dcef;}

■CSSの設定で「active」というクラスが使えた。

 

②「PHP7.3」の為に変更した箇所

<function.phpの設定>

■クラス指定は廃止

 

<CSSでの設定>

#top_menu .current-menu-item a,
#top_menu li ul .current-menu-item a{
color:white;
background-color:#c7dcef;}

■カレントメニューの指定はWordPressのデフォルトクラス「current-menu-item」クラスに変更

 

2-4.警告に対する修正履歴

警告の場合は「致命的なエラー」でないので画面表示は停止しません。

しかしPHPがバージョンUPすると「致命的なエラー」になる可能性があります。

①関数の()が抜けていた。

間違い:is_search
正解   :is_search()

 

②変数の’’が抜けていた

間違い$size = $_SESSION[windowSize];
正解   :$size = $_SESSION['windowSize'];

 

③変数の’’が抜けていた

間違い:$data = $query -> query[category_name];
正解   :$data = $query -> query['category_name'];

 

3.結論

Web Stationの「PHPエラーチェック」をONにすると若干レスポンスが落ちます。

しかしWordPressは常に最新版のPHPを求めていますので、定期的に「PHPエラーチェック」をONにして、警告も発生しないプログラム開発が望ましいと思います。

WordPressは下記理由からPHPは最新バージョンを推奨しています。

PHP の最新バージョンには大きく2つの利点があります。

■Web サイトがより速くなります。PHP の最新バージョンは以前のバージョンよりも効率的に動作します。最新の対応バージョン (現在は7.3) にアップグレードすると、以前のバージョンに比べてパフォーマンスが最大で3倍〜4倍向上します。

 

■Web サイトがより安全になります。PHP は WordPress と同様にコミュニティによってメンテナンスされています。PHP は非常に人気があるため、ハッカーの標的です。最新のバージョンには最新のセキュリティ機能が実装されていますが、以前のバージョンにはこうした機能が含まれていません。PHP のアップデートは WordPress サイトの安全性にとって非常に重要です。

 

さらに副次的な利点がいくつもあります。

■速い WordPress サイトは検索エンジンに高く評価されます。したがって検索ランクが上がります。

 

■速いサイトは訪問者の滞在時間が長くなります。訪問者は読み込みに長い時間がかかれば離脱しますが、パフォーマンスが良ければサイトはその分効果的になります。

 

■高いセキュリティを保つサイトはハッカーに対してより安全です。サイトがハッキングされれば対応コストがかかりますし、サイトの評判も下がります。

以上でこのドキュメントの説明は完了です。

関連ドキュメントはメニュの「Synologyタブ」か下記の関連記事一覧から探して下さい。

又、このサイトには、Google広告が掲載されています。

この記事が貴方の参考になりましたら、広告もご覧頂ければ幸いです。


<関連記事一覧>

「synology」に関連するドキュメントを表示しています。尚、このページネーションはJquryで制御しています。

Wordpressのセキュリティ強化の方法として「SiteGuard WP Plugin」と「Google Authenticator」の使い方を解説しています。

WordPressを構築した後、URL変更をしたい等のニーズが発生しますが、この時に重要なのはWordPressの稼働環境を理解する必要があります。ここでは「WordPressの稼働環境」と「MariaDBの中の構造」を解説しています。

Synologyサーバで大量のデータをコピーすると数十分の時間が掛かる事があります。これを数分以内でコピーする方法を解説しています。

自宅や職場のLANの中に「複数台のSynologyサーバ」があり、且つ、それらをhttpsでアクセスしたい場合に、SSL証明書をどうすれば良いか?を解説しています。

私の自宅は2019年末に「IIJMIO光」から「so-net光プラス」に変更しました。その結果、外部からWebサーバにアクセス出来ないという障害が発生しました。これにどう対応したか?の履歴が記載されています。

SynologyのDSMで80/443以外のポート番号を使ったWebサイトを構築する方法を解説しています。

SynologyでWordPressのURL変更を「Search-Replace-DB」で行う為には、ポート番号指定でDBを見に行く必要があります。ここではこの使い方を解説しています。

アルバムを公開アルバムにするとPhoto Stationで公開写真WEBサイトを構築する事ができます。更に、このサイトを「検索エンジンにインデックスさせる」と更に公開範囲が広がります。ここでは公開アルバムに関連する設定を解説しています。

スマートデバイスの写真を「DS Photo」を使ってPhoto Stationにアップロードする事ができます。アップロード方法には①バックアップコマンド②アップロードコマンドがあります。①を使うと写真を撮った段階で自動的にアップロードすることが可能です。

Photo Stationにはスマートデバイス専用のアプリケーションが用意されています。これがDS Photoです。
ここではこの使い方を解説しています。

Photo Stationは基本のPhoto Station以外にDSMユーザ毎に個人用Photo Stationを作成する事ができます。
ここでは個人用Photo Stationの作成方法と使い方を説明しています。

Photo Stationの基本は「公開写真Webサーバー」です。ここではこれを特定の人達で共有する方法を解説しています。

Synologyの「Photo Station」パッケージを利用するとスマホやデジカメで撮影した写真をNASサーバの中に保管をして色々な人と共有する事が可能になります。ここではこのPhoto Stationの起動方法と「Photo Station」用語を解説しています。

FTPの定番ソフトであるFFFTPを使って、SynologyのNASと接続する方法を解説しています。また対象は暗号化なしではなく、SSL証明書を使ったFTPS接続のケースになります。

iOSデバイスのWi-Fiの設定にDNSサーバを指定する方法を解説しています。

Synologyを使い始めてから何回かアプリケーション更新後に障害が発生しました。その時にはバックアップからアプリケーションを戻しますが、その戻し方を解説しています。

SynologyのPhoto Stationを利用した時に発生したエラーとその対策を解説しています。

AndroidデバイスのWi-Fiの設定にDNSサーバを指定する方法を解説しています。

SynologyのDSMに対するアタックの見方DSMの管理者を2段階認証にする方法を解説しています。

SynoloigyのDSM6.1からMariaDB5とMariaDB10の2つのDBがリリースされました。ここではMariaDB10とこのDBをアクセスするphpMyAdminの設定方法を解説しています。

Synologyサーバに2つ以上のDDNSを使う場合はSynology以外の無償DDNSサイトから取得する必要があります。またDDNSなら何でも良いのではなく、URLで更新できるDDNSでないとSynologyでは利用できません。ここでは『Dynu.com』社のDDNSの取得方法と設定方法を解説しています。

SynologyのDSMではVer6の途中から無償のSSL発行サイトのLet’s Encryptをサポートし始めました。しかし操作はマニュアルを見てもわからないので色々試した結果を解説しています。

Synologyサーバに『NO-IP.com』のDDNSを利用する応報を解説しています。

phpmyadminのセキュリティ対策として①phpMyAdminを別名にする方法②phpMyAdminをrootでアクセスできなくする方法
③phpMyAdminアクセスをローカルに限定する方法を解説しています。

SynologyのNASにWebサービスを立ち上げると、WordPressを使ったWebサイトや、EC-CUBEを使ったECサイト等を立ち上げる事ができます。本ドキュメントはWebサービスの立ち上げ方、仮想ホスト機能、パーソナルWebの機能について解説しています。

WordPressをインストールするとディフォルトではサイトURLはドメイン名/WordPressフォルダになります。これをドメイン名だけにする為にSynologyの仮想ホスト機能を使います。本ドキュメントはこの使い方を解説しています。

WordPressの動作環境を変更すると、DBをダイレクトに変更しなければならないケースがあります。このドキュメントはphpMyAdminのエクスポートとインポートを使って修正した事例を紹介しています。

無償DDNSのDDNSサイトのmydns.jpからドメイン名を取得する方法を記載しています。このサイトはIPアドレスの通知にクエリーパラメータ方式も利用できる無償のDDNSサイトなので、IPv6にも対応したDDNSサイトです。

Synology のサーバをhttpsでアクセスする為には、サーバ側にSSLサーバ証明書を入れる必要があります。本稿では自証証明書の作成方法からWindowsPCへの証明書の登録方法を解説しています。

synologyにVPNで接続する方法を解説しています。VPNはPPTPとL2TP/IPsecを解説しています。またWindowsでL2TP/IPsecを使う場合はレジストリを変更する必要があります。この辺も解説しています。

QuickConnectは自宅にあるSynologyのNASサーバが常時Synologyのサイトと接続されている環境を使ってインターネットからアクセスする方法です。この方法はルータの設定変更を必要としないのであまりネットワークに詳しくない人でも利用できる特徴がありますが、利用できるのは特定アプリケーションのみです。

SynologyのNASのOSはDSMになります。このドキュメントはDSMの更新方法について解説しています。

ここではSynoligyサーバを「Hyper Backup」アプリケーションで、Googleドライブにバックアップ/リストアする方法を解説しています。

Synologyを複数台持っている場合は、Synology間でバックアップを相互に持たせる事ができます。ここではその方法を解説しています。

SynologyのMariaDBから、mysqldumpを使ってDBを定期的にダンプする方法と、それを利用してWordPressを過去の時点に戻す方法を解説しています。

SynologyのNAS機能に関連するメニューは①ファイルサービス、②共有フォルダ、③グループ、④ユーザがありこれらの関連性を解説しています。また利用権限は各々のメニューの中でも設定できるため誰に何の権限を与えたか?が判りずらい為、権限設定の考え方の例を解説しています。

Synologyの自動セットアップはLAN上のDHCPサーバから割り振らてたIPアドレスが割り振られています。本稿ではこれを固定IPアドレスに変更する方法と、DSM(DiskStation Manager)にアクセスする為のポート番号の設定を解説しています。

DSM(DiskStation Manager)のログイン画面をカスタマイズする方法を解説しています。これを使う事により企業特有のログイン画面が作成できます。

SynologyのDSM6の基本画面とコントロールパネルの基本的な使い方を解説しています。

SynologyのNASは独自のDSM(DiskStation Manager)というOSで動いております。私が経験したのはDSM4、DSM5を経由し、現在はDSM6を利用しています。どのバージョンでも操作は基本的には変わりません。

Synology サーバとWindowsPCをWebDAV接続すると、インターネット環境やローカル環境からアクセス権限を持った総てのフォルダがローカルフォルダと同様に利用できるようになります。ここではこの方法を解説しています。

SynologyのWordpressパッケージをインストールする方法を解説しています。

Synology のNASをインターネットからアクセスする方法としてDDNS(Dynamic DNS)を利用する方法があります。本稿ではDDNSにSynologyのDDNSを利用する方法と、インターネットルータへのポート番号設定事例を紹介しています。

SynologyのNASにWordpressを インストールしてWebサーバを構築する場合、ローカルPCからもURLでアクセスできる必要があります。この解決方法にSynologyのDSM Serverを使う方法を解説しています。

SynologyのNASに日本語版WordPressをインストールするやり方を解説しています。複数のWordPressも同一手法で稼動させることができます。