質問: ファイルをアップロードするための正しい権限を設定する 「uploads」というディレクトリにファイルをアップロードするphpスクリプトがあります。アップロードを機能させる唯一の方法は、次の場合です。chmod 777 uploads 私はこれが正しくないことを知っていますが、それを機能させるために何をすべきかはわかりません。サーバー情報:amazon ec2上のt1-micro amazon linux ami 2013.03質問: どのようなユーザーがアクセスする必要があるかを知るにはどうすればよいですか。たとえば、apacheまたはwebサーバーのユーザー名は何ですか。 どのレベルのアクセス権を与える必要があるか、またそれを行うためにどのコマンドを使用するか。 ありがとう!編集:私はスタックオーバーフローで多くの答えを見つけました。例えば https://stackoverflow.com/questions/3642241/php-file-upload-permissions https://stackoverflow.com/questions/10842880/setting-permissions-in-php-on-server https://stackoverflow.com/questions/8948537/permission-denied-when-attempting-to-upload-file-with-php ありがとう
回答: 実行してみてください:ps -ef | grep apache そして、apacheサーバーに対応する左端の列を見てください。これはapacheを実行しているユーザーであり、継承によりphpも実行します。アップロードディレクトリの所有権をこのユーザーに変更し、権限を少し制限します。 webサーバーユーザーがwww-dataであり、同じ名前のグループに属している場合(/var/www/uploadsのサンプルパスを使用):sudo chown www-data:www-data /var/www/uploads sudo chmod 755 /var/www/uploads (またはこのインスタンスで必要なすべての権限)。私はコマンド例でsudoを使用しています—この点に関して、スーパーユーザー権限を取得するためにec2システムがどのように設定されているのか正確にはわかりません。すでにファイル/ディレクトリをアップロードしている場合は、それらの所有権とアクセス権も変更することをお勧めします。これを行うには、777からより適切な権限に変更して、次のコマンドを実行します。sudo chown -r www-data:www-data /var/www/uploads sudo chmod -r 755 /var/www/uploads sudo find /var/www/uploads -type f -exec chmod -x {} \; コマンドの各部分を理解していない場合は、コマンドを「盲目的に」実行しないでください。何か不明な点がある場合は、manページを確認してください(非常に簡単なはずです)。