我知道这里之前已经介绍了文件权限,但我正在努力理解我的场景的概念。
为了解决这个问题,我假设它们仍然必须由以前的所有者拥有,所以我chown -R在目录上运行,以我的用户名作为参数,以便获得目录中所有文件的所有权。应该注意的是,新旧 ubuntu 安装之间的用户名是相同的。
当我尝试再次运行文件时,同样的问题:由于权限问题导致 500 错误。谁能告诉我我应该采取哪些其他步骤?
我的 apache 安装的 webroot 位于我的主文件夹中。如果我在 webroot 中创建新文件,它们也会按预期工作,只是导致问题的旧文件。
小智 45
如果您的服务器文档在/home/$USER/public_html您需要运行的目录中
sudo chown -R www-data:www-data /home/$USER/public_html
Run Code Online (Sandbox Code Playgroud)
将 DocumentRoot 文件夹的所有权授予用户www-data和组www-data。
然后你就可以把自己加到群里了 www-data
sudo adduser $USER www-data
Run Code Online (Sandbox Code Playgroud)
最后,您需要使 DocumentRoot 文件夹可由所有者(www-data 用户)和您自己(作为www-data组的一部分)写入:
sudo chmod -R 775 /home/$USER/public_html
Run Code Online (Sandbox Code Playgroud)
为方便起见,您可以public_html_fix.sh使用内容命名脚本:
#!/bin/bash
sudo adduser $USER www-data
sudo chown -R www-data:www-data /home/$USER/public_html
sudo chmod -R 775 /home/$USER/public_html
Run Code Online (Sandbox Code Playgroud)
将其保存在其中/home/$USER/bin并使用以下命令使其可执行:
sudo chmod +x /home/$USER/bin/public_html_fix.sh
Run Code Online (Sandbox Code Playgroud)
然后你在任何需要的时候调用它,从文件系统的任何地方你碰巧发现自己是这样的:
public_html_fix.sh
Run Code Online (Sandbox Code Playgroud)
Lek*_*eyn 15
webroot 上面的目录应该设置执行位以允许 Apache 进入目录。
如果你有你的根目录位于/home/user/htdocs的/,/home,/home/user并且/home/user/htdocs应该有执行位。
上述解决方案“有效”,但并不理想。如果您创建了一个文件夹,Apache 将无法写入该文件夹。反过来也会发生。
这可以通过设置 umask 0007 并将自己添加到 Apache 组(如果我没记错的话,www-data)来“修复”,以便该组可以写入新创建的文件和文件夹。
或者,您可以安装替代的 Apache MPM:Apache2 MPM ITK(配置信息)并调整配置,以便 Apache 在您的用户下运行。
| 归档时间: |
|
| 查看次数: |
165181 次 |
| 最近记录: |