Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是\u文件还是文件\u不在apache中工作,而是在CLI中工作_Php_Apache2_Debian - Fatal编程技术网

Php 是\u文件还是文件\u不在apache中工作,而是在CLI中工作

Php 是\u文件还是文件\u不在apache中工作,而是在CLI中工作,php,apache2,debian,Php,Apache2,Debian,我对is_file或file_exists函数有一个非常奇怪的行为 <?php $nfsFile = '/mnt/nfsdir/file.txt'; var_dump(is_file($nfsFile)); ?> 此代码始终返回FALSE,但: $php-r'var_dumpis_file'/mnt/nfsdir/file.txt';' 返回TRUE,这是正确的 我正在运行Debian Squence、Apache2.2.15和PHP5.3.2-1 我不在安全模式下,

我对is_file或file_exists函数有一个非常奇怪的行为

<?php $nfsFile = '/mnt/nfsdir/file.txt'; var_dump(is_file($nfsFile)); ?> 此代码始终返回FALSE,但:

$php-r'var_dumpis_file'/mnt/nfsdir/file.txt';'

返回TRUE,这是正确的

我正在运行Debian Squence、Apache2.2.15和PHP5.3.2-1

我不在安全模式下,目录/mnt/nfsdir/和所有文件都在777中,www数据用户可以使用ls/mnt/nfsdir/所以我现在有点不懂


欢迎任何建议

在我看来确实像是服务器配置问题

可能测试echo exec'ls/mnt/nfsdir/file.txt';工作

我不这么认为。原因是,即使www数据可以访问该文件,PHP也不允许访问它

但是如果exec'ls/mnt/nfsdir/file.txt';这可能是你的解决方案


否则,我将再次查看服务器配置。

如果您知道该文件存在,因为您是在测试期间创建的,当然,尝试执行该操作(例如,获取文件内容)的结果是什么?您的路径是绝对路径还是相对路径?如果是相对的,则从命令行运行时CWD可能不同。是的,事实上,如果要访问任何文件,即使未处于安全模式,open_basedir也必须设置为“无”。更改open_basedir=none解决了这个问题,但我认为它不是很安全。。您可以确保所有的open、exec等语句都不允许用户打开/执行任何文件。如果用户可以决定打开哪个文件,请确保预先添加basedir并禁用../,这样您的应用程序应该与open_basedir set一样安全。