From 652d729fbfda468a5b89ff9ac4dfaf73b3a3cfa3 Mon Sep 17 00:00:00 2001 From: Sergei Solovev <31823239+SeAnSolovev@users.noreply.github.com> Date: Sat, 7 Sep 2024 19:29:26 +0300 Subject: [PATCH] Minor edits (#43) Added installation of the jq package for working with json Changed the ProFTPD setting to work with the GitHub API Changed the default php version from 7.4 to 8.2 And other cosmetic edits --- install.sh | 61 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/install.sh b/install.sh index 453dbb3..5fc87dd 100644 --- a/install.sh +++ b/install.sh @@ -31,7 +31,7 @@ saveDir="/root/enginegp.cfg" sysUpdate # Установка начальных пакетов. -pkgsReq=("sudo" "curl" "lsb-release" "wget" "gnupg" "pwgen" "zip" "unzip" "bc" "tar" "software-properties-common" "git") +pkgsReq=("sudo" "curl" "lsb-release" "wget" "gnupg" "pwgen" "zip" "unzip" "bc" "tar" "software-properties-common" "git" "jq") # Цикл установки пакетов for package in "${pkgsReq[@]}"; do @@ -60,9 +60,6 @@ for os in "${suppOs[@]}"; do fi done -# Файловый репозиторий -resUrl="https://resources.enginegp.com" - # Проверка аргументов командной строки if [ $# -gt 0 ]; then # Переменные для хранения @@ -96,8 +93,8 @@ if [ $# -gt 0 ]; then *) # Неизвестный аргумент, вывести справку и выйти clear - echo "Использование: ./install.sh --php 7.4 --ip 192.168.1.1 --branch main" - echo " --php версия: установить указанную версию PHP. Формат должен быть: 7.4" + echo "Использование: ./install.sh --php 8.2 --ip 192.168.1.1 --branch main" + echo " --php версия: установить указанную версию PHP. Формат должен быть: 8.2" echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1" echo " --branch ветка: использовать указаную ветку GIT. Формат должен быть: main" exit 1 @@ -107,7 +104,7 @@ if [ $# -gt 0 ]; then # Если версия PHP не выбрана, использовать PHP 7.4 по умолчанию if [ -z "$verPhp" ]; then - verPhp="7.4" + verPhp="8.2" fi # Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io @@ -121,7 +118,7 @@ if [ $# -gt 0 ]; then fi else # Если нет аргументов, задаём по умолчанию - verPhp="7.4" + verPhp="8.2" sysIp=$(curl -s ipinfo.io/ip) gitEgp="main" fi @@ -228,7 +225,7 @@ while true; do # Генерирование паролей и имён passPma=$(pwgen -cns -1 16) - usrEgpSql="enginegp_$(pwgen -cns -1 8)" + userEgpSql="enginegp_$(pwgen -cns -1 8)" dbEgpSql="enginegp_$(pwgen -1 8)" passEgpSql=$(pwgen -cns -1 16) usrEgpPass=$(pwgen -cns -1 16) @@ -420,24 +417,24 @@ EOF sudo mv /var/www/enginegp/.env.example /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null sed -i "s/example.com/$sysIp/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null sed -i "s/enginegp_db/$dbEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null - sed -i "s/enginegp_usr/$usrEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null + sed -i "s/enginegp_usr/$userEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null sed -i "s/enginegp_pwd/$passEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null sed -i "s/ENGINEGPHASH/$(echo "$usrEgpHASH" | sed 's/[\/&]/\\&/g')/g" /var/www/enginegp/enginegp.sql 2>&1 | sudo tee -a "$logsInst" > /dev/null # Создание пользователя - sudo mysql -e "CREATE USER '$usrEgpSql'@'localhost' IDENTIFIED BY '$passEgpSql';" 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo mysql -e "CREATE USER '$userEgpSql'@'localhost' IDENTIFIED BY '$passEgpSql';" 2>&1 | sudo tee -a "$logsInst" > /dev/null # Создание базы данных sudo mysql -e "CREATE DATABASE $dbEgpSql CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null # Предоставление привилегий пользователю на базу данных - sudo mysql -e "GRANT ALL PRIVILEGES ON $dbEgpSql.* TO '$usrEgpSql'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo mysql -e "GRANT ALL PRIVILEGES ON $dbEgpSql.* TO '$userEgpSql'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null # Применение изменений привилегий sudo mysql -e "FLUSH PRIVILEGES;" 2>&1 | sudo tee -a "$logsInst" > /dev/null # Экспорт базы данных - sudo cat /var/www/enginegp/enginegp.sql | sudo mysql -u "$usrEgpSql" -p"$passEgpSql" "$dbEgpSql" 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo cat /var/www/enginegp/enginegp.sql | sudo mysql -u "$userEgpSql" -p"$passEgpSql" "$dbEgpSql" 2>&1 | sudo tee -a "$logsInst" > /dev/null rm /var/www/enginegp/enginegp.sql 2>&1 | sudo tee -a "$logsInst" > /dev/null else @@ -484,7 +481,7 @@ EOF echo "MySQL данные для EngineGP" | tee -a $saveDir echo "Ссылка на phpMyAdmin: http://$sysIp:9090/" | tee -a $saveDir echo "База данных: $dbEgpSql" | tee -a $saveDir - echo "Пользователь: $usrEgpSql" | tee -a $saveDir + echo "Пользователь: $userEgpSql" | tee -a $saveDir echo "Пароль: $passEgpSql" | tee -a $saveDir echo "===================================" | tee -a $saveDir echo "Системные данные MySQL" | tee -a $saveDir @@ -502,6 +499,8 @@ EOF 2) clear + dbProFTPD="ftp_$(pwgen -cns -1 8)" + userProFTPD="ftp_$(pwgen -cns -1 8)" passProFTPD=$(pwgen -cns -1 16) # Проверяем, содержится ли текущая версия в массиве поддерживаемых версий @@ -623,22 +622,26 @@ EOF sudo apt-get install -y proftpd-basic proftpd-mod-mysql 2>&1 | sudo tee -a "$logsInst" > /dev/null # Скачиваем конфигурационные файлы ProFTPD - curl -o /etc/proftpd/proftpd.conf $resUrl/Components/ProFTPD/proftpd 2>&1 | sudo tee -a "$logsInst" > /dev/null - curl -o /etc/proftpd/modules.conf $resUrl/Components/ProFTPD/proftpd_modules 2>&1 | sudo tee -a "$logsInst" > /dev/null - curl -o /etc/proftpd/sql.conf $resUrl/Components/ProFTPD/proftpd_sql 2>&1 | sudo tee -a "$logsInst" > /dev/null + curl -s https://api.github.com/repos/EngineGPDev/ProFTPD/releases?per_page=1\&prerelease=false | jq -r '.[0].zipball_url' | xargs -n 1 curl -L -o /tmp/proftpd.zip 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo unzip -o /tmp/proftpd.zip -d /tmp 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo mv /tmp/EngineGPDev-ProFTPD-*/proftpd.conf /etc/proftpd/proftpd.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo mv /tmp/EngineGPDev-ProFTPD-*/modules.conf /etc/proftpd/proftpd.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo mv /tmp/EngineGPDev-ProFTPD-*/sql.conf /etc/proftpd/proftpd.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null # Создаем базу данных для ProFTPD - sudo mysql -e "CREATE DATABASE ftp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo mysql -e "CREATE DATABASE $dbProFTPD CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null - # Создаем пользователя для ProFTPD и предоставляем ему все права на базу данных ftp - sudo mysql -e "CREATE USER 'ftp'@'localhost' IDENTIFIED BY '$passProFTPD';" 2>&1 | sudo tee -a "$logsInst" > /dev/null + # Создаем пользователя для ProFTPD и предоставляем ему все права на базу данных + sudo mysql -e "CREATE USER '$userProFTPD'@'localhost' IDENTIFIED BY '$passProFTPD';" 2>&1 | sudo tee -a "$logsInst" > /dev/null sudo mysql -e "GRANT ALL PRIVILEGES ON ftp . * TO 'ftp'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null # Импортируем дамп базы данных для ProFTPD - curl -sSL $resUrl/Components/ProFTPD/sqldump.sql | sudo mysql ftp 2>&1 | sudo tee -a "$logsInst" > /dev/null + sudo cat /tmp/EngineGPDev-ProFTPD-*/proftpd.sql | sudo mysql -u "$userProFTPD" -p"$passProFTPD" "$dbProFTPD" 2>&1 | sudo tee -a "$logsInst" > /dev/null - # Заменяем passwdfor на реальный пароль в конфигурационном файле - sed -i 's/passwdfor/'"$passProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null + # Вносим даннык в конфигурационный файл + sed -i 's/__FTP_DATABASE__/'"$dbProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null + sed -i 's/__FTP_USER__/'"$userProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null + sed -i 's/__FTP_PASSWORD__/'"$passProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null # Устанавливаем права доступа на конфигурационные файлы chmod -R 750 /etc/proftpd 2>&1 | sudo tee -a "$logsInst" > /dev/null @@ -718,10 +721,10 @@ EOF fi echo "===================================" | tee -a $saveDir echo "Данные локации" | tee -a $saveDir - echo "SQL_Username: ftp" | tee -a $saveDir - echo "SQL_Password: $passProFTPD" | tee -a $saveDir - echo "SQL_FileTP: ftp" | tee -a $saveDir - echo "SQL_Port: 3306" | tee -a $saveDir + echo "Пользователь ProFTPD: $userProFTPD" | tee -a $saveDir + echo "Пароль ProFTPD: $passProFTPD" | tee -a $saveDir + echo "База данных ProFTPD: $dbProFTPD" | tee -a $saveDir + echo "Порт базы данных: 3306" | tee -a $saveDir echo "===================================" | tee -a $saveDir read -rp "Нажмите Enter для завершения..." continue @@ -792,7 +795,7 @@ EOF 1) mkdir -p /path/cssold/steam 2>&1 | tee -a "${logsInst}" curl -SL -o /path/cssold/steam/steam.zip $gamesURL/cssold/steam.zip 2>&1 | tee -a "${logsInst}" - sudo unzip /path/cssold/steam/steam.zip -d /path/cssold/steam/ 2>&1 | tee -a "${logsInst}" + sudo unzip -o /path/cssold/steam/steam.zip -d /path/cssold/steam/ 2>&1 | tee -a "${logsInst}" sudo rm /path/cssold/steam/steam.zip | tee -a "$logsInst" 2>&1 | tee -a "${logsInst}" css34_choice ;; @@ -820,7 +823,7 @@ EOF 1) mkdir -p /path/css/steam 2>&1 | tee -a "${logsInst}" curl -SL -o /path/css/steam/steam.zip $gamesURL/css/steam.zip 2>&1 | tee -a "${logsInst}" - sudo unzip /path/css/steam/steam.zip -d /path/css/steam/ 2>&1 | tee -a "${logsInst}" + sudo unzip -o /path/css/steam/steam.zip -d /path/css/steam/ 2>&1 | tee -a "${logsInst}" sudo rm /path/css/steam/steam.zip | tee -a "$logsInst" 2>&1 | tee -a "${logsInst}" css_choice ;;