diff --git a/install.sh b/install.sh
index 205056e..15485d5 100644
--- a/install.sh
+++ b/install.sh
@@ -16,8 +16,10 @@ pkgsREQ=(sudo curl lsb-release wget gnupg)
for package in "${pkgsREQ[@]}"; do
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
clear
- echo "$package не установлен. Выполняется установка..."
+ echo "$package не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
apt-get install -y "$package" >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "$package уже установлен в системе." | tee -a "$(dirname "$0")/enginegp_install.log"
fi
done
@@ -139,40 +141,56 @@ while true; do
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
if [[ " ${suppOS[@]} " =~ " ${currOS} " ]]; then
# Список пакетов для установки
- pkgsLNAMP=(apache2 php php-fpm php-ctype php-json php-mbstring php-zip php-gd php-xml php-curl libapache2-mod-php libapache2-mod-fcgid nginx phpmyadmin)
+ pkgsLNAMP=(apache2 php php-fpm php-ctype php-json php-mbstring php-zip php-gd php-xml php-curl libapache2-mod-php libapache2-mod-fcgid nginx)
pkgsEGP=(ufw memcached unzip bc cron php$verPHP php$verPHP-fpm 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)
- apache_ports="Listen 8080
+ # Установка стека LNAMP + phpMyAdmin
+ # Проверяем наличие репозитория php sury
+ if [ ! -f "/etc/apt/sources.list.d/php.list" ]; then
+ echo "Репозиторий php не обнаружен. Добавляем..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ # Добавляем репозиторий php
+ sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- Listen 443
-
+ # Обновление таблиц
+ apt-get -y update >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- Listen 443
-"
+ # Определяем версию php по умолчанию
+ defPHP=$(apt-cache policy php | awk -F ': ' '/Candidate:/ {split($2, a, "[:+~]"); print a[2]}')
+ fi
+
+ # Конфигурация apache для EngineGP
+ apache_enginegp="
+ ServerName $sysIP
+ DocumentRoot /var/www/enginegp
+ DirectoryIndex index.php index.html
+ ErrorLog \${APACHE_LOG_DIR}/enginegp.log
+ CustomLog \${APACHE_LOG_DIR}/enginegp.log combined
+
+
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ allow from all
+
+
+
+ # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
+ SetHandler "proxy:unix:/run/php/php$verPHP-fpm.sock\|fcgi://localhost"
+
+
+"
# Конфигурация nginx для EngineGP
nginx_enginegp="server {
listen 80;
server_name $sysIP;
- root /var/enginegp;
- charset utf-8;
-
- access_log /var/log/enginegp/nginx_enginegp_access.log combined buffer=64k;
- error_log /var/log/enginegp/nginx_enginegp_error.log error;
-
- index index.php index.htm index.html;
-
location / {
- proxy_pass http://127.0.0.1:8080;
+ proxy_pass http://$sysIP:8080;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
- proxy_set_header X-Forwarded-For \$remote_addr;
- proxy_connect_timeout 120;
- proxy_send_timeout 120;
- proxy_read_timeout 180;
+ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto \$scheme;
}
location ~* \.(gif|jpeg|jpg|txt|png|tif|tiff|ico|jng|bmp|doc|pdf|rtf|xls|ppt|rar|rpm|swf|zip|bin|exe|dll|deb|cur)$ {
@@ -188,120 +206,72 @@ while true; do
location ~ /\.ht {
deny all;
}
+
+ location /phpmyadmin {
+ root /usr/share/;
+ index index.php;
+
+ location ~ ^/phpmyadmin/(.+\.php)$ {
+ try_files \$uri =404;
+ root /usr/share/;
+ proxy_pass http://$sysIP:8080;
+ }
+
+ location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
+ root /usr/share/;
+ }
+ }
}"
- # Установка стека LNAMP + phpMyAdmin
- # Цикл установки пакетов
- for package in "${pkgsLNAMP[@]}"; do
- # Проверяем наличие репозитория sury 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 >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Определяем версию php по умолчанию
- defPHP=$(apt-cache policy php | awk -F ': ' '/Candidate:/ {split($2, a, "[:+~]"); print a[2]}')
- fi
-
- # Устанавливаем базу данных
- if ! dpkg-query -W -f='${Status}' "mysql-server" 2>/dev/null | grep -q "install ok installed"; then
- sudo debconf-set-selections </dev/null | grep -q "install ok installed"; then
+ echo "mysql-server не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ sudo debconf-set-selections <> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo rm mysql-apt-config_0.8.26-1_all.deb >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo debconf-set-selections <> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config_0.8.26-1_all.deb >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo apt-get update >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo rm mysql-apt-config_0.8.26-1_all.deb >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo debconf-set-selections <> "$(dirname "$0")/enginegp_install.log" 2>&1
- fi
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "mysql-server уже установлен в системе. Продолжение установки невозможно." | tee -a "$(dirname "$0")/enginegp_install.log"
+ exit 1
+ fi
+ # Цикл установки пакетов
+ for package in "${pkgsLNAMP[@]}"; do
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
- echo "$package не установлен. Выполняется установка..."
+ echo "$package не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
sudo apt-get install -y "$package" >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "$package уже установлен в системе." | tee -a "$(dirname "$0")/enginegp_install.log"
fi
+ done
- # Проверяем установку php-fpm
- if dpkg-query -W -f='${Status}' "php$defPHP-fpm" 2>/dev/null | grep -q "install ok installed"; then
- if ! systemctl is-active --quiet php$defPHP-fpm; then
- sudo systemctl start php$defPHP-fpm >> "$(dirname "$0")/enginegp_install.log" 2>&1
- fi
+ # Цикл установки пакетов
+ for package in "${pkgsEGP[@]}"; do
+ # Проверка на наличие и установка пакетов
+ if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
+ echo "$package не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ apt-get install -y "$package" >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "$package уже установлен в системе." | tee -a "$(dirname "$0")/enginegp_install.log"
fi
-
- # Настраиваем apache
- if dpkg-query -W -f='${Status}' "libapache2-mod-fcgid" 2>/dev/null | grep -q "install ok installed"; then
- # Конфигурация apache для EngineGP
- apache_enginegp="
- ServerName $sysIP
- DocumentRoot /var/www/enginegp
- DirectoryIndex index.php index.html
- ErrorLog /var/log/enginegp/apache_enginegp_error.log
- CustomLog /var/log/enginegp/apache_enginegp_access.log combined
+ done
-
- Options FollowSymLinks
- AllowOverride All
-
-
-
- Options Indexes FollowSymLinks MultiViews
- AllowOverride All
- Order allow,deny
- allow from all
-
-
-
- # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
- SetHandler \"proxy:unix:/run/php/php$defPHP-fpm.sock|fcgi://localhost\"
-
-"
-
- # Разрешаем доступ к портам
- sudo ufw allow 80 >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo ufw allow 443 >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Включаем модули Apache
- sudo a2enmod actions fcgid alias proxy_fcgi >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
-
- # Создаём каталог EngineGP и выдаём права
- sudo mkdir /var/www/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo chown -R www-data:www-data /var/www/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo chmod -R 755 /var/www/enginegp >> "$(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 mv /etc/apache2/ports.conf /etc/apache2/ports.conf.default >> "$(dirname "$0")/enginegp_install.log" 2>&1
- echo "Listen 8080" | sudo tee /etc/apache2/ports.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
- sudo a2dissite 000-default.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
- fi
-
- # Настраиваем nginx
- if dpkg-query -W -f='${Status}' "nginx" 2>/dev/null | grep -q "install ok installed"; then
-
- fi
-
- # Установка phpMyAdmin
- if dpkg-query -W -f='${Status}' "libapache2-mod-php" 2>/dev/null | grep -q "install ok installed"; then
- # Проверка на наличие и установка пакетов
- if ! dpkg-query -W -f='${Status}' "phpmyadmin" 2>/dev/null | grep -q "install ok installed"; then
- echo "phpmyadmin не установлен. Выполняется установка..."
- sudo debconf-set-selections </dev/null | grep -q "install ok installed"; then
+ echo "phpmyadmin не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ sudo debconf-set-selections <> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
- sudo a2enconf phpmyadmin.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
- sudo systemctl reload apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
- fi
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y phpmyadmin >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
+ sudo a2enconf phpmyadmin.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "phpmyadmin уже установлен в системе. Продолжение установки невозможно." | tee -a "$(dirname "$0")/enginegp_install.log"
+ exit 1
+ fi
+
+ # Проверяем установку php-fpm
+ if dpkg-query -W -f='${Status}' "php$defPHP-fpm" 2>/dev/null | grep -q "install ok installed"; then
+ if ! systemctl is-active --quiet php$defPHP-fpm; then
+ echo "php$defPHP-fpm не запущен. Выполняется запуск..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ sudo systemctl start php$defPHP-fpm >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "php$defPHP-fpm уже запущен." | tee -a "$(dirname "$0")/enginegp_install.log"
fi
- done
+ fi
+
+ # Создание каталогов
+ sudo mkdir /var/log/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo mkdir /var/www/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo chown -R www-data:www-data /var/www/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo chmod -R 755 /var/www/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Настраиваем apache
+ if dpkg-query -W -f='${Status}' "libapache2-mod-fcgid" 2>/dev/null | grep -q "install ok installed"; then
+ echo "apache2 не настроен. Выполняется настройка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ # Разрешаем доступ к портам
+ sudo ufw allow 80 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo ufw allow 443 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Изменяем порт, на котором сидит Apache
+ sudo mv /etc/apache2/ports.conf /etc/apache2/ports.conf.default >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ echo "Listen 8080" | sudo tee /etc/apache2/ports.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 a2enmod actions fcgid alias proxy_fcgi >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo systemctl restart apache2 >> "$(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
+ sudo a2dissite 000-default.conf >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "libapache2-mod-fcgid не установлен. Продолжение установки невозможно." >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ exit 1
+ fi
+
+ # Настраиваем nginx
+ if dpkg-query -W -f='${Status}' "nginx" 2>/dev/null | grep -q "install ok installed"; then
+ echo "nginx не настроен. Выполняется настройка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ # Удаляем дефолтный и создаём конфиг EngineGP
+ sudo rm /etc/nginx/sites-enabled/default >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ echo -e "$nginx_enginegp" | sudo tee /etc/nginx/sites-available/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo ln -s /etc/nginx/sites-available/enginegp /etc/nginx/sites-enabled/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+
+ # Проводим тестирование и запускаем конфиг NGINX
+ sudo nginx -t >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo systemctl restart nginx >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "NGINX не установлен. Продолжение установки невозможно." | tee -a "$(dirname "$0")/enginegp_install.log"
+ exit 1
+ fi
# Установка EngineGP
- # Цикл установки пакетов
- for package in "${pkgsEGP[@]}"; do
- # Создаём папку для записи логов
- sudo mkdir /var/log/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Закачиваем и распаковываем панель
+ if [ ! -f "/var/www/enginegp/index.php" ]; then
+ echo "enginegp не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ sudo curl -sSL -o /var/www/enginegp.zip "$resURL/$resEGP/$verEGP/$verEGP.zip" >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo unzip /var/www/enginegp.zip -d /var/www/ >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo mv /var/EngineGP-* /var/www/enginegp >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ sudo rm /var/www/enginegp.zip >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ else
+ echo "enginegp уже установлен в системе. Продолжение установки невозможно." | tee -a "$(dirname "$0")/enginegp_install.log"
+ exit 1
+ fi
- # Проверка на наличие и установка пакетов
- if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
- echo "$package не установлен. Выполняется установка..."
- apt-get install -y "$package" >> "$(dirname "$0")/enginegp_install.log" 2>&1
- fi
+ # Установка и настрока composer
+ if [ ! -d "/var/www/enginegp/vendor" ]; then
+ echo "composer не установлен. Выполняется установка..." | tee -a "$(dirname "$0")/enginegp_install.log"
+ curl -o composer-setup.php https://getcomposer.org/installer >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ php$verPHP composer-setup.php --install-dir=/usr/local/bin --filename=composer >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ cd /var/www/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
+ else
+ echo "composer уже установлен в системе. Продолжение установки невозможно." | tee -a "$(dirname "$0")/enginegp_install.log"
+ exit 1
+ 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
- # Отключаем конфигурационный файл 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
-
- # Перезапускаем apache
- sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
- fi
- fi
-
- # Проверяем установку nginx
- 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
-
- # Устанавливаем панель
- 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
-
- # Установка и настрока composer
- curl -o composer-setup.php https://getcomposer.org/installer >> "$(dirname "$0")/enginegp_install.log" 2>&1
- php$verPHP 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
- done
-
- # Перезапускаем apache
- sudo systemctl restart apache2 >> "$(dirname "$0")/enginegp_install.log" 2>&1
+ # Сообщение о завершении установки
+ echo "Установка завершена!" | tee -a "$(dirname "$0")/enginegp_install.log"
else
- echo "Вы используете неподдерживаемую версию Linux"
+ echo "Вы используете неподдерживаемую версию Linux" | tee -a "$(dirname "$0")/enginegp_install.log"
fi
;;
2)