mirror of
https://github.com/EngineGPDev/Autoinstall.git
synced 2025-01-18 22:02:22 +03:00
Minor updates
This commit is contained in:
parent
f1795932eb
commit
92e6b290f3
@ -1 +1,7 @@
|
|||||||
# Autoinstall
|
<p align="center"><b>Automatic installation for EngineGP</p>
|
||||||
|
Supported systems:
|
||||||
|
Debian 10, 11
|
||||||
|
|
||||||
|
Starting the auto installer:</br>
|
||||||
|
chmod +x install.sh</br>
|
||||||
|
./install.sh
|
247
install.sh
247
install.sh
@ -8,8 +8,9 @@ sysUpdate (){
|
|||||||
# Обновление системы
|
# Обновление системы
|
||||||
sysUpdate
|
sysUpdate
|
||||||
|
|
||||||
# Установка начальных пакетов
|
# Установка начальных пакетов.
|
||||||
pkgsREQ=(sudo curl)
|
# lsb-release wget gnupg - Требуются для MySQL. В остальном зависимость не проверялась.
|
||||||
|
pkgsREQ=(sudo curl lsb-release wget gnupg)
|
||||||
|
|
||||||
# Цикл установки пакетов
|
# Цикл установки пакетов
|
||||||
for package in "${pkgsREQ[@]}"; do
|
for package in "${pkgsREQ[@]}"; do
|
||||||
@ -20,14 +21,18 @@ for package in "${pkgsREQ[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Определение операционной системы
|
# Массив с поддерживаемыми версиями Debian
|
||||||
verOS=`cat /etc/issue.net | awk '{print $1,$3}'`
|
suppOS=("Debian 10" "Debian 11")
|
||||||
|
|
||||||
|
# Получаем текущую версию операционной системы
|
||||||
|
currOS=`cat /etc/issue.net | awk '{print $1,$3}'`
|
||||||
|
|
||||||
# Проверка аргументов командной строки
|
# Проверка аргументов командной строки
|
||||||
if [ $# -gt 0 ]; then
|
if [ $# -gt 0 ]; then
|
||||||
# Переменные для хранения
|
# Переменные для хранения
|
||||||
verEGP=""
|
verEGP=""
|
||||||
verPHP=""
|
verPHP=""
|
||||||
|
verSQL=""
|
||||||
sysIP=""
|
sysIP=""
|
||||||
|
|
||||||
# Перебор всех аргументов
|
# Перебор всех аргументов
|
||||||
@ -47,6 +52,12 @@ if [ $# -gt 0 ]; then
|
|||||||
shift # Пропустить значение версии
|
shift # Пропустить значение версии
|
||||||
shift # Пропустить аргумент --php
|
shift # Пропустить аргумент --php
|
||||||
;;
|
;;
|
||||||
|
--sql)
|
||||||
|
# Если передан аргумент --sql, сохранить указанную версию PHP
|
||||||
|
verSQL="$2"
|
||||||
|
shift # Пропустить значение версии
|
||||||
|
shift # Пропустить аргумент --php
|
||||||
|
;;
|
||||||
--ip)
|
--ip)
|
||||||
# Если передан аргумент --ip, сохранить указанный IP-адрес
|
# Если передан аргумент --ip, сохранить указанный IP-адрес
|
||||||
sysIP="$2"
|
sysIP="$2"
|
||||||
@ -56,10 +67,11 @@ if [ $# -gt 0 ]; then
|
|||||||
*)
|
*)
|
||||||
# Неизвестный аргумент, вывести справку и выйти
|
# Неизвестный аргумент, вывести справку и выйти
|
||||||
clear
|
clear
|
||||||
echo "Использование: ./install.sh [--release версия] [--php версия] [--ip IP-адрес]"
|
echo "Использование: ./install.sh [--release версия] [--php версия] [--sql версия] [--ip IP-адрес]"
|
||||||
echo " --release версия: установить указанную версию EngineGP"
|
echo " --release версия: установить указанную версию EngineGP. Формат должен быть: 3.6.3.0"
|
||||||
echo " --php версия: установить указанную версию PHP"
|
echo " --php версия: установить указанную версию PHP. Формат должен быть: 8.1"
|
||||||
echo " --ip IP-адрес: использовать указанный IP-адрес"
|
echo " --sql версия: установить указанную базу данный. Формат должен быть: mysql или mariadb"
|
||||||
|
echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -73,7 +85,7 @@ if [ $# -gt 0 ]; then
|
|||||||
|
|
||||||
# Если версия PHP не выбрана, использовать PHP 8.0 по умолчанию
|
# Если версия PHP не выбрана, использовать PHP 8.0 по умолчанию
|
||||||
if [ -z "$verPHP" ]; then
|
if [ -z "$verPHP" ]; then
|
||||||
verPHP="8.0"
|
verPHP="7.0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
|
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
|
||||||
@ -84,7 +96,7 @@ else
|
|||||||
# Если нет аргументов, получить последнюю версию EngineGP из файла на сайте
|
# Если нет аргументов, получить последнюю версию EngineGP из файла на сайте
|
||||||
LATEST_URL="https://resources.enginegp.com/latest"
|
LATEST_URL="https://resources.enginegp.com/latest"
|
||||||
verEGP=$(curl -s "$LATEST_URL" | awk 'NR==1 {print $2}')
|
verEGP=$(curl -s "$LATEST_URL" | awk 'NR==1 {print $2}')
|
||||||
verPHP="8.0"
|
verPHP="7.0"
|
||||||
sysIP=$(curl -s ipinfo.io/ip)
|
sysIP=$(curl -s ipinfo.io/ip)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -124,21 +136,23 @@ while true; do
|
|||||||
case $choice in
|
case $choice in
|
||||||
1)
|
1)
|
||||||
clear
|
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
|
||||||
|
|
||||||
<IfModule ssl_module>
|
<IfModule ssl_module>
|
||||||
Listen 443
|
Listen 443
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
<IfModule mod_gnutls.c>
|
<IfModule mod_gnutls.c>
|
||||||
Listen 443
|
Listen 443
|
||||||
</IfModule>"
|
</IfModule>"
|
||||||
|
|
||||||
# Конфигурация apache для EngineGP
|
# Конфигурация apache для EngineGP
|
||||||
apache_enginegp="<VirtualHost *:8080>
|
apache_enginegp="<VirtualHost *:8080>
|
||||||
ServerName $sysIP
|
ServerName $sysIP
|
||||||
DocumentRoot /var/enginegp
|
DocumentRoot /var/enginegp
|
||||||
ErrorLog /var/log/enginegp/apache_enginegp_error.log
|
ErrorLog /var/log/enginegp/apache_enginegp_error.log
|
||||||
@ -164,8 +178,8 @@ while true; do
|
|||||||
</Directory>
|
</Directory>
|
||||||
</VirtualHost>"
|
</VirtualHost>"
|
||||||
|
|
||||||
# Конфигурация nginx для EngineGP
|
# Конфигурация nginx для EngineGP
|
||||||
nginx_enginegp="server {
|
nginx_enginegp="server {
|
||||||
listen 80;
|
listen 80;
|
||||||
server_name $sysIP;
|
server_name $sysIP;
|
||||||
|
|
||||||
@ -201,106 +215,109 @@ while true; do
|
|||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
# Цикл установки пакетов
|
# Цикл установки пакетов
|
||||||
for package in "${pkgsALL[@]}"; do
|
for package in "${pkgsALL[@]}"; do
|
||||||
# Проверяем наличие php
|
# Проверяем наличие php
|
||||||
if [ ! -f "/etc/apt/sources.list.d/php.list" ]; then
|
if [ ! -f "/etc/apt/sources.list.d/php.list" ]; then
|
||||||
# Добавляем репозиторий php
|
# Добавляем репозиторий php
|
||||||
sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
|
sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
|
||||||
|
|
||||||
# Обновление таблиц
|
# Обновление таблиц
|
||||||
apt-get -y update
|
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
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Проверяем установку nginx
|
# Проверка на наличие и установка пакетов
|
||||||
if dpkg-query -W -f='${Status}' "nginx" 2>/dev/null | grep -q "install ok installed"; then
|
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
|
||||||
if [ ! -f /etc/nginx/sites-available/enginegp.conf ]; then
|
echo "$package не установлен. Выполняется установка..."
|
||||||
# Создаём папку для записи логов, если ещё не создана
|
apt-get install -y "$package"
|
||||||
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
|
||||||
fi
|
|
||||||
|
|
||||||
# Устанавливаем панель
|
# Проверяем установку apache
|
||||||
if dpkg-query -W -f='${Status}' "php$verPHP-xml" 2>/dev/null | grep -q "install ok installed"; then
|
if dpkg-query -W -f='${Status}' "libapache2-mod-php$verPHP" 2>/dev/null | grep -q "install ok installed"; then
|
||||||
if [ ! -d /var/enginegp/ ]; then
|
if [ ! -f /etc/apache2/sites-available/enginegp.conf ]; then
|
||||||
# Закачиваем и распаковываем панель
|
# Разрешаем доступ к портам
|
||||||
sudo curl -sSL -o /var/enginegp.zip "$resURL/$resEGP/$verEGP/$verEGP.zip" >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
sudo ufw allow 80 >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
||||||
sudo unzip /var/enginegp.zip -d /var/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
sudo ufw allow 443 >> "$(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
|
||||||
|
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
|
# Установка и настрока composer
|
||||||
curl -o composer-setup.php https://getcomposer.org/installer >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
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
|
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
|
cd /var/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
||||||
sudo composer install --no-interaction >> "$(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
|
cd >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
done
|
||||||
done
|
|
||||||
|
|
||||||
# Перезапускаем apache
|
# Перезапускаем apache
|
||||||
sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
|
||||||
|
else
|
||||||
|
echo "Вы используете неподдерживаемую версию Linux"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
clear
|
clear
|
||||||
@ -315,7 +332,7 @@ while true; do
|
|||||||
4)
|
4)
|
||||||
clear
|
clear
|
||||||
echo "Последняя версия EngineGP: $verEGP"
|
echo "Последняя версия EngineGP: $verEGP"
|
||||||
echo "Текущая версия Linux: $verOS"
|
echo "Текущая версия Linux: $currOS"
|
||||||
echo "Внешний IP-адрес: $sysIP"
|
echo "Внешний IP-адрес: $sysIP"
|
||||||
echo "Версия php: $verPHP"
|
echo "Версия php: $verPHP"
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user