Apache2 userdirは有効になっていますが、まだアクセスできません


9

Kubuntu 13.04ラップトップにApacheサーバーをセットアップしようとしています。apache2パッケージとをインストールしましたsudo a2enmod userdir; sudo service apache2 restartが、にアクセスhttp://localhost/~userすると、次のように表示されます。

Forbidden

You don't have permission to access /~user on this server.

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

の結果 tail /var/log/apache2/access.log

127.0.0.1 - - [02/Aug/2013:16:22:01 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:16:22:02 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 499 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"

の結果 tail /var/log/apache2/error.log

[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

あなたが持っていpublic_htmlたユーザーのディレクトリを?Apacheを実行しているユーザーは、それを読み取る権限を持っていますか?
ヨルダン2013

@jordanmはい、私は、755に設定も777を試してみました
QED

回答:


8

public_htmlディレクトリは、Apacheのように実行されていることを、ユーザがそれにアクセスできるように、このような彼らの権限を持っている必要があります。

$ chmod -R 755 ~/public_html

まだ動かない?

Apacheエラーログを確認すると、次のような行が表示されることがあります。

[2013年8月2日21:06:59金] [エラー] [クライアント127.0.0.1](13)権限が拒否されました:/〜kaiyinへのアクセスが拒否されました

これは、この例では、Apacheにユーザーのディレクトリ(〜kaiyin)に移動する権限がないことを示しています。

これを修正するには?

Apacheがメンバーであるグループまたは他の読み取り+実行ビットがユーザーのディレクトリにも設定されていることを確認して、Apacheがpublic_html下のフォルダーにアクセスできるようにする必要があります。

/home
|-- [drwxr-x---]  /home/sam

/home/sam
|-- [drwxr-xr-x]  /home/sam/public_html

参考文献


私はすでにそれをしました、しかし、私はまだ403禁止されました。
2013

@CravingSpirit-Apacheログ(/var/log/httpd/access.log)および(/var/log/httpd/error.log)をテールして、追加のメッセージがあるかどうかを確認します。
slm

ログを投稿に追加しました。
2013

@CravingSpirit-〜kaiyin`で拒否されたアクセスに注意してください?Apacheのユーザーは、ユーザーの最上位ディレクトリにアクセスできません。アクセスできるようにするには、読み取りと実行の権限が必要です。
slm

2
実際、ほぼ間違いなく755は必要ありません。の親で711または710のグループwww-dataを実行する必要がありpublic_htmlます。ファイルのリストが必要ない場合は、public_htmlでも実行されます。そうでない場合は、Apacheも読み取る必要があります(したがって、711/710ではなく755/750)。
CVn 2013

1
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

  <Directory /home/*/public_html>
    AllowOverride All
    Options MultiViews Indexes SymLinksIfOwnerMatch
    <Limit GET POST OPTIONS>
      # Apache <= 2.2:
      #Order allow,deny
      #Allow from all

      # Apache >= 2.4:
      Require all granted
    </Limit>
    <LimitExcept GET POST OPTIONS>
      # Apache <= 2.2:
      #Order deny,allow
      #Deny from all

      # Apache >= 2.4:
      Require all denied
    </LimitExcept>
  </Directory>
</IfModule>

の設定が正しいことを確認してください/etc/apache2/mods-enabled/userdir.conf。public_htmlを削除した後、許可が得られず、を確認することにしましたuserdir.conf。以前のapacheバージョンと新しいバージョンの設定があることに気づきました。私は最新のものを実行していることを知っていたので、新しい設定を有効にしましたが、今はすべて正常に動作しています


0

また/etc/hosts、ファイルを使用して、一時的なURLを不要にすることもできます。テーマまたはプラグイン(存在する場合)に完全なURLへの参照がある場合、サイトはコンテンツを適切な形式で表示しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.