gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:13 25 4
gpt4 key购买 nike

当使用 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 的 is_readable() 仍然是 false。

浏览器输出:

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

命令行输出

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="system_u:object_r:tmpfs_t:s0")

有人知道为什么吗?!

最佳答案

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

识别运行cli命令的用户

whoami

从 www-data 运行命令

sudo -u www-data command

关于PHP:在 CLI 和 Apache 之间使用 is_readable() 的结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com