Copicode 日本語トップ

PHPのrequire/includeの違い本番だけ読み込めない時確認順番

requireinclude の違いで一番大事なのは、読み込みに失敗した時に止まるかどうかです。DB設定、認証、共通関数のように欠けたまま動くと危ないものは、止まる方が正しいことがあります。

ただし、ロリポップ本番で Failed opening required や真っ白画面になる原因は、命令の選び方だけではありません。多くは、相対パス、アップロード先、ファイル名の大文字小文字、ローカルと本番の構成差が混ざっています。

確認日と対象

確認日: 2026年6月12日。ロリポップでWordPressではない自作PHPサイトをFTPまたはSFTPで更新し、includerequire の読み込みで迷っている初心者向けです。

Composerのautoload、Laravelなどのフレームワーク固有の読み込み設計、複雑な名前空間設計は対象外です。まず、必須ファイルか任意パーツか、そして本番のパスが合っているかを分けます。

このページで整理できること

  • 必須読み込みと任意読み込みの使い分けを決める
  • 本番だけ Failed opening required が出る時に、先に見る場所を決める
  • 相対パス、__DIR__DOCUMENT_ROOT のどれを使うか整理する
  • エラーを隠すために requireinclude へ変えてよいか判断する
  • AIやサーバー会社へ相談する時に、貼ってよい情報と伏せる情報を分ける

読み込み失敗時の考え方

命令を変える前に、「ないと危ないファイルか」「本番の置き場所が合っているか」を分けます。

PHPのrequireとincludeで読み込み失敗時に必須ファイルか任意パーツかを分け、__DIR__、DOCUMENT_ROOT、FTP上の置き場所、大文字小文字を確認する図解

先に結論

DB設定、認証、関数、class、フォーム処理のように、読み込めないまま続くと危ないものは require_once を基本にします。広告枠、補助バナー、なくても本文が読める任意パーツなら include を検討します。

本番だけ止まる時に、焦って requireinclude に変えるのはおすすめしません。エラーが見えにくくなるだけで、設定未読み込み、未定義関数、フォーム不具合が後ろで残ることがあります。

違いは失敗した時に止まるか

命令読み込み失敗時向いているもの初心者向けの判断
require止まるDB設定、認証、必須の共通処理欠けたら表示してはいけない時に使う
include警告が出て続く場合がある任意の広告、補助パーツ、案内枠欠けても本文や処理が成立する時に使う
require_once1回だけ必須読み込み関数定義、class定義、設定ファイル初心者は必須ファイルでまずこれを選ぶ
include_once1回だけ任意読み込み重複を避けたい補助パーツ任意だが重複読み込みを避けたい時に使う

何を読み込むかで決める

命令名だけを覚えるより、「そのファイルがない状態でページを出してよいか」で決める方が実務では迷いにくいです。

読み込むものおすすめ理由
DB接続設定、環境設定require_once読めないまま続くと、別DB、空設定、認証漏れにつながるため。
関数、class、共通ライブラリrequire_once二重読み込みの再定義エラーを避けながら、必須として扱うため。
ログイン判定、管理画面の権限確認require_once読めない時に続く方が危険なため。
ナビ、フッター、メタタグ運用方針で決めるサイト全体に必須なら require、本文優先なら include
広告、キャンペーン枠、補助案内include欠けても主な本文や処理は成立するため。

本番で止まる典型例

症状原因候補確認すること
Failed opening required読み込み先が見つからないFTP上にファイルがあるか、パスが合うか
ローカルだけ動くWindowsと本番で大文字小文字の扱いが違うMeta.phpmeta.php の違い
階層が深い記事だけ止まる相対パスが崩れている../ の数、__DIR__ の利用
関数の再定義エラー同じファイルを複数回読んでいるrequire_once にする
本番だけDB接続で止まるローカル用設定を読んでいる設定分離、本番用ファイルの置き場所

パスは__DIR__で安定させる

相対パスだけで読み込むと、呼び出し元の階層によって壊れやすくなります。設定ファイルや関数ファイルは、今のファイル自身の場所を基準にする __DIR__ が扱いやすいです。

<?php
require_once __DIR__ . '/includes/db_config.php';
require_once __DIR__ . '/includes/functions.php';

1つ上の階層にある設定ファイルを読むなら、次のように親ディレクトリを基準にします。

<?php
require_once dirname(__DIR__) . '/config/app.php';

テンプレートからサイト共通のナビやフッターを読むような場合は、公開ルートを基準にする DOCUMENT_ROOT も使えます。ただし、cronやCLI実行では環境が違うことがあるため、PHP処理側の必須ファイルは __DIR__ を優先して考えます。

<?php include($_SERVER['DOCUMENT_ROOT'] . "/nav.php"); ?>

やってはいけない直し方

真っ白画面を早く消したくても、次の直し方は原因を残しやすいです。

やりがちな対応なぜ危ないか代わりにすること
require を全部 include に変える 必須設定が読めないまま処理が続き、別のエラーに変わることがある。 止まるべきファイルか確認し、パスを直す。
エラー表示だけ消す 画面は静かになっても、ログ上のエラーや機能不具合は残る。 エラーログで実際に探しているパスを見る。
ユーザー入力からinclude先を作る 意図しないファイルを読ませる危険がある。 読み込み先は固定のパスか、許可リストから選ぶ。
../ を増やし続ける 下層ページだけ直って別ページが壊れることがある。 __DIR__DOCUMENT_ROOT で基準を明確にする。

本番で確認する順番

  1. エラー文のファイル名と行番号を見る
  2. 読み込み先のファイルがFTP上にあるか確認する
  3. 大文字小文字が一致しているか確認する
  4. ../ の数が階層に合っているか見る
  5. 必要なら __DIR__DOCUMENT_ROOT に直す
  6. 本番ではエラー表示を出しっぱなしにしない

エラー文から見る場所を決める

エラー文には、PHPが実際に探したパスが出ていることがあります。サーバー上の個人名や絶対パスは外部へ貼る前に伏せつつ、どのファイルからどのファイルを読もうとしているかを見ます。

エラー文の例まず見る場所次にすること
failed to open stream 指定したパスとFTP上の実ファイル ファイルがあるか、大文字小文字、二重フォルダを確認します。
Failed opening required 必須ファイルの置き場所 require_once __DIR__ . ... に直せるか確認します。
Cannot redeclare 同じ関数やclassを複数回読んでいないか require_once にするか、読み込み場所を1か所に寄せます。
Undefined function 関数ファイルが本当に読めているか 関数定義ファイルを必須読み込みにします。

ロリポップで見るところ

ロリポップ本番でだけ止まる場合は、コードだけでなくサーバー上の実体も見ます。

AIや人に相談する時のメモ

AIやCodexへ相談する時は、秘密情報を貼らずに、読み込む側と読み込まれる側を分けて書きます。

PHPのrequire/includeで本番だけ止まっています。

エラー全文:

止まっているファイル:

行番号:

読み込もうとしているファイル:

FTP上にそのファイルがあるか:

ローカルでは動くか:

使っている書き方:
例: require / include / require_once / include_once

現在のパス指定:

ローカルのファイル構成:

本番FTP上のファイル構成:

すでに確認したこと:
- ファイルが本番にあるか:
- 大文字小文字:
- __DIR__:
- DOCUMENT_ROOT:
- エラーログ:

サーバーの絶対パス、FTP情報、DB接続情報、APIキー、個人情報は伏せています。
安全なパス指定へ直す方法を教えてください。

サーバー会社や制作会社に聞く時のメモ

コードの直し方ではなく、サーバー側で確認してほしいことがある場合は、症状、URL、エラー文、確認済み項目に絞って送ります。

PHPのinclude / require読み込みについて確認したいです。

対象URL:

起きている症状:
例: 本番だけ真っ白 / Failed opening required / 500エラー

エラー文:

読み込む側のPHP:

読み込まれる予定のファイル:

確認済み:
- FTP上にファイルがあるか:
- 大文字小文字:
- 直前に変更したファイル:
- PHPバージョン:
- エラーログ:

サーバー上の絶対パス、FTP情報、DB接続情報は伏せています。
ロリポップ側で確認すべき設定やログの場所があれば教えてください。

公式情報で確認するところ

この記事では初心者が実作業しやすい順番に並べ替えています。細かい仕様は公式情報で確認できます。

確認したいこと公式情報この記事での使い方
include の基本と読み込みパス PHP公式 include 読み込み失敗時の警告、include_path、呼び出し元ディレクトリの扱いを確認します。
require の失敗時の挙動 PHP公式 require include との違いが、失敗時に止まるかどうかであることを確認します。
__DIR__ の意味 PHP公式 マジック定数 現在のPHPファイル基準でパスを書く時に確認します。
DOCUMENT_ROOT とサーバー変数 PHP公式 $_SERVER 公開ルート基準で共通パーツを読む時の参考にします。
PHP設定、エラー表示、error_reporting ロリポップ公式 PHP設定 本番でエラー確認が必要な時に、PHP設定や表示設定を確認します。

関連記事