下文中的问题,在 PHP 5.5.14 中发生的,
测试了之后,在 5.4.30 后并无此问题……
不知道是 5.5.14 的 Bug 还是神马的……
在 5.5.14 中是否有办法解决?
(注:文中文件夹名称已打码)
在 PHP 当中实测代码如下:
<?php
var_dump(realpath('./'));
var_dump(realpath('../'));
var_dump(realpath('../u******/api/uc.php'));
得到了结果如下:
string(28) "/home/wwwroot/m*****/u******"
bool(false)
bool(false)
在网上找了好久,起初认为是文件夹权限,
所以我将 /home/wwwroot/ 下归递改为 755 (chmod -Rf 755 /home/wwwroot
),
但是结果还是一样。
检查
php.ini
或 .user.ini 中的 include_path 设置。该配置会限制 PHP 应用能访问的文件范围,包含
require
,include
,fopen()
,file()
,readfile()
与file\_get\_contents()
。P.S.
.user.ini
的位置应该与 front controller 一致 (在大多数框架中,即index.php
)