#!/bin/bash
#-----------------------------------------------------------------------------------------------------------------------
### перейти в домашнюю директорию
### sudo nano vps-install.sh
### ввести команду: sudo chmod +x ~/vps-install.sh
### ввести команду: sudo -i;
### ввести команду: sudo bash vps-install.sh
#-----------------------------------------------------------------------------------------------------------------------

#репозиторий
var_5='https://gitlab.com/component17/backend-box.git';

#основная папка проекта - не меняйте имя переменной
main_path="backend-box";

#подпапка с ЛЛ в проекте - не меняйте имя переменной
lar_path="dcu";

yes | sudo apt-get update;

yes | sudo apt install net-tools;
yes | sudo apt install mc;
yes | sudo apt install curl;
yes | sudo apt install git;

yes | sudo apt install apache2;
yes | sudo apt install ssl-cert;
yes | sudo a2enmod rewrite;
yes | sudo a2enmod ssl;
yes | sudo mkdir /etc/ssl/;
yes | sudo systemctl restart apache2;

yes | sudo apt install mysql-server;
yes | sudo apt-get update;
yes | sudo apt -y install software-properties-common;
yes | sudo add-apt-repository ppa:ondrej/php;
yes | sudo apt-get update;
yes | sudo apt -y install libgd3;
yes | sudo apt -y install php8.1;
yes | sudo apt -y install php8.1-mysql;
yes | sudo apt -y install php8.1-xml;
yes | sudo apt -y install php8.1-curl;
yes | sudo apt -y install php8.1-gd;
yes | sudo apt -y install php8.1-mbstring;
yes | sudo apt -y install php8.1-zip;
yes | sudo apt -y install php8.1-common;
yes | sudo apt -y install php8.1-intl;
yes | sudo apt -y install php8.1-bz2;
yes | sudo apt -y install php8.1-bcmath;
yes | sudo apt -y install php8.1-soap;
yes | sudo apt -y install php8.1-curl;
#-----------------------------------------------------------------------------------------------------------------------
cd /var/www/html;

sudo curl http://90.156.203.30/box.zip --output box.zip;
sudo unzip box.zip;

#sudo git clone --depth 1 $var_5;

#что бы не вводить пароль каждый раз
cd $main_path/$lar_path;
#sudo git config credential.helper store;
#-----------------------------------------------------------------------------------------------------------------------
#cd $lar_path;
#sudo rm .env;
#sudo mv .env1 .env;
sudo php install.php;
#имя базы
var_2=$(awk 'NR==1' access.dat);
#имя юзера
var_3=$(awk 'NR==1' access.dat);
#пароль
var_4=$(awk 'NR==2' access.dat);
cd ..;
sudo systemctl restart apache2;
#-----------------------------------------------------------------------------------------------------------------------

sudo phpenmod mcrypt;
sudo phpenmod mbstring;
sudo systemctl restart apache2;

var_5="CREATE USER '$var_3'@'localhost' IDENTIFIED BY '$var_4';GRANT ALL PRIVILEGES ON *.* TO '$var_3'@'localhost' WITH GRANT OPTION;FLUSH PRIVILEGES;CREATE DATABASE $var_2;";
sudo mysql --user=root --execute="$var_5";
sudo apt install phpmyadmin;
sudo systemctl restart apache2;

#-----------------------------------------------------------------------------------------------------------------------

sudo rm /var/www/html/index.html;
cd /var/www/html/$main_path/$lar_path;
sudo chown -R $USER:www-data storage;
sudo chown -R $USER:www-data bootstrap/cache;
sudo chmod -R 775 storage;
sudo chmod -R 775 bootstrap/cache;

cd /var/www/html/$main_path;

#sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');";
#sudo php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;";
#sudo php composer-setup.php;

#если вы суперпользователь, выйдите и войдите под обычным логином

#sudo useradd -m -p $var_4 $var_3
#удалить пользователя
#sudo userdel $var_3
#sudo useradd -m -p $(openssl passwd -1 $var_4) $var_3

sudo systemctl stop apache2;
cd /var/www/html/$main_path/$lar_path;

y | sudo php ../composer.phar install;
y | sudo php ../composer.phar update;
sudo systemctl start apache2;

sudo php artisan key:generate;
sudo php artisan config:cache;
sudo php artisan migrate;
sudo php artisan passport:install;
#sudo php artisan passport:client --personal;

cd ../..;

echo '<IfModule mod_php8.c>' > .htaccess;
echo '   php_value upload_max_filesize 50M' >> .htaccess;
echo '   php_value post_max_size 50M' >> .htaccess;
echo '</IfModule>' >> .htaccess;
echo '<IfModule mod_rewrite.c>' >> .htaccess;
echo '    RewriteEngine On' >> .htaccess;
echo "    RewriteRule ^(.*)\$ $main_path/$lar_path/public/\$1 [L]" >> .htaccess;
echo '</IfModule>' >> .htaccess;


#dom_path="${PWD##*/}";
### echo '#!/bin/bash'                     >  update.sh;
### echo "if [[ -f /var/www/html/$main_path/$lar_path/storage/e.key ]]" >> update.sh;
### echo 'then'                            >> update.sh;
### echo '    exit 0'                      >> update.sh;
### echo 'fi'                              >> update.sh;
### echo "cd /var/www/html/$main_path"     >> update.sh;
### echo "if [[ -f /var/www/html/$main_path/$lar_path/storage/dev.key ]]" >> update.sh;
### echo 'then'                             >> update.sh;
### echo '    git checkout -b DEV-MAIN;'    >> update.sh;
### echo '    git reset --hard HEAD;'       >> update.sh;
### echo '    git pull origin DEV-MAIN;'    >> update.sh;
### echo 'else'                             >> update.sh;
### echo '    git reset --hard HEAD;'       >> update.sh;
### echo '    git pull;'                    >> update.sh;
### echo 'fi'                               >> update.sh;
### echo "cd $lar_path"                     >> update.sh;
### echo 'php artisan migrate;'             >> update.sh;
### echo 'php artisan storage:link;'        >> update.sh;
### echo 'php artisan config:clear;'        >> update.sh;
### echo 'php artisan cache:clear;'         >> update.sh;

### chmod +x update.sh;

sudo apt-get install cron;
sudo echo '*/1 * * * * curl http://127.0.0.1/api/tick' | crontab;

cd $main_path;
### sudo git config --global user.email "x-invest@mail.ru";
### sudo git config --global user.name "Den";
### sudo git config pull.rebase true;
### sudo git add .;
### sudo git commit -m "change access data";

### sudo /var/www/html/./update.sh;
# sudo nano /etc/apache2/apache2.conf
# sudo systemctl restart apache2;

### cd /var/www/html/backend-box;ls;sudo unlink composer.lock;sudo unlink dcu/composer.lock;sudo php composer.phar update;git config pull.rebase true;sudo git commit -m "My message";sudo git reset --hard;sudo /var/www/html/./update.sh;
### sudo git checkout origin/master -- dcu/composer.lock dcu/composer.json composer.lock composer.json;sudo php composer.phar update;
### sudo git rm .gitattributes;sudo git add -A;sudo git reset --hard;

### увеличение лимита на загрузку файлов
### /etc/php/7.4/apache2/php.ini
### post_max_size = 64M
### upload_max_filesize = 64M
### sudo systemctl restart apache2;

### отключение ошибок с предупреждением
### sudo nano /etc/phpmyadmin/config.inc.php
### $cfg['SendErrorReports'] = 'never';
### $cfg['ExecTimeLimit'] = 0;
### sudo systemctl restart apache2;
### crontab -r

### curl https://files.phpmyadmin.net/phpMyAdmin/4.9.10/phpMyAdmin-4.9.10-all-languages.zip --output phpmyadmin.zip;
### unzip phpmyadmin.zip;


