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