Pull to refresh

Установка 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. Ура все работает! Приятной работы!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.