Назад | Перейти на главную страницу

Еще одна (13) ошибка отказа в разрешении на сервере Apache2

Я просто не могу этого понять. Я запускаю apache2 на сервере Ubuntu 10.04 i386. Каждый раз, когда я посещаю свой сервер (имеет IP-адрес и подключен к Интернету со статическим IP-адресом xxx.xxx.xxx.xxx), так что проблема не в этом) в браузере, mysub.domain.edu (здесь переименован), я получаю следующее:

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@domain.com

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@domain.com

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

В настоящее время я не использую файлы .htaccess в моей корневой папке (htdocs) в папке пользователя.

Я не знаю, что не так, я пытался исправить его более 12 часов и ничего не добился. Если у вас есть предложения, я весь уши ...

(это скорее предложение отладки, поскольку я думаю, что Pratik ответил на вопрос с помощью + x)

Ошибка, о которой вы упоминаете, является ошибкой разрешения файловой системы, поэтому, если ваш файл конфигурации apache не перенаправляет / назначает псевдоним в какое-то ограниченное место в файловой системе, ваша проблема связана с разрешениями в каталоге / home / myusername / htdocs или индексе .html файл.

Чтобы узнать, где отказано вашему пользователю apache, выполните следующую команду:

su -s /bin/bash apache

а затем попытайтесь

cd /home/myusername/htdocs

ОСТОРОЖНО плохих советов по поводу разрешений. Как правило, вы НЕ должны помещать 755 в каталог / home / username.

Правильные разрешения задокументированы в файле httpd.conf, и я вставлю сюда соответствующие разделы:

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

ПРИМЕЧАНИЕ 711 для ~ идентификатора пользователя рекомендуется, ИЗБЕГАЙТЕ 755 для / home / username (~ идентификатор пользователя) !!!!!!!! ,

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

~ userid / public_html может дать 755, но если вы дадите 755 своей папке ~ userid, КАЖДЫЙ в вашей системе сможет получить доступ к вашей домашней папке, читать ваши файлы и выполнять файлы дома, как правило, действительно ПЛОХО на многопользовательской пользовательская система. 711 избегает предоставления доступа на чтение группе и другим

Сделайте ваше / home / имя пользователя и / home имеет разрешения 755

EDITL: я добавлю сюда, чтобы его было легче читать

Вы разместили это:

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. Вам нужно указать "x" этой папке и папке / home

chmod o+x /home
chmod o+x /home/myusername

Я всегда начинал с копирования ваших конфигураций в ваш домашний каталог и выполнял команду apt-get purge apache2.

Затем переустановите его и выполните команду "diff -y oldfile newfile", чтобы увидеть изменения. Если, как ни странно, это не изменения конфигурации, то это разрешения в корневом веб-каталоге.

Это займет всего пару минут, если у вас нет большого количества хостов.