在PHP中使用mkdir拒绝权限

时间:2014-03-09 02:58:53

标签: php ubuntu

我尝试像这样创建目录/home/freestyle/test

$location = "/home/freestyle/test";
$uold     = umask(0);

mkdir($location,0777,true);
umask($uold);

但我收到了错误

Warning: mkdir(): Permission denied in /opt/lampp/htdocs/test/test.php on line 6

我不希望通过终端获得chmod权限,我想直接在PHP中进行。

怎么做?

修改显示的ps aux | grep httpd

root     10868  0.0  0.3 351528 14288 ?        Ss   09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11263  0.0  0.1 347600  5500 ?        S    09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11266  0.0  0.3 352036 11864 ?        S    09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11267  0.0  0.3 352852 12864 ?        S    09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11268  0.0  0.3 352036 11868 ?        S    09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11269  0.0  0.3 352128 12308 ?        S    09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11270  0.0  0.3 351944 11848 ?        S    09:41   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11329  0.0  0.3 352088 12088 ?        S    09:42   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11444  0.0  0.3 351900 11348 ?        S    09:44   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11922  0.0  0.2 351528 10572 ?        S    10:09   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11946  0.0  0.2 351528 10984 ?        S    10:10   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
daemon   11953  0.0  0.2 351528 10120 ?        S    10:11   0:00 /opt/lampp/bin/httpd -k start -E /opt/lampp/logs/error_log -DSSL -DPHP
freestyle   12516  0.0  0.0  15124   984 pts/5    S+   10:42   0:00 grep --color=auto httpd

1 个答案:

答案 0 :(得分:3)

首先,您需要确保拥有/home/freestyle/的正确权限 要执行此操作,请从终端

运行ls -l /home/freestyle/

而不是运行(*取决于你的apache配置,在我的情况下是www-data)

chown "www-data:www-data" /home/freestyle/
再次

ls -l /home/freestyle/查看权限是否已更改

UPDATE *

从您提供的输出中看起来您的apache在daemon下运行。 为/ home / freestyle / run:

提供权限
chown "daemon:daemon" /home/freestyle/

更新2 *

更改apache所有权用户和组,在apache配置中更改/添加以下内容

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data