こんにちは。うまいちです。
先日、お仕事で運営しているサイトのメニューとサイドエリアパーツが突然表示されなくなるという事件が発生しました。
定期的に更新しているサイトではありますが、消えてしまった部分は触った覚えが誰もありません。
原因はさくらインターネット?
さてどうしたものか…と考えていたところ、ふと、さくらインターネットからメンテナンス情報のメールが届いていたのを思い出しました。
該当のサイトは、さくらのレンタルサーバーを使っています。
もしかするとメンテナンスのトラブルか、仕様が変わったか…。
確認したところ、PHPの環境変数である「DOCUMENT_ROOT」の出力が変更されていました。
【さくらインターネット】-レンタルサーバの仕様変更について-2018年3月-
ざっくりいうと…
「DOCUMENT_ROOTの末尾に、www以下のフォルダ名が付くようになった」
と言う感じでしょうか。
独自ドメインを使用する際に、www以下にフォルダを作って指定しますので、そのフォルダ名です。(ちなみに、私はドメイン名をそのままフォルダ名にすることが多いです。)
対応
仕様変更と分かったところでソースを見ると…includeにしっかり使ってました。。
変更前:include_once($_SERVER[‘DOCUMENT_ROOT’] . ‘/[独自ドメイン用フォルダ名]/hogehoge.php’)
変更後:include_once($_SERVER[‘DOCUMENT_ROOT’] . ‘/hogehoge.php’)
まとめ
該当のサイトはサーバーを変更する予定もないので上記対応にしましたが、「$_SERVER[‘DOCUMENT_ROOT’]」が環境に依存するというのを身に沁みて知る機会になりました。
テンプレート的な使い方をしていたから見た目で気付いたものの、そうでなければ気付くのに時間がかかったでしょう。