Скрипт управления виртуальными хостами на 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, при включении – префикс удаляется:

Оцените статью
Настройка серверов windows и linux
Добавить комментарий