我想知道是否可以向我的用户(“ubuntu”)和 www-data 组授予文件夹(“tmp”)的完全(rwx)权限。
我尝试过:
sudo chown -R ubuntu:www-data /var/www/wondermap/html/tmp
sudo find /var/www/wondermap/html/tmp -type d -exec chmod 775 {} \;
sudo find /var/www/wondermap/html/tmp -type f -exec chmod 664 {} \;
执行 ls -ld tmp/ 我现在可以看到:
drwxrwxr-x 2 ubuntu www-data 4096 Jan 4 23:04 tmp/
我认为这是对的。是吗?
我之所以询问,是因为我的应用程序应该使用 www-data 组中的 www-data 用户在 tmp 文件夹中写入文件,但它无法在我的生产服务器上运行,而在我的开发机器上却运行正常,我只是认为这可能是权限问题。
此外,也许这可能相关:如果重要的话,我的生产服务器是 Amazon AWS ec2。
编辑
我按照@GeorgeUdosen 的建议重新启动了服务器,但不幸的是,这并没有解决问题。
所以让我解释一下我的问题(如果您认为它不再与 askubuntu 相关,请随意投票移动它)...
我有一个网站,其中一个下载按钮会触发我的 AWS ec2 上的 PHP。单击后,PHP 会在 tmp 中创建一个文件夹,在此文件夹中创建文件,将文件夹与文件一起压缩并将其发送到客户端。使用 JS 的客户端保存压缩文件并强制浏览器下载它。
我的开发机器上一切正常,所以我将代码复制到我的生产服务器 (ec2)。单击生产网站上的下载按钮时,浏览器会下载一个压缩文件,但它是无效的,如果我用 gedit 打开它,我可以看到 PHP 源代码而不是所需的生成文件 (一些 CSV)。
现在,我认为这是一个权限问题,因为我没有在 ec2 中的 tmp 文件夹中看到应该生成的文件夹文件和 zip,这就是我问这个问题的原因。
但是,如果权限正确,我应该考虑在其他地方寻找问题的原因。
我确实询问了入站和出站规则服务器故障不是为了向我发送垃圾邮件,而是为了了解这些亚马逊设置规则是否会造成问题。
解决方案
我感觉自己太愚蠢了......事实证明我的服务器上没有安装 PHP......
sudo apt install php libapache2-mod-php
sudo systemctl restart apache2