PHP:CLI和Apache之间的is_readable()结果不同

时间:2015-09-24 14:51:24

标签: php linux file

当使用is_readable()函数获取本地文件是否可读时,从浏览器运行时获取的结果与从命令行运行时获得的结果不同。

脚本使用:

<?php
var_dump(php_ini_loaded_file());
var_dump(phpversion());
var_dump(posix_getuid());
var_dump(is_readable('/dev/shm/rrds'));
?>

我正在检查相同的php.init文件,phpversion和用户,所有等于并且仍然从浏览器获取is_readable()并且从cli获得true。

浏览器输出:

string(12) "/etc/php.ini" string(5) "5.3.3" int(48) bool(false)

CLI输出

string(12) "/etc/php.ini"
string(5) "5.3.3"
int(48)
bool(true)

/ dev / shm / rrds的权限:drwxr-xr-x。

/ dev / shm作为tmpfs挂载在/ dev / shm上,类型为tmpfs(rw,rootcontext =&#34; system_u:object_r:tmpfs_t:s0&#34;)

有谁知道为什么?!

2 个答案:

答案 0 :(得分:1)

Apache用户是www-data。 Cli用户是运行该命令的用户。

识别运行cli命令的用户

whoami

从www-data

运行命令
sudo -u www-data command

答案 1 :(得分:1)

最后是SELinux。我需要禁用它!