これは、apacheがapacheユーザーとして実行され、/var/www/html
がAmazon Linux AMIでrootによって所有されているためです。フランクの提案に基づいて所有権/許可を変更するか、userdirsを使用してください。
ウェブサーバーのフォルダをホームディレクトリ(~
)から簡単にアクセスできるようにしたいと思うようです。私はEC2でこのようなことをしたいと思って、ユーザーごとのウェブディレクトリ(mod_userdir)を使用することに決めました。
この機能を使用すると、HTTPサーバーのスペースの一部をユーザーが所有するディレクトリに置くことができます。各ユーザーは、デフォルトで/home/username/public_html
にある独自のディレクトリを取得します。そのディレクトリにあるページ、スクリプト、その他のファイルは、ドメインに/~username
を追加してインターネットにアクセスできます。さらに、httpd.conf内のそのフォルダの名前をpublic_html
からgitRepo
のようなものに変更することができます。その場合、index.html
のファイルが/home/ec2-user/gitRepo/index.html
にある場合は、http://ec2-hostname.aws.amazon.com/~ec2-user/index.html
で公開され、ユーザーレベルのファイルを編集するのに便利なec2-userが所有します。
は、Apacheの設定ファイルを開き、
<IfModule mod_userdir.c>
が表示されるまでスクロールダウンし
nano /etc/httpd/conf/httpd.conf
を使用して、EC2(使用したいフォルダ名の「gitRepo」を仮定して)でこれを設定するには。その後、次のように見えるように、このセクションを変更:
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir enabled all
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir gitRepo
</IfModule>
その後、あなたが行ってもいいことが、権限が正しく設定されていることを確認する必要があります
chmod 711 /home/ec2-user
chmod 755 /home/ec2-user/gitRepo
chown -R ec2-user /home/ec2-user/gitRepo
そして最後には、このようなWebサーバをリロードします。
sudo service httpd reload
'apache'ユーザ(または同等のもの)には、あなたのホームディレクトリへの読み出し許可がありません。 Chmod/chownを実行して、関連するユーザーに許可を与えます。 BTWでは、 '/ var/log/httpd/error_log'や、httpdがエラーを記録している箇所では、やや多くのメッセージが表示されます。 –
@FrankFarmer sudo su apacheを使用してapacheユーザーに切り替えると、このメッセージが表示されます。このアカウントは現在利用できません。これまで経験したことがありますか? – Apollo
はい。デフォルトでは、apacheユーザは通常、 'nologin'に設定されたシェルを持っているので、su apacheを実行することはできません。ユーザーのシェルを '/ etc/passwd'でshに変更できますが、これはおそらく一般的には悪い考えです。一般的に、あなたがちょうどchownしたい場合は特に、apacheへのsugingは必要ではありません。あなたの場合、 'sudo chown apache:apache〜/ dirIWant /'で十分ですが、あなたのホームディレクトリからディレクトリを移動する方が賢明でしょう。 –