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

Почему я получаю эту ошибку в журналах?

Хорошо, я только что запустил новый сервер ubuntu 11.10 и добавил vhost, и все вроде нормально ... Я также перезапустил apache, но когда я захожу в браузер, я получаю пустая страница

IP-адрес сервера http://23.21.197.126/ но когда я слежу за бревном

tail -f /var/log/apache2/error.log 
[Wed Feb 01 02:19:20 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs
[Wed Feb 01 02:19:24 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs

но мой единственный файл на сайтах - это

<VirtualHost 23.21.197.126:80>
         ServerAdmin something@gmail.com
         ServerName logicxl.com
         # ServerAlias
         DocumentRoot /srv/crm/current/public
         ErrorLog /srv/crm/logs/error.log

           <Directory "/srv/crm/current/public">
             Order allow,deny
             Allow from all
           </Directory>
   </VirtualHost>

что-то мне не хватает ... корень документа должен быть /srv/crm/current/public и нет /etc/apache2/htdocs как подсказывает ошибка

Есть какие нибудь идеи как это починить

ОБНОВИТЬ

sudo apache2ctl -S
VirtualHost configuration:
23.21.197.126:80       is a NameVirtualHost
     default server logicxl.com (/etc/apache2/sites-enabled/crm:1)
     port 80 namevhost logicxl.com (/etc/apache2/sites-enabled/crm:1)
Syntax OK

ОБНОВИТЬ

 <VirtualHost *:80>
    ServerAdmin something@gmail.com
    ServerName logicxl.com
    DocumentRoot /srv/crm/current/public
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /srv/crm/current/public/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Похоже, что apache не находит каталог с вашими сайтами.
Найдите в своем файле apache2.conf (etc / apache2 / apache2.conf) такую ​​строку:

Include sites-enabled/

Измените его на абсолютный путь следующим образом:

Include /etc/apache2/sites-enabled/

Это должно помочь.

Вероятно, это связано с:

<VirtualHost 23.21.197.126:80>

Любой запрос в http://localhost мог пропустить начальное определение виртуального хоста.

Затем вы изменили его (правильно) на:

<VirtualHost *:80>

Если у вас нет особой причины, вы всегда должны использовать *:80 поскольку это определяет, по какому адресу Слушать на. ServerName определяет, на какое имя отвечать. Например:

NameVirtualHost *:80
<VirtualHost *:80>
...
</VirtualHost>

У меня такая же проблема. Однако в моем случае это было просто из-за того, что ... сайты-доступные / по умолчанию не были связаны с сайтами с включенными / по умолчанию.

В apache2.conf у меня есть:

Include sites-enabled/

И мои сайты включены / по умолчанию:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </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 ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/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>

</VirtualHost>

Вы забыли добавить новый сайт в apache:

$ sudo a2ensite (your project name) 

Убедитесь, что есть VirtualHost директива для IP-адреса интерфейса, к которому вы делаете запрос. Эта ошибка возникает, как описано выше, когда apache не может найти конфигурацию сервера для ответа на ваш запрос, но прослушивает ее в ports.conf.

У меня была точно такая же ошибка после обновления системы. Я модифицировал UserDir /etc/apache2/mods-enabled/userdir.conf. Оригинал:

Userdir public_html

новый:

Userdir /home/*/public_html

теперь отлично работает :)