PHP/PHP 에러 해결 모음

PHP include 에러 해결법 - Failed to open stream 원인과 해결 방법

backend.log 2025. 4. 8. 16:18
728x90
반응형

📌 PHP include 에러 해결법 - Failed to open stream 원인과 해결 방법

PHP에서 include 또는 require를 사용하다 보면 다음과 같은 에러를 종종 만나게 됩니다:

Warning: include(filename.php): Failed to open stream: No such file or directory in /경로/파일.php on line 12
Fatal error: include(): Failed opening 'filename.php' for inclusion (include_path='...') in /경로/파일.php on line 12

이 에러는 PHP가 지정한 파일을 찾지 못했을 때 발생합니다.
즉, 파일 경로 문제가 대부분의 원인입니다.


❗ 자주 나오는 관련 메시지

  • Warning: include(): Failed to open stream
  • Fatal error: include(): Failed opening
  • require_once(): Failed opening required

🧨 주요 원인

  1. 파일 경로가 잘못 지정됨 (상대 경로 vs 절대 경로 혼용)
  2. 파일이 실제로 존재하지 않음 (파일명 오타 등)
  3. 서버 권한 문제 (파일 읽기 권한이 없음)
  4. include_path 설정 미스

🛠 해결 방법

1. 정확한 경로로 include 하기

<?php
  include 'config/db.php'; // 상대 경로
  include $_SERVER['DOCUMENT_ROOT'].'/config/db.php'; // 절대 경로
?>

__DIR__ 또는 dirname(__FILE__)를 활용하면 경로 문제를 줄일 수 있습니다:

<?php
  include __DIR__.'/../config/db.php';
?>

2. 파일 존재 여부 확인

<?php
  if (file_exists('config/db.php')) {
    include 'config/db.php';
  } else {
    echo '파일이 존재하지 않습니다.';
  }
?>

3. include_path 재설정

php.ini 또는 코드에서 set_include_path()로 경로를 명시할 수 있습니다.

<?php
  set_include_path('/var/www/includes');
  include 'common.php';
?>

4. 권한 확인

Linux/Unix 시스템에서는 포함하려는 파일의 권한이 644 이상인지 확인하세요.

chmod 644 filename.php

✅ 정리

문제 해결 방법
파일을 찾지 못함 경로 재확인 (상대 vs 절대)
파일이 없음 파일 존재 여부 확인
서버가 접근 못함 파일 권한 설정

📚 관련 글

🧩 PHP 에러 시리즈 전체 보기

 

728x90
반응형