【发布时间】:2017-08-26 02:18:03
【问题描述】:
我正在尝试在无头 raspbian 机器上制作某种云应用程序。 测试在 windows8.1 上运行的 wamp-server 上进行。 PHP版本是5.6
代码在我的测试窗口上运行良好,但是在我的 linux 服务器上运行相同的代码时遇到了问题。我已将问题缩小到(背后的 linux 用户)我的 PHP 代码对它应该存储文件的文件夹没有写权限这一事实。
我可以想到两种方法来解决这个问题:要么给那个 php-user 权限,要么改变 php 代码背后的用户。如果可以根据脚本进行更改,最后一个将非常有趣。
所以,对于我的具体问题:
1) 我在哪里可以找到我的 PHP 代码正在使用的用户?
2) 我可以更改我的 PHP 代码使用的用户吗,最好是在每个项目的基础上?
编辑:
我的脚本以 root 身份运行,如 echo get_current_user(); 所示。我将所有文件的所有权更改为 root:webhosting,之前是 ftpuser:ftpgroup。但是,当将权限设置为 770 时,我被拒绝访问
EDIT2:
当使用 var_dump(posix_geteuid()); 而不是 get_current_user(); 时,我得到 UID 33,它与用户 www-data 匹配。
解决方案:
通过查看带有 var_dump(posix_geteuid(); 的 EUID,我能够验证与 get_current_user(); 不匹配的实际用户。使用sudo chown -R www-data:www-data <root of site> 更改目录和其中的所有文件我设法设置了正确的权限。
【问题讨论】:
-
你知道你运行的是什么网络服务器吗?如果是这样,您可以看到谁在运行它。例如,我运行
ps aux | grep httpd,它显示用户“apache”正在运行httpd。所以,我必须授予 apache 读取/写入文件夹的权限。 -
1) 你可以试试de.php.net/get_current_user 2) 好吧,不行
-
就像塞巴斯蒂安说的你可以使用
echo get_current_user();来显示当前用户。您是否在初始 tmp 文件夹或目标文件夹中遇到权限问题?要改变你可以做chown user | chmod 755 /var/www/html/myuploaddir你也可能对owncloud项目感兴趣,它是一个开源的灯云项目
标签: php linux raspbian user-permissions