web-dev-qa-db-ja.com

さらに別の(13)Apache2サーバーでのアクセス許可拒否エラー

私はそれを理解することができません。 Ubuntu 10.04i386サーバーでApache2を実行しています。ブラウザでサーバー(IPアドレスを持ち、静的IP xxx.xxx.xxx.xxxでインターネットに接続されている)にアクセスするたびに、mysub.domain.ed(名前が変更されました)ここで)、私は次を取得します:

Forbidden
You don't have permission to access /index.html on this server

Apache2エラーログはこれを確認します:

[Mon Apr 18 02:38:20 2011] [error] [client zzz.zzz.zzz.zzz] (13)Permission denied: access to / denied

以下に必要なすべての情報を提供しようとします:

1)/etc/Apache2/httpd.confの内容

DirectoryIndex index.html index.php

2)/ etc/Apache2/sites-available/defaultの内容

<VirtualHost *:80>
ServerAdmin [email protected]

DocumentRoot /home/myusername/htdocs
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
<Directory "/home/myusername/htdocs/">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
order allow,deny
allow from all
DirectoryIndex index.html index.php
Satisfy any
</Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/Apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/Apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
ServerName mysub.domain.edu

</VirtualHost>

3)/ etc/Apache2/sites-enabled/000-defaultの内容

<VirtualHost *:80>
ServerAdmin [email protected]

DocumentRoot /home/myusername/htdocs
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
<Directory "/home/myusername/htdocs/">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
order allow,deny
allow from all
DirectoryIndex index.html index.php
Satisfy any
</Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/Apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/Apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all 
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
ServerName mysub.domain.edu

</VirtualHost> 

4)ls -lの結果(Sudo -iをrootとして使用している場合):

root@myserver:/home/myusername# ls -l
total 4
drwxr-xr-x 2 www-data root 4096 2011-04-18 03:04 htdocs

5)ps auxwww | grep -i Apache

root@myserver:/home# ps auxwww | grep -i Apache
root     15121  0.0  0.4   5408  2544 ?        Ss   16:55   0:00 /usr/sbin/Apache2 -k start
www-data 15122  0.0  0.3   5180  1760 ?        S    16:55   0:00 /usr/sbin/Apache2 -k start
www-data 15123  0.0  0.5 227020  2788 ?        Sl   16:55   0:00 /usr/sbin/Apache2 -k start
www-data 15124  0.0  0.5 227020  2864 ?        Sl   16:55   0:00 /usr/sbin/Apache2 -k start
root     29133  0.0  0.1   3320   680 pts/0    R+   16:58   0:00 grep --color=auto -i Apache

6)ls -al/home/myusername/htdocs /

root@myserver:/# ls -al /home/myusername/htdocs/
total 20
drwxr-xr-x 2 www-data   root       4096 2011-04-18 03:04 .
drw-r--r-- 4 myusername myusername 4096 2011-04-18 02:13 ..
-rw-r--r-- 1 root       root         69 2011-04-18 02:14 index.html

現在、ユーザーフォルダーのWebルート(htdocs)フォルダーにある.htaccessファイルを使用していません。

何が悪いのかわかりません。12時間以上彼を直そうとしていて、どこにも行きません。何か提案があれば、私はすべての耳です...

4
lollercoaster

/ home/usernameを作成し、/ homeに権限755を付与します

編集:読みやすくするためにここに追加します

あなたはこれを投稿しました:

drwxr-xr-x 2 www-data   root       4096 2011-04-18 03:04 .
drw-r--r-- 4 myusername myusername 4096 2011-04-18 02:13 ..

ご覧のとおり、/ home/myusernameフォルダーにはrw、r、rがあります。そのフォルダと/ homeフォルダに「x」を付ける必要があります

chmod o+x /home
chmod o+x /home/myusername
1
Pratik Amin

(Pratikが+ xで質問に答えたと思うので、これはデバッグの提案です)

あなたが言及するエラーはファイルシステムのパーミッションエラーであるため、Apache設定ファイルがファイルシステム内の制限された場所にリダイレクト/エイリアシングしていない限り、問題は/ home/myusername/htdocsディレクトリまたはインデックスのパーミッションにあります.htmlファイル。

Apacheユーザーが拒否されている場所を確認するには、次のコマンドを実行します。

su -s /bin/bash Apache

その後、

cd /home/myusername/htdocs
2
Tom H

権限に関する悪いアドバイスに注意してください。通常、/ home/usernameディレクトリに755を配置しないでください。

正しい権限はhttpd.confファイルに記載されており、関連するセクションをここに貼り付けます。

# This usually means that ~userid  (/home/username for the lay person)
# must have permissions of 711

〜useridの注711をお勧めします。/home/username(〜userid)の755は避けてください!!!!!!!! 、

#~userid/public_html must have permissions"
# of 755"

〜userid/public_htmlは755を指定しても問題ありませんが、〜useridフォルダーに755を指定すると、システム上のすべてのユーザーがホームフォルダーにアクセスしてファイルを読み取り、ホームでファイルを実行できるようになります。ユーザーシステム。 711は、グループやその他への読み取りアクセス権の付与を回避します

1
Joseph Olstad

私はいつもあなたの設定をあなたのホームディレクトリにコピーし、「apt-getpurgeApache2」から始めます。

次に、それを再インストールし、「diff -y oldfilenewfile」を実行して変更を確認します。奇妙なことに、それが構成の変更ではない場合は、Webルートディレクトリに対するアクセス許可です。

たくさんのvhostがない限り、数分しかかかりません。

0
Jonathan Ross