Хорошо, я только что запустил новый сервер 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
теперь отлично работает :)