scripts/create_host.sh

96 lines
3.4 KiB
Bash
Raw Normal View History

2024-08-29 12:07:22 +03:00
#!/bin/bash
#Проверка запуска скрипта из под root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
CUR_USER="$(printenv SUDO_USER)"
if [[ -z "$USER" ]]; then
CUR_USER="www-data"
fi
echo "Script run under user: $CUR_USER"
read -n 1 -s -r -p "Press any key to continue... " key
# Проверяем, установлены ли необходимые пакеты
if ! command -v nginx > /dev/null; then
echo "Установка nginx..."
sudo apt-get install nginx -y
fi
if ! command -v php > /dev/null; then
echo "Установка php-fpm..."
sudo apt-get install php php-bcmath php-bz2 php-common php-curl php-fpm php-gd php-imagick php-intl php-mbstring php-mcrypt php-mysql php-opcache php-xml php-xmlrpc php-xsl php-yaml php-zip -y
fi
if ! command -v mysql > /dev/null; then
echo "Установка mysql..."
2024-09-08 15:17:46 +03:00
sudo apt-get install mariadb-server -y
2024-08-29 12:07:22 +03:00
fi
PHP_VER="$(php -v | head -n 1 | cut -d " " -f 2 | cut -f1-2 -d".")"
echo "Installed PHP version: $PHP_VER"
# Запрашиваем у пользователя необходимые данные
read -p "Введите имя домена: " domain
read -p "Введите имя базы данных: " db_name
read -p "Введите имя пользователя базы данных: " db_user
read -p "Введите пароль пользователя базы данных: " db_pass
echo "Создаем директорию для сайта и даем на нее права пользователю"
mkdir -p /var/www/$domain
chmod -R 775 /var/www/$domain
chown -R $CUR_USER:www-data /var/www/$domain
echo "Генерируем конфигурационный файл php-fpm"
echo "[$domain]
user = $CUR_USER
group = $CUR_USER
listen = /run/php/php$PHP_VER-fpm_$domain.sock
listen.owner = www-data
listen.group = www-data
listen.mode=0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
" > /etc/php/$PHP_VER/fpm/pool.d/$domain.conf
echo "Генерируем конфигурационный файл виртуального хоста nginx"
echo "server {
listen 80;
server_name $domain;
root /var/www/$domain;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php$PHP_VER-fpm_$domain.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}" > /etc/nginx/sites-available/$domain
echo "Создаем базу данных, пользователя и даем на нее права"
echo "CREATE DATABASE $db_name;" | mysql -u root
echo "CREATE USER '$db_user'@'localhost' IDENTIFIED BY '$db_pass';" | mysql -u root
echo "GRANT ALL ON $db_name.* TO '$db_user'@'localhost';" | mysql -u root
echo "FLUSH PRIVILEGES;" | mysql -u root
echo "Включаем конфигурацию виртуального хоста nginx"
ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/
echo "Добавляем запись в /etc/hosts"
echo "127.0.0.1 $domain" >> /etc/hosts
echo "Перезапускаем сервисы"
service nginx restart
service php$PHP_VER-fpm restart
# Выводим сообщение об успешном завершении
echo "Установка и настройка завершены!"