96 lines
3.4 KiB
Bash
Executable File
96 lines
3.4 KiB
Bash
Executable File
#!/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..."
|
||
sudo apt-get install mariadb-server -y
|
||
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 "Установка и настройка завершены!"
|