我有一个在 window 上完美运行的 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:\
。我怎样才能在 Linux 中做到这一点,因为C:\
服务器上没有位置。
我应该给出什么类型的路径?
错误看起来像这样
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