2

新しいサーバー ホスト (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 エラーが発生し、そのスクリプトを再度実行する必要があることに気付きました。これを防ぐ方法はありますか?

4

1 に答える 1

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の2番目の列にある各単語で構成されるユーザーのリストが出力されます(このファイルには1行しかなく、2番目の単語にはファイルが必要なユーザーが含まれている可能性があります)が所有している)

そのリストが何であるかを正確に確認したい場合は、コマンドラインから次のコマンドを実行します。

cat /etc/trueuserdomains | awk '{print $2}'

次に、for i部分は、$iをcat/ etc /trueuserdomains|から収集された単語に置き換える2つのchownコマンドを実行します。awk'{print$2}'コマンド。

最初のchownコマンドは、すべてのファイルとディレクトリの所有者とグループを、cat / etc /trueuserdomains|にあるものに変更します。awk'{print$2}'コマンド。

次に、2番目のchownコマンドは、public_htmlのグループをに設定しますnobody。これは、ホストマシンでユーザーアカウントが割り当てられていない可能性が高いグループです。

これで、Webサーバーファイルのアクセス許可が整理されますが、あなたが言うように、問題の根本的な原因は完全には説明されていません。

根本的な問題を解決するには、次のことをお知らせください。

どのようにファイルをサーバーにアップロードしますか?ツールの名前は何ですか?ファイルをアップロードするときに、上記のコマンドを実行する前に所有者とグループの権限のサンプルを提供できますか?

于 2011-03-15T18:18:05.710 に答える