web-dev-qa-db-ja.com

Apacheはシンボリックリンクをたどりません| 403許可が拒否されました

Ubuntu 14.04を使用していますが、Apacheの構成に問題があります。

/var/www/htmlから/home/me/myWebDirectoryに向けてシンボリックリンクを作成しました

しかし、localhost/myWebDirectory

403-許可が拒否されました

実際、Sudo -u www-data ls /home/me/myWebDirectoryは拒否されたアクセス許可も返します

Apache2.confには次のディレクティブがありました:

<Directory /var/www>
           Options Indexes FollowSymLinks
           AllowOverride None
           Require all granted
 </Directory>

<Directory /var/www/html>に変更しましたが、結果がありません。

このコマンドwww-data groupを使用してmeユーザーをSudo usermod -a -G groupName userNameに追加しようとしましたが、それも役に立ちませんでした

私が逃したのは何ですか?

[〜#〜] edit [〜#〜]/home/me/myWebDirectoryのグループをrx権限を持つwww-dataに変更しましたが、成功しませんでした...

私が言ったように、私はこのSudo -u www-data ls /home/me/myWebDirectoryが拒否された許可も返すので、私が読書許可の問題を抱えていることをよく知っていました(つまり、www-dataにはその中身を見る権利がありません)。

しかし、私はあなたの答えの特定のポイントをより明確にする必要があります:

また、「localhost/myWebDirectory」の代わりにURL「localhost/html」を使用する必要があります。

実際、私は次のようにシンボリックリンクを作成しました:

  • cd /var/www/html
  • ln -s /home/user/me/myWebDirectory myWebDirectory

localhost/myWebDirectoryにアクセスするのが正しいアドレスだと思いますよね?

chown -R www-data:www-data/var/www/html

  • ubuntu 14.04以降、ApacheDocRootは/var/www/html所有者を変更する必要がある理由(他の多くのデーモンと同様に、デフォルトではルート)。
  • /localhost/testfile.htmlは正常に機能します(undertsandテストファイルは/var/www/htmlにあります)
  • /localhost/phpmyadminは、/usr/shareへのシンボリックリンクであっても機能します(mが/home/user...へのシンボリックリンクを取得しようとしている間)

chmod + r/var/www/html#dirに読み取り権限を追加

chmod +r /var/www/html/* # add read permission to files in dir
  • 誰に読み取り権限を追加しますか? myUserに?
  • しかし、それはまさに私がやりたくないことです。
  • 私は実際、Apacheが/ home/me/myWebDirectoryを読み取れるようにし、myUserがApacheのディレクトリに書き込みを行わないようにしたいのです。

NB: Apache mod_userdirをアクティブ化しながら、それを行う別の方法があることを私は知っています。おそらくそれが次に行うことです。しかし、最初に、この「単純な」ソリューションを機能させる方法を理解したいと思います...

2

私は最終的に次の解決策で私の問題を解決しました、それは将来誰かを助けるかもしれません...

須藤は私をchown:www-data/home/me
Sudo chmod 710/home/me

Sudo chown -R me:www-data/home/me/myWebDirectory

Sudo chmod -R g + r/home/me/myWebDirectory

注意:たとえば、すべてのサブディレクトリをApacheで読み取れるようにしたくない場合があるため、-R(ecursive)ディレクティブを適応させます。

しかし重要なのは、Apacheユーザーグループに自宅への読み取りアクセスを許可してから、関係する乳児への読み取りアクセスを許可することです。

1

この問題は、読み取り権限がないために存在します。実行:

# chmod +r /var/www/html  # add read permission to dir
# chmod +r /var/www/html/* # add read persmission to files in dir
# chown -R www-data:www-data /var/www/html

また、あなたの家は「localhost/myWebDirectory」の代わりにURL「localhost/html」を使用します。

0
akozin