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
🧨 주요 원인
- 파일 경로가 잘못 지정됨 (상대 경로 vs 절대 경로 혼용)
- 파일이 실제로 존재하지 않음 (파일명 오타 등)
- 서버 권한 문제 (파일 읽기 권한이 없음)
- 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 절대) |
파일이 없음 | 파일 존재 여부 확인 |
서버가 접근 못함 | 파일 권한 설정 |
📚 관련 글
728x90
반응형
'PHP > PHP 에러 해결 모음' 카테고리의 다른 글
PHP Header 에러 해결법 - Cannot modify header information 경고의 원인과 대처법 (0) | 2025.04.09 |
---|---|
PHP Undefined Index / Variable 에러 원인과 해결 방법 (0) | 2025.04.09 |
PHP 실행 시간 초과 에러 (Maximum execution time) 원인과 해결 방법 (0) | 2025.04.08 |
PHP Call to undefined function 에러 원인과 해결 방법 총정리 (0) | 2025.04.08 |
session_start() 에러 - headers already sent 원인과 해결법 (PHP 에러 해결 모음) (0) | 2025.04.08 |