123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- #!/bin/bash
- #
- # v0.7
- #
- echo "//////////////////////////////////////////////////"
- echo ""
- echo "Début du script de déploiement d'Agora Infinity"
- echo ""
-
- #Récupération des variables
-
- echo -n "Enter DB username: " ; read db_user
- echo -n "Enter Database name: " ; read db_name
- echo -n "Enter $db_user password: " ; stty -echo ; read db_passwd ; stty echo ; echo ""
- echo ""
- echo "Test de la connexion à la base de donnée"
- while ! mysql -u $db_user -p$db_passwd $db_name -e ";" ; do
- read -s -p "Connexion à la base de donnée impossible, merci de ré enter le bon mot de passe: " db_passwd
- done
- echo "Test conexion BD = OK"
- echo ""
-
- echo -n "Enter domaine (ex: clientagora.tree-learning.fr || pas de www.) : " ; read sitedomaine
- siteVar="$sitedomaine"
- sitedomaine="/var/www/""$sitedomaine""/web"
- #test
- #sitedomaine="/tmp/""$sitedomaine"
-
-
- read -e -p "Web user ( ex = webX) : " WebUser
- read -e -p "Web group ( ex = clientX) : " WebGroup
- UpdateRight="chown -R ""$WebUser"":""$WebGroup"" ""$sitedomaine"
-
-
- read -e -p "APP_ENV ( default = prod) : " -i "prod" APP_ENV
- read -e -p "APP_DEBUG ( default = 0) : " -i "0" APP_DEBUG
- read -e -p "APP_SECRET ( default = logipro) : " -i "logipro" APP_SECRET
- read -e -p "APP_URL_PREFIX ( default = empty) : " -i "" APP_URL_PREFIX
-
- #read -e -p "APP_SECRET ( default = logipro) : " -i "logipro" APP_SECRET
-
- dbURL='DATABASE_URL="mysql://'$db_user':'$db_passwd'@localhost/'$db_name'"'
-
-
- #read -e -p "MAILER_HOST= " -i "isp15.logipro.com" MAILER_HOST
- #read -e -p "MAILER_USERNAME= " -i "srv-mail@logipro.com" MAILER_USERNAME
- #read -e -p "Entrez le mot de passe pour MAILER_PASSWORD= " MAILER_PASSWORD
-
- # On fixe les variables de config smtp
- MAILER_HOST="isp15.logipro.com"
- MAILER_USERNAME="srv-mail@logipro.com"
- MAILER_PASSWORD="BA2kGNEQhSS2695LZA5p"
-
-
- ####
- PHOENIX='"'$sitedomaine'/Phoenix"'
- PhoenixPath="$sitedomaine""/Phoenix"
- #pour test
- sitepath="$sitedomaine""/Phoenix"
-
- #test mkdir -p "$sitepath"
- PHPpath="/usr/bin/php"
- COMPOSERpath="/usr/bin/composer"
- COMPOSERCachepath="$PhoenixPath""/var"
- COMPOSER_CACHE_DIR_Var="COMPOSER_CACHE_DIR=""$COMPOSERCachepath"
- Php_Memory_Limit_Cmd="php -d memory_limit=5000M"
- #Unoconv URL
- DOCX_TO_PDF_CONVERTER_URL="https://unoconv.logipro.com/unoconv/pdf"
-
- echo "///////////////////////////////////////"
- echo "Résumé des variables :"
- echo "Domaine"$sitedomaine
- echo "User et group"""$WebUser":"$WebGroup""
- echo "Param .env"
- echo ""
- echo "APP_ENV=$APP_ENV"
- echo "APP_DEBUG=$APP_DEBUG"
- echo 'APP_SECRET="'$APP_SECRET'"'
- echo 'APP_URL_PREFIX="'$APP_URL_PREFIX'"'
- echo 'APP_HOST="'$sitedomaine'"'
- echo -e "\n"
- echo $dbURL
- echo -e "\n"
- echo 'MAILER_HOST="'$MAILER_HOST'"'
- echo 'MAILER_USERNAME="'$MAILER_USERNAME'"'
- echo 'MAILER_PASSWORD="'$MAILER_PASSWORD'"'
- echo -e "\n"
- echo 'DOCX_TO_PDF_CONVERTER_URL'="'$DOCX_TO_PDF_CONVERTER_UR'"'
- echo "Prêt pour l'installation ( ctrl+c pour stopper le script | Enter pour continuer )"
- read
- ################################################### Initialisation de l'instalation
- echo "/////////////////"
- echo "Installation"
- cd $sitedomaine
- gitInstall="sudo -u ""$WebUser"" git clone -b master https://git.logipro.com/raphael/Phoenix.git"
- $gitInstall
- $UpdateRight
-
- cd $PhoenixPath
- composerInstall="$COMPOSERpath"" install --no-dev --optimize-autoloader"
- sudo -u "$WebUser" $COMPOSER_CACHE_DIR_Var $Php_Memory_Limit_Cmd $composerInstall
- ################################################### Création du .env
- echo "/////////////////"
- echo "Création du .env"
- envFilePath="$sitepath""/.env"
-
- cat <<END >$envFilePath
- APP_ENV=$APP_ENV
- APP_DEBUG=$APP_DEBUG
- APP_SECRET="$APP_SECRET"
-
- APP_HOST="$siteVar"
- APP_URL_PREFIX="$APP_URL_PREFIX"
-
- $dbURL
-
- MAILER_HOST="$MAILER_HOST"
- MAILER_USERNAME="$MAILER_USERNAME"
- MAILER_PASSWORD="$MAILER_PASSWORD"
-
- DOCX_TO_PDF_CONVERTER_URL="https://unoconv.logipro.com/unoconv/pdf"
-
- END
- $UpdateRight
- ###################################################
- # récupérer
- cd $PhoenixPath
- git fetch --all
- # Update depuis GIT
- git reset --hard origin/master
- $UpdateRight
- #sudo -u "$WebUser" $PHPpath ./bin/console cache:clear
- sudo -u "$WebUser" $PHPpath ./bin/console doctrine:schema:update --force
- sudo -u "$WebUser" $PHPpath ./bin/console phoenix:setup
- sudo -u "$WebUser" $PHPpath ./bin/console phoenix:thematic:init
- $UpdateRight
- ################################################### Création du .htaccess
- echo "/////////////////"
- echo "Création du .htaccess"
- htaccessPath=$PhoenixPath"/public/.htaccess"
-
- cat <<END >$htaccessPath
- #Voir configuration du vhost Apache sous ISPconfig
- END
- $UpdateRight
- ################################################### creation du script d'update
- echo "/////////////////"
- echo "Création du script d'update"
- updatescriptPath=$PhoenixPath"/bin/update.sh"
-
- #
- cat <<END >$updatescriptPath
- #!/bin/bash
- #===============================================================================
- # On se place a la racine
- cd $PhoenixPath
-
- # récupérer
- git fetch --all
-
- # Update depuis GIT
- git reset --hard origin/master
- chown -R $WebUser:$WebGroup $PhoenixPath
-
- # Update les dependances
- sudo -u $WebUser $COMPOSER_CACHE_DIR_Var $Php_Memory_Limit_Cmd $COMPOSERpath update --no-dev --optimize-autoloader
-
- # Vide le cache
- sudo -u $WebUser $PHPpath ./bin/console cache:clear
-
- # patchs avant la base de données
- sudo -u $WebUser $PHPpath ./bin/console phoenix:patch:before
-
- # Update le MCD
- sudo -u $WebUser $PHPpath ./bin/console doctrine:schema:update --force
-
- # Setup Phoenix
- sudo -u $WebUser $PHPpath ./bin/console phoenix:setup
-
- # migration des données vers la dernière version
- sudo -u $WebUser $PHPpath ./bin/console doctrine:migrations:migrate -n
-
- echo "Update terminée"
- END
-
- chmod +x $updatescriptPath
- $UpdateRight
- ################################################### création fichier des cron
- echo "/////////////////"
- echo "Création du fichier de cron"
- cronpath=$PhoenixPath"/bin/cron.sh"
- cat <<END >$cronpath
- #/bin/bash
- sudo -u $WebUser /usr/bin/php $PhoenixPath/bin/console phoenix:cron:minute
- END
- chmod +x $cronpath
- ################################################### Correction des droits
- $UpdateRight
-
- ################################################### Ajout dans crontab
- echo "/////////////////"
- echo "Ajout de la tache cron dans /etc/crontab"
- echo "### ""$PhoenixPath" >> /etc/crontab
- echo "* * * * * root /bin/bash ""$PhoenixPath""/bin/cron.sh >/dev/null 2>&1" >> /etc/crontab
- ###
- echo "Installation terminée"
|