PHP无法在Ubuntu中访问已安装的驱动器

时间:2019-02-03 20:47:05

标签: php apache ubuntu

运行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_basedirno 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>

所得行为无变化:/

1 个答案:

答案 0 :(得分:0)

由于某种原因,无论我对文件夹设置了什么所有权/权限,/ media / superuser都无法通过www-data访问。

我编辑了/ etc / fstab以将驱动器挂载到/ opt /文件夹中,并将其更改为www-data用户和组。

现在就像魅力一样。