diff --git a/README.md b/README.md
index 7197977..6481f8b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,7 @@
-# Autoinstall
\ No newline at end of file
+
Automatic installation for EngineGP
+Supported systems:
+Debian 10, 11
+
+Starting the auto installer:
+chmod +x install.sh
+./install.sh
\ No newline at end of file
diff --git a/install.sh b/install.sh
index 71db9d0..d1f136e 100644
--- a/install.sh
+++ b/install.sh
@@ -8,8 +8,9 @@ sysUpdate (){
# Обновление системы
sysUpdate
-# Установка начальных пакетов
-pkgsREQ=(sudo curl)
+# Установка начальных пакетов.
+# lsb-release wget gnupg - Требуются для MySQL. В остальном зависимость не проверялась.
+pkgsREQ=(sudo curl lsb-release wget gnupg)
# Цикл установки пакетов
for package in "${pkgsREQ[@]}"; do
@@ -20,14 +21,18 @@ for package in "${pkgsREQ[@]}"; do
fi
done
-# Определение операционной системы
-verOS=`cat /etc/issue.net | awk '{print $1,$3}'`
+# Массив с поддерживаемыми версиями Debian
+suppOS=("Debian 10" "Debian 11")
+
+# Получаем текущую версию операционной системы
+currOS=`cat /etc/issue.net | awk '{print $1,$3}'`
# Проверка аргументов командной строки
if [ $# -gt 0 ]; then
# Переменные для хранения
verEGP=""
verPHP=""
+ verSQL=""
sysIP=""
# Перебор всех аргументов
@@ -47,6 +52,12 @@ if [ $# -gt 0 ]; then
shift # Пропустить значение версии
shift # Пропустить аргумент --php
;;
+ --sql)
+ # Если передан аргумент --sql, сохранить указанную версию PHP
+ verSQL="$2"
+ shift # Пропустить значение версии
+ shift # Пропустить аргумент --php
+ ;;
--ip)
# Если передан аргумент --ip, сохранить указанный IP-адрес
sysIP="$2"
@@ -56,10 +67,11 @@ if [ $# -gt 0 ]; then
*)
# Неизвестный аргумент, вывести справку и выйти
clear
- echo "Использование: ./install.sh [--release версия] [--php версия] [--ip IP-адрес]"
- echo " --release версия: установить указанную версию EngineGP"
- echo " --php версия: установить указанную версию PHP"
- echo " --ip IP-адрес: использовать указанный IP-адрес"
+ echo "Использование: ./install.sh [--release версия] [--php версия] [--sql версия] [--ip IP-адрес]"
+ echo " --release версия: установить указанную версию EngineGP. Формат должен быть: 3.6.3.0"
+ echo " --php версия: установить указанную версию PHP. Формат должен быть: 8.1"
+ echo " --sql версия: установить указанную базу данный. Формат должен быть: mysql или mariadb"
+ echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1"
exit 1
;;
esac
@@ -73,7 +85,7 @@ if [ $# -gt 0 ]; then
# Если версия PHP не выбрана, использовать PHP 8.0 по умолчанию
if [ -z "$verPHP" ]; then
- verPHP="8.0"
+ verPHP="7.0"
fi
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
@@ -84,7 +96,7 @@ else
# Если нет аргументов, получить последнюю версию EngineGP из файла на сайте
LATEST_URL="https://resources.enginegp.com/latest"
verEGP=$(curl -s "$LATEST_URL" | awk 'NR==1 {print $2}')
- verPHP="8.0"
+ verPHP="7.0"
sysIP=$(curl -s ipinfo.io/ip)
fi
@@ -124,21 +136,23 @@ while true; do
case $choice in
1)
clear
- # Список пакетов для установки
- pkgsALL=(ufw memcached unzip bc cron apache2 libapache2-mpm-itk php$verPHP php$verPHP-common php$verPHP-cli php$verPHP-memcache php$verPHP-memcached php$verPHP-mysql php$verPHP-xml php$verPHP-mbstring php$verPHP-gd php$verPHP-imagick php$verPHP-zip php$verPHP-curl php$verPHP-ssh2 php$verPHP-xml libapache2-mod-php$verPHP nginx mariadb-server)
+ # Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
+ if [[ " ${suppOS[@]} " =~ " ${currOS} " ]]; then
+ # Список пакетов для установки
+ pkgsALL=(ufw memcached unzip bc cron apache2 libapache2-mpm-itk php$verPHP php$verPHP-common php$verPHP-cli php$verPHP-memcache php$verPHP-memcached php$verPHP-mysql php$verPHP-xml php$verPHP-mbstring php$verPHP-gd php$verPHP-imagick php$verPHP-zip php$verPHP-curl php$verPHP-ssh2 php$verPHP-xml libapache2-mod-php$verPHP nginx)
- apache_ports="Listen 8080
+ apache_ports="Listen 8080
-
- Listen 443
-
+
+ Listen 443
+
-
- Listen 443
- "
+
+ Listen 443
+"
- # Конфигурация apache для EngineGP
- apache_enginegp="
+ # Конфигурация apache для EngineGP
+ apache_enginegp="
ServerName $sysIP
DocumentRoot /var/enginegp
ErrorLog /var/log/enginegp/apache_enginegp_error.log
@@ -164,8 +178,8 @@ while true; do
"
- # Конфигурация nginx для EngineGP
- nginx_enginegp="server {
+ # Конфигурация nginx для EngineGP
+ nginx_enginegp="server {
listen 80;
server_name $sysIP;
@@ -201,106 +215,109 @@ while true; do
deny all;
}
}"
- # Цикл установки пакетов
- for package in "${pkgsALL[@]}"; do
- # Проверяем наличие php
- if [ ! -f "/etc/apt/sources.list.d/php.list" ]; then
- # Добавляем репозиторий php
- sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
+ # Цикл установки пакетов
+ for package in "${pkgsALL[@]}"; do
+ # Проверяем наличие php
+ if [ ! -f "/etc/apt/sources.list.d/php.list" ]; then
+ # Добавляем репозиторий php
+ sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
- # Обновление таблиц
- apt-get -y update
- fi
-
- # Проверка на наличие и установка пакетов
- if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
- echo "$package не установлен. Выполняется установка..."
- apt-get install -y "$package"
- fi
-
- # Проверяем установку apache
- if dpkg-query -W -f='${Status}' "libapache2-mod-php$verPHP" 2>/dev/null | grep -q "install ok installed"; then
- if [ ! -f /etc/apache2/sites-available/enginegp.conf ]; then
- # Разрешаем доступ к портам
- sudo ufw allow 80 >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo ufw allow 443 >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Изменяем порт, на котором слушает Apache
- echo -e "$apache_ports" | sudo tee /etc/apache2/ports.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Создаём папку для записи логов, если ещё не создана
- sudo mkdir /var/log/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Отключаем конфигурационный файл 000-default.conf
- sudo a2dissite 000-default.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Создаем виртуальный хостинг для EngineGP
- echo -e "$apache_enginegp" | sudo tee /etc/apache2/sites-available/enginegp.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Проверяем конфиг apache и выводим в логи
- sudo apachectl configtest >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Включаем конфигурацию
- sudo a2ensite enginegp.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Включаем rewrite
- sudo a2enmod rewrite >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Включаем MPM-ITK
- sudo a2enmod mpm_itk >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Включаем mod_php
- sudo a2enmod php$verPHP >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Перезапускаем apache
- sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Обновление таблиц
+ apt-get -y update
fi
- fi
- # Проверяем установку nginx
- if dpkg-query -W -f='${Status}' "nginx" 2>/dev/null | grep -q "install ok installed"; then
- if [ ! -f /etc/nginx/sites-available/enginegp.conf ]; then
- # Создаём папку для записи логов, если ещё не создана
- sudo mkdir /var/log/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Создаем виртуальный хостинг для EngineGP
- echo -e "$nginx_enginegp" | sudo tee /etc/nginx/sites-available/enginegp.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Создаём симлинк конфига NGINX
- sudo ln -s /etc/nginx/sites-available/enginegp.conf /etc/nginx/sites-enabled/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Проверяем конфиг nginx и выводим в логи
- sudo nginx -t >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Перезапускаем nginx
- sudo systemctl restart nginx >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Проверка на наличие и установка пакетов
+ if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
+ echo "$package не установлен. Выполняется установка..."
+ apt-get install -y "$package"
fi
- fi
- # Устанавливаем панель
- if dpkg-query -W -f='${Status}' "php$verPHP-xml" 2>/dev/null | grep -q "install ok installed"; then
- if [ ! -d /var/enginegp/ ]; then
- # Закачиваем и распаковываем панель
- sudo curl -sSL -o /var/enginegp.zip "$resURL/$resEGP/$verEGP/$verEGP.zip" >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo unzip /var/enginegp.zip -d /var/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo mv /var/EngineGP-* /var/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo rm /var/enginegp.zip >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Проверяем установку apache
+ if dpkg-query -W -f='${Status}' "libapache2-mod-php$verPHP" 2>/dev/null | grep -q "install ok installed"; then
+ if [ ! -f /etc/apache2/sites-available/enginegp.conf ]; then
+ # Разрешаем доступ к портам
+ sudo ufw allow 80 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo ufw allow 443 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Изменяем порт, на котором слушает Apache
+ echo -e "$apache_ports" | sudo tee /etc/apache2/ports.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Создаём папку для записи логов, если ещё не создана
+ sudo mkdir /var/log/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Отключаем конфигурационный файл 000-default.conf
+ sudo a2dissite 000-default.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Создаем виртуальный хостинг для EngineGP
+ echo -e "$apache_enginegp" | sudo tee /etc/apache2/sites-available/enginegp.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Проверяем конфиг apache и выводим в логи
+ sudo apachectl configtest >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Включаем конфигурацию
+ sudo a2ensite enginegp.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Включаем rewrite
+ sudo a2enmod rewrite >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Включаем MPM-ITK
+ sudo a2enmod mpm_itk >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Включаем mod_php
+ sudo a2enmod php$verPHP >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Перезапускаем apache
+ sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ fi
+ fi
+
+ # Проверяем установку nginx
+ if dpkg-query -W -f='${Status}' "nginx" 2>/dev/null | grep -q "install ok installed"; then
+ if [ ! -f /etc/nginx/sites-available/enginegp.conf ]; then
+ # Создаём папку для записи логов, если ещё не создана
+ sudo mkdir /var/log/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Создаем виртуальный хостинг для EngineGP
+ echo -e "$nginx_enginegp" | sudo tee /etc/nginx/sites-available/enginegp.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Создаём симлинк конфига NGINX
+ sudo ln -s /etc/nginx/sites-available/enginegp.conf /etc/nginx/sites-enabled/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Проверяем конфиг nginx и выводим в логи
+ sudo nginx -t >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Перезапускаем nginx
+ sudo systemctl restart nginx >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ fi
+ fi
+
+ # Устанавливаем панель
+ if dpkg-query -W -f='${Status}' "php$verPHP-xml" 2>/dev/null | grep -q "install ok installed"; then
+ if [ ! -d /var/enginegp/ ]; then
+ # Закачиваем и распаковываем панель
+ sudo curl -sSL -o /var/enginegp.zip "$resURL/$resEGP/$verEGP/$verEGP.zip" >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo unzip /var/enginegp.zip -d /var/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo mv /var/EngineGP-* /var/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo rm /var/enginegp.zip >> "$(dirname "$0")/enginegp_install.log" 2>&1
- # Задаём права на каталог
- chown www-data:www-data -R /var/enginegp/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Задаём права на каталог
+ chown www-data:www-data -R /var/enginegp/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
- # Установка и настрока composer
- curl -o composer-setup.php https://getcomposer.org/installer >> "$(dirname "$0")/enginegp_install.log" 2>&1
- php composer-setup.php --install-dir=/usr/local/bin --filename=composer >> "$(dirname "$0")/enginegp_install.log" 2>&1
- cd /var/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo composer install --no-interaction >> "$(dirname "$0")/enginegp_install.log" 2>&1
- cd >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Установка и настрока composer
+ curl -o composer-setup.php https://getcomposer.org/installer >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ php composer-setup.php --install-dir=/usr/local/bin --filename=composer >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ cd /var/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo composer install --no-interaction >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ cd >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ fi
fi
- fi
- done
+ done
- # Перезапускаем apache
- sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Перезапускаем apache
+ sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "Вы используете неподдерживаемую версию Linux"
+ fi
;;
2)
clear
@@ -315,7 +332,7 @@ while true; do
4)
clear
echo "Последняя версия EngineGP: $verEGP"
- echo "Текущая версия Linux: $verOS"
+ echo "Текущая версия Linux: $currOS"
echo "Внешний IP-адрес: $sysIP"
echo "Версия php: $verPHP"
;;