【发布时间】:2016-03-25 14:00:38
【问题描述】:
所以我有一个位于 /var/www/html/test.php 的 PHP 文件,我让它运行代码 shell_exec('touch /home/pi/Desktop/test_file')
但是,网页显示正常,但是当我检查 apache 日志文件时,总是被拒绝权限。我知道 apache 以 www-data 用户身份运行,而我的主要用户 pi 可能有一些权限冲突(我是新手)。
我尝试了很多我在网上找到的选项,最有希望的是here,它建议我运行命令:
sudo chown -R pi:www-data /home/pi/Desktop
sudo chmod -R g+s /home/pi/Desktop
...但我仍然被拒绝许可。谁能建议我仍然需要配置哪些权限?我想确保安全,但同时需要我的 PHP 文件能够创建新文件。我使用桌面作为示例目录,但实际上我不在乎哪个目录,我只需要一个目录。我试过touch在/var/www/html 中创建一个文件,但那也是permission denied。谢谢!
【问题讨论】:
-
sudo chmod -R 755 /home/pi/Desktop应该可以修复它。 -
为什么不使用 touch() ? php.net/manual/en/function.touch.php
-
sudo chmod -R 755 /home/pi/Desktop安全吗?我对在线安全一无所知,但是对于未经授权访问此网络服务器是否存在任何安全问题? -
@jake9115:755 将为所有者应用读取、写入和执行权限,并为组和其他人应用读取和执行权限。 -R 标志表明这应该在整个 /var/www/ 目录和子文件夹中递归。
-
感谢您的解释。我确实执行了
sudo chmod -R 755 /home/pi/Desktop,但仍然得到permission denied