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

Итак, приступим.

Для настройки виртуальных хостов необходимо проделать несколько операций. Настраивала я все это счастье под Ubuntu 12.10. Так как сайт на php, пришлось поставить соответствующие инструменты. Откройте терминал.

Для начала устанавливаем Apache. В окне терминала введите строку:

sudo apt-get install apache2

Теперь установим PHP:

sudo apt-get install php5 php5-mysql libapache2-mod-php5

Перезагрузите Apache-сервер, чтобы загрузить php-модули:

sudo service apache2 restart

Для проверки статуса сервиса, его старта, остановки, рестарта или перезагрузки конфигурационных файлов используются следующие команды:

service apache2 status
sudo service apache2 start
sudo service apache2 stop
sudo service apache2 restart
sudo service apache2 reload

Файл конфигурации Apache хранится по адресу /ect/apache2/apache2.conf. Проверьте его обязательно. У меня была закомментирована строчка Include sites-enabled/, в следствии чего не получалось запустить созданный хост из нужного каталога.

В браузере наберите адрес http://localhost. Если все хорошо, то должна появится надпись "It works!". Эта надпись выводится из файла /var/www/index.html. Можете отредактировать его и убедиться, что все правильно.

Теперь можно приступить к настройке хоста. Я захотела для начала установить у себя фреймворк Symfony2. Создала в домашнем каталоге папку website, а в ней symfony. Путь к такой папке:

/home/User/website/symfony

Он нам понадобится для конфигурационных файлов. User - это ваше имя в системе (пользователь/логин). Затем закачала туда файлы. И теперь мне нужно, чтобы по ссылке symfony.me открывалось окно с приветствием данного фреймворка.

Зайдем в папку /etc/apache2:

cd /etc/apache2
ls

Командой ls посмотрите, что находится в данной директории. Нас интересуют два каталога — sites-available и sites-enabled. В папке sites-available хранится информация о существующих хостах, а в папке sites-enabled о подключенных, причем файлы в ней являются символическими ссылками на файлы из папки sites-available

Шаг 1

Создадим в каталоге sites-available файл symfony.me (к слову, назвать его можно как угодно, но так просто легче не запутаться) и откроем его для редактирования.

sudo gedit /etc/apache2/sites-available/symfony.me

Откроется пустой файл. Можете скопировать в него полностью содержимое файла /etc/apache2/sites-available/default (отрыть для чтения его можно просто двойным кликом, зайдя в эту папку):

	<VirtualHost *:80>
		ServerAdmin webmaster@symfony.me
					ServerName symfony.me
		DocumentRoot /home/user/website/symfony
		<Directory>
			Options FollowSymLinks
			AllowOverride None
		</Directory>
		<Directory /home/user/website/symfony>
			Options Indexes FollowSymLinks MultiViews
			AllowOverride All
			Order allow,deny
			allow from all
		</Directory>
		ErrorLog /var/log/apache2/error.log
		LogLevel debug
		CustomLog /var/log/apache2/access.log combined
	</VirtualHost>

Внесем некоторые изменения: отредактируйте ServerName:

ServerName symfony.me

Заменим адрес директории DocumentRoot на свою:

DocumentRoot /home/user/website/symfony

Изменим строчку Directory /var/www/:

Directory /home/user/website/symfony

И изменим значение AllowOverride None на:

AllowOverride All

Шаг 2

Теперь отредактируем файл hosts:

sudo gedit /etc/hosts
terminal

У меня он выглядит так:

127.0.0.1 localhost.localdomain localhost HOME-SP
127.0.0.1 symfony.me 

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

Вам нужно добавить строчку:

127.0.0.1 symfony.me

Шаг 3

Теперь включим наш сайт

sudo a2ensite symfony.me

Чтобы выключить сайт

sudo a2dissite symfony.me

Шаг 4

Перезагружаем Apache

sudo service apache2 restart

Идем в браузер и в набираем адрес хоста, в моем случае это symfony.me/web/app_dev.php. У меня конечно не с первого раза вышло. Это уже вопрос фреймворка. В php.ini пришлось отредактировать строчку date.timezone:

sudo gedit /etc/php5/apache2/php.ini

Раскомментировать и прописать Europe/Moscow.

date.timezone = Europe/Moscow