diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..827c68c --- /dev/null +++ b/install.sh @@ -0,0 +1,80 @@ +#!/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 + + 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 + + systemctl enable --now nginx mariadb php7.4-fpm 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 "Установка завершена" diff --git a/ubuntu_install.sh b/ubuntu_install.sh deleted file mode 100644 index 569e7a2..0000000 --- a/ubuntu_install.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -set -e - -if [[ $EUID -ne 0 ]]; then - echo "Загрузка через sudo" - exit 1 -fi - -echo "Установка..." - -apt update && apt upgrade -y - -apt install -y software-properties-common - -add-apt-repository ppa:ondrej/php -y -apt update - -apt install -y nginx -systemctl start nginx -systemctl enable nginx - -apt install -y mariadb-server mariadb-client -systemctl start mariadb -systemctl enable mariadb - -apt install -y php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring \ - php8.3-xml php8.3-zip php8.3-opcache php8.3-intl php8.3-bcmath - -systemctl start php8.3-fpm -systemctl enable php8.3-fpm - -cat > /etc/nginx/sites-available/default << 'EOF' -server { - listen 80 default_server; - root /var/www/html; - index index.php index.html; - server_name _; - - location / { - try_files $uri $uri/ =404; - } - - location ~ \.php$ { - include snippets/fastcgi-php.conf; - fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; - } - - location ~ /\.ht { - deny all; - } -} -EOF - -nginx -t - -sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/8.3/fpm/php.ini -sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 64M/' /etc/php/8.3/fpm/php.ini -sed -i 's/post_max_size = 8M/post_max_size = 64M/' /etc/php/8.3/fpm/php.ini - -chown -R www-data:www-data /var/www/html -chmod -R 755 /var/www/html - -systemctl reload nginx -systemctl restart php8.3-fpm - -if command -v ufw &> /dev/null; then - ufw allow 'Nginx Full' -fi - -echo "Установка завершена" \ No newline at end of file