나는 window 에서 완벽하게 실행되는 PHP 프로젝트를 가지고 있습니다.
이제 Centos Linux Server에 프로젝트를 배포하고 있습니다.
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.
LINE # 15는 다음과 같습니다.init.inc.php
require_once(INCLUDES_PATH . 'pear.mysql.php');
Linux에 따라 INCLUDES_PATH를 정의해야 합니까 defines.inc.php
?
답변1
C:
Unix/Linux에는 등 의 드라이브 문자가 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');
이것이 작동한다면 상수 변수가 제대로 정의되지 않았을 수 있습니다.
편집 : chmod가 아닌 chown