当使用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;)
有谁知道为什么?!
答案 0 :(得分:1)
Apache用户是www-data。 Cli用户是运行该命令的用户。
识别运行cli命令的用户
whoami
从www-data
运行命令sudo -u www-data command
答案 1 :(得分:1)
最后是SELinux。我需要禁用它!