MB-Support

パソコン初心者のサポートページ

PHPでエラーの連発!! 続編


さて、 昨日のPHPに関するトラブル の続きです。 PHP has encountered an Access Violation ○○ のエラーに遭遇したため、昨日は曖昧な環境設定を改め、基本的な動作に問題無いと思われる環境を構築することができました。 これにより、エラー内容を追求する事ができるのですが、このトラブルはかなり重症だと知りました。

PHP has encountered an Access Violation

このエラーが 1 度でも発生すると PC の再起動を余儀なくされる、恐ろしい噂が飛びかっています。 実際に様子を見た所、PHP が自動でリブートするのは昨日のひょんなミスから分かりましたが、どうにも自動で復旧するには至らないみたいです。 再読み込みすると表示されたり、されなかったりを繰り返しますが、これはキャッシュが絡んでいて良く分かりません。

少なくとも掲示板などでフレームを使用している場合は「Ctrl」+「F5」キーを使っても苦しいと思われます。 そしてキャッシュが表示されているのか分かりませんが、1 度でもこのエラーが出るとほぼ頻繁にエラーが出続けます。

インターネット サービスを再起動します

サーバーのパソコン本体を再起動するには至りませんが、IIS の再起動を余儀なくされます。 つまり昨日の改善策はことごとく無駄でした。リブートする情報以外は・・・・。 となると、残された道は PHP has encountered an Access Violation ○○ のエラーを出さない様に頑張る事ですが、これは誰が頑張ればいいのでしょうか? 検討も付きません。

右は 1 秒間に 5 〜 10 ほど刻まれるエラーログです。 ホームページを公開している管理人には地獄です。 そこでふと気が付いたのですが、昨日は PHP と MySQL を使用した日記システムを稼動させたらエラーが発生したと書きましたが、これは無意識の嘘で、実はもう一つ違う試みを実行していたのです。

それは、サイト内のほぼ全てのページの右側に表示される日記の新着情報です。 1 つのページを iframe(インラインフレーム)で取り込んでいるのですが、投稿データをデータベースに格納した今となっては、わざわざ手書きで編集するのも面倒です。 そこで、新着情報も PHP で動的にデータを取り出して表示させようと、簡単に作ったプログラムがあります。 原因はこのプログラムが間違っている可能性と、iframe でほぼ全てのページで取り込んだ事によるサーバーへの負荷が原因なのかも知れません。

という結論に達して、早速 PHP の右ページを既存の JavaScript に戻してみました。 で・・・しばらく様子を見ていたのですが、ファイルを撤去した時刻からぴたっとエラーが出なくなりました。 負荷によるエラーなのか、プログラム的な問題なのかは不明のままです。

と言うのも、少しずつファイルを置き換えたのでは無く、iframe のため 1 つのファイルで全部のWEBページが変わってしまうからです。 管理を容易にするためにしたのですが、原因が掴めないのは辛いところです。 どこかで検証したいのですが、右に表示される内容の都合上、1 回でも手動で書き換える必要があるなら、部分的に自動化しても意味が無いのです。

1 度、自動処理される動的ページを味わってしまうと、手動編集に戻るのが辛いのは人間の性。 近いうちにリベンジする時が来るでしょう。 もし、このサイトを再び訪れて PHP has encountered an Access Violation ○○ のエラーに遭遇したのなら、リベンジを実行している最中だとやさしく見守って下さい。





Copyright © 2019 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人のご挨拶プライバシーポリシー著作権/免責事項