Windows에서 완벽하게 실행되는 PHP 프로젝트가 있습니다.
이제 Centos Linux 서버에 프로젝트를 배포하고 있습니다.
define('INCLUDES_PATH', ROOT_PATH.'cms-includes/');
ini_set('include_path',INCLUDES_PATH.':'.ini_get('include_path'));
그래서 INCLUDES_PATH
-->C:\xampp\htdocs\cms-includes
Linux에서 경로 문제가 있습니다. Linux에서 내 프로젝트 위치는 다음과 같습니다./var/www/web_loan/xampp/htdocs\...cms-includes
이제 경로를 설정하는 데 문제가 있습니다 C:\
. C:\
서버에 위치가 없기 때문에 Linux에서는 어떻게 이 작업을 수행할 수 있습니까 ?
어떤 종류의 경로를 제공해야 합니까?
오류는 다음과 같습니다
Fatal error in line 15 of file/var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php
- require_once(INCLUDES_PATHpear.mysql.php): failed to open stream: No such file or directory
PHP Fatal error: require_once(): Failed opening required 'INCLUDES_PATHpear.mysql.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php on line 15.
15번 라인은 다음과 같습니다.init.inc.php
require_once(INCLUDES_PATH . 'pear.mysql.php');
Linux에 따라 INCLUDES_PATH를 정의해야 합니까 defines.inc.php
?
답변1
Unix/Linux에는 해당 드라이브 문자가 없습니다 C:
. D:
파일이 무엇이든 에서 찾을 수 있습니다 /
. Unix/Linux의 디렉토리 구분 기호 /
는 가 아닌 입니다 \
.
작성한 내용에 따라 백슬래시( )를 모두 슬래시( ) C:\
로 바꾸고 모든 것을 슬래시( ) 로 /var/www/web_loan
바꿉니다.\
/
답변2
먼저 파일이 존재하는지 확인하십시오. 명령 프롬프트에 다음을 입력합니다.
ls -l /var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php
여기에는 파일의 소유권도 표시되어야 합니다. Apache를 실행하는 사용자가 파일을 읽을 수 있는지 확인하십시오. 일반적으로 해당 사용자는 입니다 www-data
. 그렇지 않은 경우 다음 명령을 실행합니다.
chown www-data:www-data /var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php
명령문에 절대 경로를 지정해 보십시오 require
.
require_once('/var/www/web_loan/xampp/htdocs/cms-includes/pear.mysql.php');
이것이 작동한다면 상수 변수가 올바르게 정의되지 않았을 가능성이 있습니다.
편집 : chown은 chmod가 아닙니다