さくらインターネットのDOCUMENT_ROOT仕様変更でトラブった

PHP

こんにちは。うまいちです。

先日、お仕事で運営しているサイトのメニューとサイドエリアパーツが突然表示されなくなるという事件が発生しました。

定期的に更新しているサイトではありますが、消えてしまった部分は触った覚えが誰もありません。

原因はさくらインターネット?

さてどうしたものか…と考えていたところ、ふと、さくらインターネットからメンテナンス情報のメールが届いていたのを思い出しました。

該当のサイトは、さくらのレンタルサーバーを使っています。

さくらのレンタルサーバ

もしかするとメンテナンスのトラブルか、仕様が変わったか…。

確認したところ、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’]」が環境に依存するというのを身に沁みて知る機会になりました。

テンプレート的な使い方をしていたから見た目で気付いたものの、そうでなければ気付くのに時間がかかったでしょう。