PHP cp权限问题

时间:2011-10-08 07:59:27

标签: php shell permissions

PHP脚本(restore.php):

var_dump( get_current_user());
var_dump( shell_exec( " cp /var/www/bkp/* /var/www/html 2>&1 " ));

在浏览器中访问脚本时

string(6) "apache"
string(115) "cp: cannot create regular file `/var/www/html/227.png': Permission denied cp: cannot remove `/var/www/html/234.png' Permission denied "

控制台:

cd /var/www/html
sudo -u apache touch test.txt
ls test.txt
  -> test.txt
sudo -u rm 234.png -f
ls 234.png
  -> ls: 234.png: No such file or directory
sudo -u apache php restore.php
ls 234.png
  -> 234.png

在浏览器中运行时,有人可以解释为什么我的php脚本会出现权限问题吗?

2 个答案:

答案 0 :(得分:1)

你确定Apache作为apache用户运行吗? get_current_user()返回脚本的所有者。您会认为Apache将以apache运行,但可能不是。

您可以使用以下命令获取流程所有者的姓名:

$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];

答案 1 :(得分:0)

检查/ var / www / owner是否为www-data(apache web服务器的用户),并且他具有red& amp;写。