2016-12-03 42 views
0

我试图在php脚本中使用命令mkdir在树莓派上安装的硬盘上创建一个目录。 我创建目录/ mnt/HDD(须藤的mkdir到/ mnt/HDD)和我使用的命令安装设备:在安装的硬盘驱动器上拒绝PHP mkdir权限

sudo mount /dev/sda1 /mnt/hdd 

我的PHP脚本是:

<?php 
    mkdir("/mnt/hdd/storage_1/"); 
    mkdir("/mnt/hdd/storage_2/"); 
?> 

但是,当我运行此脚本,不创建目录,我在/var/log/apache2/error.log这些错误:

[Sat Dec 03 18:47:44.590884 2016] [:error] [pid 1295] [client 192.168.1.11:50940] PHP Warning: mkdir(): Permission denied in /home/pi/html/createDir.php on line 2 
[Sat Dec 03 18:47:44.591949 2016] [:error] [pid 1295] [client 192.168.1.11:50940] PHP Warning: mkdir(): Permission denied in /home/pi/html/createDir.php on line 3 

下面是目录/ mnt/HDD的权限:

drwxr-xr-x 2 root root 32K Jan 1 1970 hdd 

我的apache服务器正在使用默认配置(www-data用户和组)。文件夹/ mnt/hdd存在权限问题,但我无法弄清楚,有人可以给我一个线索吗?

+0

你需要给写权限的文件夹(命令搭配chmod -R 777到/ mnt/HDD),但它也可以让安全隐患。或者更改文件sudo chown www-data:www-data/mnt/hdd的组和所有者。但是,再次,应该有一个更好,更安全的方式 – Nitin

+0

但是我必须在安装设备之前或之后发出此命令吗? – BadTigrou

+0

之后。你需要使用sudo。 Sudo chown ... – Nitin

回答

0

的问题似乎涉及whem我正在安装设备。这是当我安装使用下面的命令驱动器的工作原理:

sudo mount /dev/sda1 /mnt/hdd umask=000 
0

Apache是​​在WWW的数据组如你所说运行,并且硬盘文件夹属于root,所以阿帕奇不能让因为privileges.Try的目录

  1. 确保所有文件是由Apache组织所拥有和用户。

    chown -R www-data:www-data /path/to/webserver/www 
    
  2. 下使WWW的数据组的所有成员,以读取和写入文件

    chmod -R g+rw /path/to/webserver/www 
    
+0

我已经测试了命令chown www-data/mnt/hdd和它不工作。我担心在根 – BadTigrou

+0

下运行Apache的安全性,编辑答案 –

+0

它的作品,但我不明白为什么。我的www目录是在/ home/pi/www,为什么这个文件夹的权限影响写在/ mnt/hdd上? – BadTigrou