83 lines
2.6 KiB
Bash
83 lines
2.6 KiB
Bash
#!/bin/bash
|
||
set -e
|
||
|
||
if [[ $EUID -ne 0 ]]; then
|
||
echo "Запустите скрипт с sudo"
|
||
exit 1
|
||
fi
|
||
|
||
echo "Определение дистрибутива..."
|
||
if [ -f /etc/os-release ]; then
|
||
. /etc/os-release
|
||
DISTRO="$ID"
|
||
FAMILY="$ID_LIKE"
|
||
else
|
||
echo "Не удалось определить дистрибутив"
|
||
exit 1
|
||
fi
|
||
|
||
echo "Дистрибутив: $DISTRO"
|
||
echo "Семейство: $FAMILY"
|
||
echo "Установка..."
|
||
|
||
if echo "$DISTRO $FAMILY" | grep -qi "rhel\|fedora\|centos"; then
|
||
dnf update -y
|
||
dnf install -y nginx mariadb-server mariadb php php-fpm php-mysqlnd \
|
||
php-curl php-gd php-mbstring php-xml php-zip php-opcache \
|
||
php-intl php-bcmath php-json \
|
||
redis-server libreoffice apache2
|
||
|
||
systemctl enable --now nginx mariadb php-fpm
|
||
|
||
elif echo "$DISTRO $FAMILY" | grep -qi "debian"; then
|
||
apt update -y
|
||
apt install -y nginx mariadb-server php-fpm php-mysql \
|
||
php-curl php-gd php-mbstring php-xml php-zip php-opcache \
|
||
php-intl php-bcmath php-json \
|
||
redis-server libreoffice apache2
|
||
|
||
systemctl enable --now nginx mariadb php7.4-fpm redis 2>/dev/null || true
|
||
else
|
||
echo "Скрипт не поддерживает этот дистрибутив"
|
||
exit 1
|
||
fi
|
||
|
||
cat > /etc/nginx/conf.d/default.conf << 'EOF'
|
||
server {
|
||
listen 80 default_server;
|
||
listen [::]:80 default_server;
|
||
root /var/www/html;
|
||
index index.php index.html;
|
||
server_name _;
|
||
|
||
location / {
|
||
try_files $uri $uri/ =404;
|
||
}
|
||
|
||
location ~ \.php$ {
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_index index.php;
|
||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||
include fastcgi_params;
|
||
}
|
||
|
||
location ~ /\.ht {
|
||
deny all;
|
||
}
|
||
}
|
||
EOF
|
||
|
||
mkdir -p /var/www/html
|
||
chown -R nginx:nginx /var/www/html 2>/dev/null || chown -R www-data:www-data /var/www/html
|
||
chmod -R 755 /var/www/html
|
||
|
||
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/*/php.ini 2>/dev/null || sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php.ini
|
||
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 64M/' /etc/php/*/php.ini 2>/dev/null || sed -i 's/upload_max_filesize = .*/upload_max_filesize = 64M/' /etc/php.ini
|
||
sed -i 's/post_max_size = .*/post_max_size = 64M/' /etc/php/*/php.ini 2>/dev/null || sed -i 's/post_max_size = .*/post_max_size = 64M/' /etc/php.ini
|
||
|
||
nginx -t
|
||
systemctl restart nginx
|
||
systemctl restart php-fpm 2>/dev/null || systemctl restart php*-fpm
|
||
|
||
echo "Установка завершена"
|