私はそれを理解することができません。 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時間以上彼を直そうとしていて、どこにも行きません。何か提案があれば、私はすべての耳です...
/ 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
(Pratikが+ xで質問に答えたと思うので、これはデバッグの提案です)
あなたが言及するエラーはファイルシステムのパーミッションエラーであるため、Apache設定ファイルがファイルシステム内の制限された場所にリダイレクト/エイリアシングしていない限り、問題は/ home/myusername/htdocsディレクトリまたはインデックスのパーミッションにあります.htmlファイル。
Apacheユーザーが拒否されている場所を確認するには、次のコマンドを実行します。
su -s /bin/bash Apache
その後、
cd /home/myusername/htdocs
権限に関する悪いアドバイスに注意してください。通常、/ 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は、グループやその他への読み取りアクセス権の付与を回避します
私はいつもあなたの設定をあなたのホームディレクトリにコピーし、「apt-getpurgeApache2」から始めます。
次に、それを再インストールし、「diff -y oldfilenewfile」を実行して変更を確認します。奇妙なことに、それが構成の変更ではない場合は、Webルートディレクトリに対するアクセス許可です。
たくさんのvhostがない限り、数分しかかかりません。