Настройка виртуальных хостов 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 файла:
- /etc/hosts
- /etc/apache2/httpd.conf
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 имя компьютера
После чего все Нормально запускается