我刚刚切换到一个新的服务器主机 (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 错误,我必须再次运行该脚本。有什么办法可以防止这种情况发生吗?
最佳答案
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 命令,用从 cat/etc/trueuserdomains | 中收集的单词替换 $i awk '{print $2}' 命令。
第一个 chown 命令将每个文件和目录的所有者和组更改为在 cat/etc/trueuserdomains | awk '{print $2}' 命令。
然后,第二个 chown 命令将 public_html 上的组设置为 nobody
,该组可能在主机上没有分配给它的用户帐户。
这样就解决了您的 Web 服务器文件中的权限问题,但正如您所说,并没有完全描述问题的根本原因。
要解决根本问题,请告诉我们以下信息。
如何上传文件到服务器?工具的名称是什么?当您上传文件时,您能否提供他们在运行上述命令之前拥有的所有者和组权限的示例?
关于linux - 将新文件上传到服务器时出现 500 内部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289563/