Скрипт управления виртуальными хостами на CentOS

Скрипт управления виртуальными хостами на CentOS

скрипт управления виртуальными хостами на CentOS

скрипт управления виртуальными хостами на CentOS

Всем привет сегодня расскажу Скрипт управления виртуальными хостами на CentOS. В очередной раз создавая виртуальный хост на выделенном сервере – задумался об упрощении задачи, т.к. в 90% случаев использую схожую структуру хранения сайтов. Взял за основу сторонний скрипт, доработал под свои задачи и решил поделиться.

 

Описание

Скрипт умеет добавлять, удалять, включать, выключать виртуальные хосты на CentOS и подобных ОС. Ubuntu, Debian имеют несколько иную структуру, поэтому скрипт на них работать не будет.

Скрипт делает проверки на существование хостов при добавлении, интерактивно предлагает заменить файл конфигурации, не удаляет файлы в директории, если они уже присутствовали. На каждое спорное действие (удаление файлов, директорий) – задает вопрос на дальнейшее действие.

Настройка скрипта

Скрипт имеет ряд настроек, часть из которых берется из командной строки для удобства:

Действие, имя домена, домашняя директория задаются через параметры.

Параметр Описание
owner После создания директорий сайта – им задается владелец и группа. описанный в данном параметре
email Прописывается в настройки хоста в параметр ServerAdmin
confDir Директория, куда будут записаны конфигурационные файлы виртуальных хостов веб сервера
userDir Директория, где будут храниться все виртуальные хосты
rootdir Директория, в которой будут храниться виртуальных хостов
dirPerm Права вновь созданные директории виртуальных хостов
confDomain Имя конфигурационного файла

Использование

Добавление хоста

Самое простое использование:

Вывод:

[root@admin tmp]# ./vhostsAdmin.sh add test.com
New Virtual Host Created
Host added to /etc/hosts file
Reloading httpd:
Complete!
You now have a new Virtual Host
Your new host is: http://test.com
And its located at /var/www/test.com

Скрипт создает файл конфигурации виртуального хоста $confDomain (/etc/httpd/conf.d/test.com.conf) следующего содержания:

Вывод конфигурационного файла можно поменять в исходниках.

Скрипт создает директории, если это необходимо: $userDir/$rootDir/{tmp,public_html,logs} (/var/www/test.com/{tmp,public_html,logs}), выдает им права $dirPerm (chmod 775) и делает проверку на возможность записи в директорию $userDir/$rootDir.

В случае, если DocumentRoot отличается от $userDir/$rootDir/public_html, путь к нему можно передать вторым параметром относительно $rootDir:

Это полезно, когда у нас используются фреймворки (Yii2, Lavarel), в которых DocumentRoot находится в поддиректориях web, public и других.

Удаление

Удаление производится командой. Удаляется файл конфигурации, производится перезапуск веб сервера, делается запрос на удаление файлов виртуального хоста и в случае положительного ответа – удаляет всю директорию.

Вывод:

Включение / выключение

Данная процедура предусматривает переименовывание конфигурационного файла виртуального хоста, при выключении добавляется префикс .off, при включении – префикс удаляется:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

я в гугл