我刚刚切换到新的服务器主机(VPS),我将所有文件都转移到了。我注意到没有任何工作,一切都抛出500内部错误。
然后我通过命令行运行它,它工作正常
for i in `cat /etc/trueuserdomains | awk '{print $2}'`; do chown $i.$i /home/$i/public_html -R; chown $i.nobody /home/$i/public_html; done
我不确定它的作用,但我认为它改变了脚本的所有者。无论如何,我已经注意到过去一周我上传了一个尚未在服务器上的新脚本,它给了我相同的500错误,我必须再次运行该脚本。有什么方法可以防止这种情况发生吗?
答案 0 :(得分:1)
for i in `cat /etc/trueuserdomains | awk '{print $2}'`;
do
chown $i.$i /home/$i/public_html -R;
chown $i.nobody /home/$i/public_html;
done
通过分解上述代码描述
cat /etc/trueuserdomains | awk '{print $2}'
这将打印出在文件/ etc / trueuserdomains的第二列中找到的每个单词组成的用户列表(此文件中可能只有一行,其中第二行包含用户文件应由...拥有
如果要查看该列表的确切内容,请从命令行运行以下命令。
cat /etc/trueuserdomains | awk '{print $2}'
然后 for i 部分执行两个chown命令,将$ i替换为cat / etc / trueuserdomains中收集的单词。 awk'{print $ 2}'命令。
第一个chown命令将每个文件和目录的所有者和组更改为cat / etc / trueuserdomains中的所有文件和目录。 awk'{print $ 2}'命令。
然后,第二个chown命令将public_html上的group设置为nobody
,这个组可能没有在主机上分配给它的用户帐户。
这样就可以对Web服务器文件中的权限进行排序,但是,就像您说的那样,并不能完全描述问题的根本原因。
要解决潜在问题,请告诉我们以下内容。
如何将文件上传到服务器?这个工具的名称是什么?上传文件时,您可以在运行上述命令之前提供他们拥有的所有者和组权限的示例吗?