Ограничение PHP open_basedir: (файл) находится вне разрешенного пути

Раньше я пытался загружать и просматривать файлы с другого диска, см. здесь.

Веб-файлы находились в папке htdocs на диске C:, но мне нужно было сохранить их в папку на диске D:. Я успешно выполнил это задание.

Обновив часть open_basedir в файле php.ini, я просто добавил дополнительное расширение следующим образом:

open_basedir = 'C:\inetPub;D:\CargoDocsPDFs;'

Затем я могу использовать сканирование PHP, чтобы убедиться, что я вижу папки на диске D: следующим образом:

<?php
$files1 =  scandir('D:/CargoDocsPDFs');
var_dump($files1);
?>

Что дает мне следующее:

array(6) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(9) "000000000" [3]=> string(10) "0000000000" [4]=> string(10) "0001782136" [5]=> string(10) "0004670615" }

Вот тут и начинается моя новая проблема...

Нам дали новый диск для загрузки и просмотра файлов. Это сетевой диск, на котором больше места, чем на предыдущем диске D:.

Новый сетевой диск был помечен как диск S:. Поэтому я полагаю, что могу просто снова обновить файл php.ini:

open_basedir = 'C:\inetPub;S:\CargoDocsPDFs'

Затем я запускаю ту же функцию PHP scandir (с включенным отчетом об ошибках):

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

//$files1 =  scandir('D:/CargoDocsPDFs');
$files2 =  scandir('S:/CargoDocsPDFs');

//var_dump($files1);
var_dump($files2);
?>

Но я получаю следующие ошибки:

Warning: scandir(): open_basedir restriction in effect. File(S:/CargoDocsPDFs) is not within the allowed path(s): (C:\inetPub;S:\CargoDocsPDFs) in C:\inetpub\mylocation\CargoReadiness\test.php on line 14

Warning: scandir(S:/CargoDocsPDFs): failed to open dir: Operation not permitted in C:\inetpub\mylocation\CargoReadiness\test.php on line 14

Warning: scandir(): (errno 1): Operation not permitted in C:\inetpub\mylocation\CargoReadiness\test.php on line 14

bool(false)

Почему я получаю эту новую найденную ошибку и как ее исправить?

Редактировать

Вот как устанавливаются привилегии на двух дисках ниже. Свойства слева — это диск, к которому я пытаюсь подключиться, то есть диск S: и сетевой диск. Свойства справа — это диск D:, и это диск, на который я могу успешно загружать и просматривать PDF-файлы.

введите здесь описание изображения

Если вы заметите диск S:, все привилегии для всех отмечены, кроме специальных разрешений (полный доступ также не отмечен, но вы не видите его на рисунке). В то время как для диска D: проверяются только специальные права.

Я не уверен, связано ли это с моей ошибкой.

Редактировать 2

Мне стало известно, что устройство, к которому я пытался подключиться, является устройством NAS. Я не уверен, что это значит, и не знаю, связана ли текущая проблема с тем, почему я не могу подключиться к устройству.


person John Beasley    schedule 13.07.2018    source источник
comment
Ваш пользователь, который выполняет код PHP, вероятно, не имеет права доступа к новому диску.   -  person Lajos Arpad    schedule 14.07.2018
comment
Вы пробовали с: $files2 = scandir('S:\CargoDocsPDFs'); ? Я имею в виду, может быть, он проверяет прямую и обратную косую черту для сетевого диска? или попробуйте с глобом: $files2 = glob('S:\CargoDocsPDFs\*');   -  person num8er    schedule 14.07.2018
comment
@LajosArpad - Есть мысли о том, как я могу настроить привилегии?   -  person John Beasley    schedule 16.07.2018
comment
@ num8er - Когда я использую glob, вывод: массив (0) { }. Какие-нибудь мысли?   -  person John Beasley    schedule 16.07.2018
comment
@ num8er - я сделал пару обновлений. Я надеюсь, что вы взглянете.   -  person John Beasley    schedule 26.07.2018
comment
Очень глупая идея: вы добавили файлы S:\CargoDocsPDF в файл open_basedir. Но PHP жалуется, что не может открыть файлы S:/CargoDocsPDF. Увидеть разницу? Попробуйте добавить папку с косой чертой вместо обратной косой черты в open_basedir и попробуйте, работает ли это ... Может быть, это какая-то странная причуда, потому что это сетевой диск? Я не уверен, но попробовать стоит...   -  person Christian Engel    schedule 02.08.2018