
Я получил работающий LAMP-сервер в Ubuntu 11.04. Теперь проблема в том, что веб-сайты должны быть включены и выключены из терминала. Все они должны быть доступны из, http://localhost
что не так уж эффективно. Поэтому я создал VHOSTS, используя некоторые руководства из сети. Вот код для него
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername site.com
ServerAlias www.site.com
DocumentRoot /home/starx/public_html/site/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/starx/public_html/site/public>
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>
nGen
ErrorLog ${APACHE_LOG_DIR}/site-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/site-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>
Теперь я все еще не могу получить доступ к странице, http://site.com
но если я захожу через http://localhsot/
нее, то она открывается.
Я отключил все остальные сайты, включая сайт по умолчанию, и включил только один сайт, т.е.site
Как это исправить?
решение1
Я просто пытался заставить это работать, и, немного осмотревшись, я понял, что у меня пошло не так.
Я использую xampp (lampp) 1.80 для Ubuntu 12.04.
открыть/opt/lampp/etc/httpd.conf
См. строку 488
# Virtual hosts
# Include etc/extra/httpd-vhosts.conf
удалите "#" из include
.
Новая установка не загружает " httpd-vhosts.conf
из коробки".
решение2
Согласно /usr/share/doc/apache2/README.Debian.gz
, если вы хотите создать определения для дополнительных сайтов, вам нужно будет разместить отдельные фрагменты конфигурации сайта в /etc/apache2/sites-available/
(см. /etc/apache2/sites-available/default
пример). Затем вы можете включать и отключать сайты на данном хосте с помощью команд a2ensite(8) и a2dissite(8). Обратите внимание, что это может работать не совсем так, как описано, если распределенные конфигурации были существенно изменены.
Если сайт включен таким образом и продолжает не работать, вам нужно убедиться, что веб-сервер может разрешить имя нового сайта способом, который соответствует IP-адресу, который, по мнению веб-сервера, ему назначен: самый простой способ, вероятно, проверить с сервера. Вам также нужно убедиться, что клиент разрешает имя таким образом, что оно достигает нужного сервера (хотя разрешенный IP-адрес не обязательно должен совпадать с тем, который использует сервер). Для небезопасных сайтов проще всего это сделать с помощью и, после завершения соединения (без запроса), ввода следующих трех строк (обратите внимание, что третья строка пустая, но вы должны нажать Enter в третий раз):w3m https://my.new.secure.site
telnet my.new.site 80
ПОЛУЧИТЬ/HTTP/1.1 Хост: my.new.site
Если это работает, все остальное — проблема браузера. Если первое сработало, а второе нет, вероятно, что-то странное на сетевом уровне (NAT, прокси и т. д.): как именно устранить неполадки, слишком сильно зависит от топологии сети и имеющихся устройств: пожалуйста, задайте другой вопрос с подробностями, если это относится к вам.
Если первый тест не пройден, дважды проверьте доступную на сервере службу имен и назначенные серверу IP-адреса (ifconfig -a). Также проверьте журналы доступа к сайту, чтобы убедиться, что вы видите соединение примерно в нужное время. Наконец, убедитесь, что ваш виртуальный хост прослушивает по имени, а не по IP, и не фильтрует результаты для / на основе IP в вашей директиве VirtualHost.
решение3
Я не уверен, что это то, что вам нужно.
Замените ваши коды этими простыми короткими кодами.
<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot YourDocumentRoot
ServerName site.com
ServerAlias www.site.com
ErrorLog localhost
CustomLog localhost-access_log common
</VirtualHost>
Вы можете прочитать больше о vhostздесь
решение4
Вы добавили site.com и www.site.com в файл /etc/hosts, чтобы убедиться в правильности маршрутизации DNS? Вы можете попробовать nslookup site.com
протестировать DNS.
Если вы хотите убедиться, что это http://localhost
не сработает, удалите файлы /etc/apache2/default, default-ssl и используйте один виртуальный хост.