运行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-data(这是apache用户),也被更改为777。
/media/superuser/
包含PC上装有已安装驱动器的文件夹。 superuser
是我在Ubuntu中的用户名。
感谢任何想法!
P.S。
我也尝试过将符号链接添加到我的文件夹中:
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>
所得行为无变化:/
答案 0 :(得分:0)
由于某种原因,无论我对文件夹设置了什么所有权/权限,/ media / superuser都无法通过www-data访问。
我编辑了/ etc / fstab以将驱动器挂载到/ opt /文件夹中,并将其更改为www-data用户和组。
现在就像魅力一样。