"필요한 파일을 열 수 없습니다. PHP에서 치명적인 오류가 발생했습니다."
P粉345302753
2023-08-20 17:22:12
<p>Apache에서 다음 오류가 발생했습니다. </p>
<p><strong>[Sat Mar 19 23:10:50 2011] [warn] mod_fcgid: stderr: PHP fatal error: require_once() [function.require]: opening '/common/configs/config_templates.inc. php'가 실패했습니다(include_path='.:/usr/share/pear:/usr/share/php'). /home/viapics1/public_html/common/configs/config.inc.php </strong> ;/p>
<p>저는 확실히 Apache 전문가는 아니지만 config.inc.php 및 config_templates.inc.php 파일이 모두 거기에 있습니다. 또한 common/configs/ 디렉토리에 있는 test.html 페이지로 이동해 보았으므로 권한 문제는 없을 것 같습니다. 또한 모든 사람에게 읽기, 쓰기 및 실행 권한을 부여하기 위해 config_templates.inc.php 파일에 대한 권한을 설정했습니다. 어찌해야 할지 몰라 /usr/share/php 디렉토리가 있는지 확인해보니 디렉토리가 없는 것을 발견했는데, yum을 이용해서 php를 설치했더니 이미 최신 버전이라고 나오네요. 어떤 제안이 있으십니까? </p>
SELinux를 실행 중인 경우 httpd에 /home 디렉토리를 읽을 수 있는 권한을 부여해야 할 수도 있습니다. 다음 명령을 사용하세요.
으아악실제로는 Apache 관련 질문도 아니고 PHP 관련 질문도 아닙니다. 이 오류를 이해하려면 가상 서버의 경로와 파일 시스템의 경로를 구별해야 합니다.
으아악require
연산자는 파일에 사용됩니다. 그런데 이런 길이가상 HTTP 서버에만 존재하며 파일 시스템에는 해당 경로가 없습니다. 올바른 파일 시스템 경로는
이어야 합니다. 으아악그 중에
으아악섹션은 Document Root라고 하며 가상 세계와 현실 세계를 연결합니다. 다행스럽게도 웹 서버에는 일반적으로 PHP와 공유되는 구성 변수에 문서 루트가 있습니다. 따라서 코드를 이렇게 변경하면
으아악모든 디렉토리의 모든 파일에서 작동합니다!
업데이트: 마지막으로 파일 시스템과 웹 서버의 상대 경로와 절대 경로의 차이점을 설명하고 문제를 자세히 설명하고 몇 가지 실용적인 솔루션을 포함하는 기사를 작성했습니다. 예를 들어 명령줄에서 스크립트를 실행하면 이러한 편리한 변수가 존재하지 않습니다. 이런 경우에는 "단일 입력"이라는 기술을 사용하여 해결할 수 있습니다. 자세한 내용은 위의 기사를 참조하셔도 됩니다.