解決策1:

解決策1:

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

答え1

これらのpublic_htmlディレクトリには、Apache を実行しているユーザーがアクセスできるように、次の権限が必要です。

$ chmod -R 755 ~/public_html

それとも?

Apacheエラーログを見ると、次の行が表示されます。

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

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

この問題をどのように解決しますか?

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

はい

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

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

引用する

答え2

<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をchmoddingした後、権限が拒否された後に確認することにしましたuserdir.conf。以前のApacheバージョンと最新バージョンの設定があることを確認しました。最新バージョンを実行していることがわかっているので、最新の設定を有効にしており、すべてがうまく機能します。

答え3

/etc/hostsファイルを使用すると、一時的なURLが不要になる可能性があります。テーマまたはプラグイン(ある場合)にURL全体への参照がある場合、Webサイトはコンテンツを正しい形式で表示しません。

答え4

フォルダに検索()権限がないか、ファイルに読み取り()権限がxない可能性があります。r

namei -ml /home/joe/public_html/index.html

f: /home/joe/public_html/index.html
drwxr-xr-x root  root  /
drwxr-xr-x root  root  home
drwxr-x--- joe joe joe
drwxrwxr-x joe joe public_html
-rwxr-xr-x joe joe index.html

Apacheはルートから/始めてすべてのフォルダを検索して読み取る必要があります(つまり、権限がindex.html必要です)。上記のように、ユーザーは読み取り()または検索()を実行できません。rx/home/joeotherrx

解決策1:

www-dataログインしたユーザーグループにapache2ユーザー(私の場合)を追加します。これにより、www-dataユーザーのすべてのコンテンツにアクセスできます/home/joe

私の場合、apache2はというユーザーとして実行されていますwww-data。したがって、www-dataユーザーをグループに追加する必要があります。joe

adduser www-data joe

また、以下のすべてのファイルにはこのグループに対する権限がpublic_html必要です。rx

chmod -R g+rw /home/joe/public_html

/home/joeApacheサーバーは下のすべてのファイルにアクセスできるため、安全性が低くなります。 apache2管理者が誤って代わりsome_private_folderにアクセスするように設定を変更した場合は、public_html他の人が簡単にアクセスできます。

解決策2:

ランダムother検索を許可(x/home/joe

chmod o+x /home/joe

また、以下のすべてのファイルにアクセス権がpublic_html必要です。othersrx

chmod -R o+rw /home/joe/public_html

関連情報