PHP не может получить доступ к подключенному диску в Ubuntu - PullRequest
0 голосов
/ 03 февраля 2019

Запуск Ubuntu 18.04, Apache / 2.4.29, PHP 7.2.10.

Я не могу читать / писать на мои подключенные диски из PHP.

это мой пример кода:

<?php

ini_set('display_errors', '1');
error_reporting(E_ALL);

$folder = '/media/superuser/HDD4TB_CRYPT/nextcloud_data';

var_dump(ini_get('open_basedir'));
file_put_contents($folder.'/x.txt', "AA");
echo file_get_contents($folder."/x.txt");

phpinfo();

Это вывод:

string (0) ""

Предупреждение: file_put_contents (/media/superuser/HDD4TB_CRYPT/nextcloud_data/x.txt): не удалось открыть поток: отказано в разрешении в /var/www/html/nextcloud/x.php в строке 9

Предупреждение: file_get_contents (/media/superuser/HDD4TB_CRYPT/nextcloud_data/x.txt): не удалосьоткрыть поток: Отказано в доступе в /var/www/html/nextcloud/x.php в строке 10

это данные папки:

superuser@SuperTower:/var/www/html/nextcloud$ ls -al /media/superuser/HDD4TB_CRYPT/
total 28
drwx------  4 superuser superuser  4096 feb  3 20:55 .
drwxr-x---+ 4 root      root       4096 feb  2 00:06 ..
drwx------  2 root      root      16384 feb  1 22:49 lost+found
drwxrwxrwx  2 www-data  www-data   4096 feb  3 21:29 nextcloud_data

Я пытался редактировать open_basedir,но это не помогло решить какие-либо проблемы, поэтому я просто прокомментировал это.Следовательно, open_basedir имеет no value в phpinfo().Папка преобразуется в www-данные (это пользователь apache), а также chmoded в 777.

/media/superuser/ содержит папки с подключенными дисками на моем ПК.superuser - мое имя пользователя в Ubuntu.

Спасибо за любые идеи!

PS

Я также попытался добавить символическую ссылку в свою папку:

superuser@SuperTower:/var/www/html/nextcloud$ ls -al data
lrwxrwxrwx 1 www-data www-data 45 feb  3 21:05 data -> /media/superuser/HDD4TB_CRYPT/nextcloud_data/

и с использованием

$folder = '/var/www/html/nextcloud/data';

, но результаты точно такие же.

Я также попытался добавить

 <Directory /var/www/html/nextcloud/data>
   Options +FollowSymLinks
   Allow from All
 </Directory>

без изменений в получающемся поведении: /

1 Ответ

0 голосов
/ 04 февраля 2019

По какой-то причине, независимо от того, какие права доступа / права доступа я установил для папки, / media / superuser никогда не будет доступен для www-данных.

Я отредактировал / etc / fstab, чтобы смонтировать диск в / opt / folder иЯ сделал это для пользователя и группы www-data.

Теперь работает как шарм.

...