Настройка виртуальных хостов Ubuntu 14.04

Мне не удобно хранить файлы сайтов в var/www так как там постоянная проблема с правами на файлы поэтому я сделал свою папку с сайтами и положил ее в /home/user и назвал webhost. Но что бы сайты запускались именно от туда нужно отредактировать файл:

sudo gedit /etc/apache2/apache2.conf

И добавляем в конец. (не забудьте изменить строку /home/user/webhost/ и написать имя своего пользователя и название свой папки с сайтами)

<Directory /home/user/webhost/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

 

Теперь для каждого сайта нужно будет добавлять записи в hosts и 000-default.conf. Открываем:

sudo gedit /etc/hosts

Заменяем 127.0.0.1 localhost на 127.0.0.1 localhost.localdomain localhost и добавляем на следующей строке 127.0.0.2 test. Получится:

127.0.0.1 localhost.localdomain  localhost
127.0.0.2 test
 
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Открываем:

sudo gedit /etc/apache2/sites-available/000-default.conf

И пишем в самый низ

<VirtualHost 127.0.0.2:80>
  DocumentRoot /home/user/webhost/test/www
</VirtualHost>

 

Не забываем изменить пути на свои и создать нужные папки с сайтом.

Теперь перезапускаем apache:

sudo service apache2 restart

Настройка виртуальных хостов для ubuntu 10.04 10.10 12.04

Для создания виртуального хоста в apache под ubuntu необходимы 2 файла:

1) Останавливаем apache2

sudo /etc/init.d/apache2 stop 

Открываем /etc/hosts. Этот файл при первом запуске у меня имел вид такой:

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Далее я добаил сследующую строку

127.0.0.2  test

И заменил запись

127.0.0.1  localhost

На

127.0.0.1  localhost.localdomain  localhost

Таким образом получился файл /etc/hosts со следующим содержанием:

127.0.0.1  localhost.localdomain  localhost
127.0.0.2 test

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

2) Для дальнейшей настрйки виртуальных хостов apache2 необходим файл /etc/apache2/httpd.conf. Открываем.

sudo gedit /etc/apache2/httpd.conf

Добавляем следующую запись ( я написал в самый конец файла)

NameVirtualHost 127.0.0.2  

ServerName test 
DocumentRoot "/home/user/project/test/www"

3) Запускаем apache2

sudo /etc/init.d/apache2 start

Когда разворачивал на ubuntu 14.04 то с файлом httpd.conf не вышло сделал в /etc/apache2/sites-available/000-default.conf. В него нужно добавить (внизу):

<VirtualHost 127.0.0.2:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /home/user/project/test/www
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

И в браузере пишем test — открываеться хост test.

Возможные трудности

При запуске хоста выдает ошибку:

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Fatal error: Unknown: Failed opening required '/home/user/host/test/www/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

Решение http://forum.ubuntu.ru/index.php?topic=45252.0 А именно изменил права на папку где лежат все мои сайты

sudo chmod -R 777 /home/user/host

Еще одна фишка при старте или рестарте apache2 выдает в консоле следующее

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Вылечил так: в файле /etc/hosts есть такие записи

127.0.0.1 localhost
127.0.1.1 имя компьютера

Их нужно изменить

127.0.0.1 localhost.localdomain localhost
127.0.1.1 localhost.localdomain имя компьютера

После чего все Нормально запускается