为什么不允许执行PHP操作的可能原因是什么?

时间:2018-07-27 15:15:47

标签: php networking storage

answer之后,我在php.ini文件中添加了该路径,但仍收到以下警告/错误消息:

Warning: scandir(): open_basedir restriction in effect. File(S:\Docs) is not within the allowed path(s): (C:\inetPub;S:\Docs) in C:\inetpub\somewhere.com\cr\test.php on line 25

Warning: scandir(S:\Docs): failed to open dir: Operation not permitted in C:\inetpub\cr\somewhere.com\test.php on line 25

Warning: scandir(): (errno 1): Operation not permitted in C:\inetpub\somewhere.com\cr\test.php

有人告诉我S:/驱动器不在Web文件所在的Microsoft IIS Web服务器上,它是一个Linux NAS,需要用户名和密码才能进入。它已映射到Web服务器,但似乎无法通过PHP访问它。告诉我此信息的人在网络中工作,并说这是路径问题,该问题属于我的领域,但我认为这是允许的事情,它又回到了他身上,来回传递访问此驱动器的棘手问题一个星期。我们俩似乎都无法弥合差距。

PHP代码:

<?php 
 ini_set('display_errors', 1);
 ini_set('display_startup_errors', 1);
 error_reporting(E_ALL);

 $files = scandir('S:\Docs');
 var_dump($files);

 $filename = 'S:\Docs\cr\text.pdf';

 if (is_readable($filename)) {
   echo 'good';
 } else {
  echo 'bad';
 }
?>

所以我的问题是标题:为什么不允许进行PHP操作的可能原因是什么?

新信息:因此,我在评论中添加了某人建议的is_可读()函数。以下是新错误:

is_readable(): open_basedir restriction in effect. File(S:\Docs\cr\text.pdf) is not within the allowed path(s): (C:\inetPub;S:\Docs) in C:\inetpub\somewhere.com\cr\test.php on line 34

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:0)

检查是否在指向不同目录的INI文件中设置了“ open_basedir”。

基本上,open_basediris用于限制或限制目录访问。