4

Я думаю, что мой Apache должен быть все испорчен. Я не знаю, работало ли это когда-либо. Я только что перешел на Snow Leopard, и первый шаг в этом уроке - запустить apache и убедиться, что он работает, открыв http://localhost. Все начинается нормально, но когда я перехожу на localhost, я получаю 403 запрещенную ошибку.

Я не знаю, с чего начать выяснять, как это исправить, поэтому мне интересно, подойдет ли новая установка Apache.

Как вы думаете?

Обновление: я нашел несколько журналов ошибок в /private/var/log/apache2/ . Нашел это в одном из журналов. Не уверен, что это значит:

[Tue Nov 10 17:53:08 2009] [notice] caught SIGTERM, shutting down
[Tue Nov 10 21:49:17 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist
Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist
httpd: Could not reliably determine the server's fully qualified domain name, using Andrews-Mac-Pro.local for ServerName
mod_bonjour: Skipping user 'andrew' - cannot read index file '/Users/andrew/Sites/index.html'.
[Tue Nov 10 21:49:19 2009] [notice] Digest: generating secret for digest authentication ...
[Tue Nov 10 21:49:19 2009] [notice] Digest: done
[Tue Nov 10 21:49:19 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 PHP/5.3.0 configured -- resuming normal operations

Обновление: я также нашел что-то в файле dummy-host.example.com-error_log . Кстати, я не ставил эти пустышки. Это конфигурация по умолчанию?

[Tue Nov 10 21:59:57 2009] [error] [client ::1] client denied by server configuration: /usr/docs

Обновление: Woohoo! Я нашел файл с определениями виртуальных хостов. Это было в /etc/apache2/extra/httpd-vhosts.conf . Там были две фиктивные настройки виртуального хоста. Я добавил localhost виртуальный хост. Не уверен, если это необходимо, но так как он не работал раньше, решил все равно это сделать. После удаления старых виртуальных хостов, добавления моего нового виртуального хоста localhost и перезапуска apache, похоже, все работает. Так что я думаю, что когда я хочу добавить виртуальный хост, мне нужно только добавить их в этот файл? Или где-то есть файл hosts, как в Linux?

Обновление: Да, есть файл /etc/hosts который необходимо изменить. Добавьте имя виртуального хоста в этот файл.

2 ответа2

2

Если вы получаете ошибку 403, это, вероятно, означает, что каталог не существует, или привилегии в этом каталоге не позволят вам его увидеть.

Моя проблема заключалась в том, что настройки виртуального хоста по умолчанию указывали на несуществующий каталог.

Итак, вот что вы должны сделать: (при условии, что вы на Snow Leopard)

  1. Найдите и откройте ваш файл конфигурации виртуальных хостов.

    pico /etc/apache2/extra/httpd-vhosts.conf
    
  2. Проверьте, что ваши определения виртуального хоста там, иначе создайте их

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/Users/yourusername/Sites/mysite"
    ServerName mysite.local
    ErrorLog "/private/var/log/apache2/mysite-error_log"
    CustomLog "/private/var/log/apache2/mysite-access_log" common
    </VirtualHost>
    
  3. Откройте файл /etc/hosts и добавьте имя вашего виртуального хоста. Вот что у меня:

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1          localhost
    255.255.255.255    broadcasthost
    ::1                localhost 
    fe80::1%lo0        localhost
    
    # VIRTUAL HOST START
    127.0.0.1          localhost
    127.0.0.1          mysite.local
    # VIRTUAL HOST STOP
    
  4. Теперь перезапустите Apache, и у вас все получится!

    sudo apachectl restart
    
0

Также он помечен как предупреждение, это действительно критическая строка в вашем журнале ошибок:

Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist

Apache ищет каталог, который будет содержать файлы, которые будут решены, когда вы говорите с ним. По-видимому, этот каталог не существует, и, следовательно, Apache не может вам что-либо решить. Создайте каталог и поместите туда какой-нибудь файл index.html или отредактируйте файл конфигурации, чтобы указать Apache на другой каталог.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .