Автоматизация установки virtual hosts?

Добрый вечер! Для разработки на локальной копии, я использую xampp.
И не то, что бы мне сильно надоело вручную устанавливать новые сайты, но хотелось бы найти скрипт автоматизации, которая могла бы поставить сайт:
  • Директория сайта
  • Прописать его в httpd-vhosts.conf
  • Прописать его в hosts


Все это с настройками или без + возможность удалить.

Конечно, прописывать все это не долго и не сложно, но, согласитесь, если это можно автоматизировать, то почему бы и нет? Может быть тут есть другой подход, о котором я и не подозреваю?
  • Вопрос задан
  • 512 просмотров
Пригласить эксперта
Ответы на вопрос 2
Chvalov
@Chvalov
xampp не пользовался, всегда ставлю отдельно apach, php, mysql, phpmyadmin

После чего создаю в /var/www/ папку test.com/public_html/ и кладу свои скрипты *.php

Далее создаю файл
sudo nano /etc/apache2/sites-available/test.com.conf
<VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

После чего
sudo a2ensite test.com.conf
ну и перезапустить апач sudo service apache2 restart

Мне кажется это довольно просто
Ответ написан
valerium
@valerium
Изобретая велосипед
А Вы не пробовали написать скрипт? Ведь раз Вы используете XAMPP для разработки, то кодить Вы умеете :-) Можно как на PHP его накатать, так и (имхо, красивее) на bash.

В простейшем случае это будет выглядеть примерно вот так. Запускается с одни параметром (имя домена), подразумевает, что в /etc/apache2/skeleton уже лежит скелет конфига виртуального хоста.

#!/bin/bash

# создаём папку под данные
mkdir -p /var/www/$1
# копируем скелет конфига
cp /etc/apache2/sites-available/skeleton /etc/apache2/sites-available/$1
# заменяем в конфиге доменное имя
sed -i "s/test.com/$1/g" /etc/apache2/sites-available/$1
# включаем конфиг
a2ensite test.com
# прописываем домен в hosts
echo "\n127.0.0.1\t$1\n" >> /etc/hosts
# перезапускаем Apache
service apache2 restart


И, кстати, поддержу коллегу Chvalov. Если Вы используете Linux, зачем Вам XMPP? В большинстве современных дистрибутивов LAMP ставиться в одну команду за 15 минут, да ещё и автоматически обновляется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы