Установка Apache, PHP, MySQL на Ubuntu 11.10 и автоматическое добавление локальных хостов

Как бы вам не показалась часто встречающейся тема установки и настройки Apache, PHP, MySQL, но все равно хочется к ней вернутся чтоб добавить автоматическое создания локальных хостов. И так приступим.
Установка apache:
sudo apt-get install apache2 apache2-mpm-prefork apache2-utils apache2-suexec

Проверить работу нашего сервера очень просто, перейдем по адресу в браузере localhost и увидем заветную надпись — It works! Но не спешите радоваться это только начало.
Продолжаем, установим php:
sudo apt-get install php5 php5-mysql libapache2-mod-php5 php-pear

Установка MySQL сервера:
sudo apt-get install mysql-server mysql-client libmysqlclient15-dev

При установке необходимо ввести пароль для root пользователя MySQL.
Установка phpmyadmin:
sudo apt-get install phpmyadmin

Необходимо выбрать сервер, конечно же Apache, затем пароль пользователя базы данных MySQL и пароль для самого phpmyadmin.
Что бы все изменения вступили в силу, перезапустим сервер:
sudo service apache2 restart

Проверить работу можно по ссылке localhost/phpmyadmin
Теперь возьмёмся за конфигурацию локального хоста для наших сайтов. В подобных статьях описано долгое и нудные настройки для каждого сайта: копирование, редактирование, включение, перезапуск, но мы попытаемся автоматизировать весь этот процесс. Автоматическое создание виртуальных хостов, для этого мы используем модуль mod-macro. Этот модуль позволяет определить и использовать для конфигурации макросы в Apache.
Устанавливаем mod-macro:
sudo apt-get install libapache2-mod-macro

И включаем:
sudo a2enmod macro

Создаем файл для макроса (шаблона) виртуального хоста:
sudo mkdir /etc/apache2/conf.d/custom
sudo vim /etc/apache2/conf.d/custom/vhosts

Вставляем туда следующий код:
<Macro VHost $host $path> 
    <VirtualHost *:80> 
        DocumentRoot "$path" 
        ServerAdmin vanya@localhost 
        ServerName $host 
        ServerAlias www.$host 

        DirectoryIndex index.php index.html index.htm index.shtml 

        <Directory "$path"> 
		Options FollowSymLinks 
        	Options all 
                AllowOverride All 
        </Directory> 
    </VirtualHost> 
</Macro>

Напишем скрипт для запуска макроса и добавление хоста, создадим файл:
sudo vim /bin/addvhosts
в него добавим:

#!/bin/bash 

if [ x$1 = x"" ]; then 
  echo "please enter: host-name [macros-name]"; 
  exit 0; 
fi 

host="$1.loc" 
dir="$1" 
macros="$2" 

if [ x$macros = x"" ]; then 
  macros="VHost" 
fi 

mkdir -p /home/www-data/www/$dir 
chown -R www-data /home/www-data/www/$dir 
chmod -R 0777 /home/www-data/www/$dir 

echo "Use $macros $host /home/www-data/www/$dir" >> /etc/apache2/conf.d/custom/vhosts 
echo "127.0.0.1 $host www.$host" >> /etc/hosts 

cd /home/www-data/www/$dir 

apache2ctl configtest && apache2ctl graceful

делаем файл исполняемым:
sudo chmod +x /bin/addvhosts

И создания хоста:
sudo addvhosts test

Сделаем тест для нашего сайта, напишем:
<?php
	phpinfo();
?>

в созданном файле:
vim /home/www-data/www/test/index.php


Осталось запустить наш браузере — test.loc, если вы на экране увидели информацию об установленном php. Ура все работает! Приятной работы!
Метки:
ubuntu 11.10, mysql, php, apache, mod_macro