Я только что установил человечность (11.04).
Я установил apache/mysql/php и т.д.
У меня есть несколько сайтов, находящихся в
/var/www/site1
/var/www/site2
/var/www/site3
Я хочу смочь получить доступ к ним в
http://site1.local
http://site2.local
http://site3.local
Таким образом в моем файле hosts я имею
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
Затем я скопировал /etc/apache2/sites-available/default
3 раза.
таким образом, теперь я имею:
/etc/apache2/sites-available/site1
/etc/apache2/sites-available/site2
/etc/apache2/sites-available/site3
Они все похожи (с соответствующими именами sitex)
<VirtualHost site1.local>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/site1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/site1/>
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>
В терминале я затем звоню
sudo a2ensite site1 site2 site3 && sudo /etc/init.d/apache2 reload
Который, кажется, работает, кроме только одной из работ vhosts одновременно (включая значение по умолчанию), Что я делаю неправильно?
- Перезагрузка веб-сервера конфигурирует apache2
apache2: не Мог надежно определить полностью определенное доменное имя сервера,
использование 127.0.1.1 для ServerName
[Пятница 15 апреля 10:45:27, 2011] [предупреждает] NameVirtualHost *:80, не имеет никакого VirtualHosts
Файл: / etc / hosts
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
Файл: /etc/apache2/apache2.conf
[...]
NameVirtualHost *:80
[...]
Файлы : / etc / apache2 / sites-available / site {i} .local.conf (вместо {i} введите номер: 1, 2 или 3)
<VirtualHost *:80>
ServerName site{i}.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/site{i}
[...]
</VirtualHost>
В каталоге / etc / apache2 / sites-enabled / создайте символические ссылки:
@site{i}.local.conf
Перезапустите apache и получайте удовольствие:)
Существует сценарий, который делает это простым для Вас - https://github.com/RoverWire/virtualhost
Это в конечном счете делает то же, утончается, как объяснено данными ответами, но выполняет в нем всего одна команда, например, -
sudo virtualhost create mysite.local my_site
Это также позволяет Вам удалять хост, который Вы создали
sudo virtualhost delete mysite.local my_site
Просто обратите внимание, что "my_dir" предполагает, что запускается после/var/www
Таким образом, если Ваша папка сайта находится в/var/www/my_site
Необходимо работать, это (передайте путь к каталогу без/var/www) -
sudo virtualhost create mysite.local my_site
Можно также изменить файл сценария и удалить путь по умолчанию "/var/www" так, чтобы можно было передать полный путь каталогу сайта