From 31e55f05aee385058fed286ff23cce9b7d57bfdb Mon Sep 17 00:00:00 2001 From: poka Date: Wed, 20 May 2020 20:48:49 +0200 Subject: [PATCH] [Improve script reading, fix phpversion in template] --- .install/nextcloud/install.sh | 56 +++++++------ .install/nextcloud/templates/configure_php.sh | 84 +++++++++---------- 2 files changed, 71 insertions(+), 69 deletions(-) diff --git a/.install/nextcloud/install.sh b/.install/nextcloud/install.sh index 0de7b48..c7ba7a2 100755 --- a/.install/nextcloud/install.sh +++ b/.install/nextcloud/install.sh @@ -22,12 +22,12 @@ p2env=false # true si vous êtes dans un environnement p2p.legal ################# if [ "$EUID" -ne 0 ] - then echo "Veuillez executez ce script en root" + then echo -e "${c_red}Veuillez executez ce script en root$c_" exit 1 fi ## Atroport config -echo "Getting local hostname..." +echo -e "${c_yellow}Getting local hostname...$c_" nc_domain=$(/home/$YOU/.zen/astroport/zen/tools/nodename) templates="/home/$YOU/.zen/astroport/.install/nextcloud/templates" @@ -40,32 +40,32 @@ db_pass_root="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9~!@#$%^&*_-' | fold -w 32 | if [[ p2env == "true" ]]; then cd /nextcloud/templates/ else - [[ ! -e $templates ]] && echo "Erreur: Le dossier templates n'existe pas, installation impossible." && exit 1 + [[ ! -e $templates ]] && echo -e "${c_red}Erreur: Le dossier templates n'existe pas, installation impossible.$c_" && exit 1 cd $templates fi ## Update system packages apt install -y lsb-release apt-transport-https ca-certificates -PHPVERSION=$(ps auxf | grep php-fpm | grep -v -E 'color=auto|grep' | head -n 1 | grep -oP '(?<=\().*(?=\))' | awk -F '/' '{print $4}') +export PHPVERSION=$(ps auxf | grep php-fpm | grep -v -E 'color=auto|grep' | head -n 1 | grep -oP '(?<=\().*(?=\))' | awk -F '/' '{print $4}') apt update -y apt install nginx mariadb-server apt-transport-https curl gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop net-tools zip unzip curl ffmpeg ghostscript libfile-fcntllock-perl -y -systemctl start nginx || (echo "Erreur quelque part ..." && exit 1) -systemctl start mariadb || (echo "Erreur quelque part ..." && exit 1) -systemctl enable mariadb || (echo "Erreur quelque part ..." && exit 1) -systemctl enable nginx || (echo "Erreur quelque part ..." && exit 1) +systemctl start nginx || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) +systemctl start mariadb || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) +systemctl enable mariadb || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) +systemctl enable nginx || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) -echo " === Installing php ... ===" +echo -e "${c_yellow} === Installing php ... ===$c_" apt install php php-fpm php-xml php-curl php-gd php php-cgi php-cli php-zip php-mysql php-mbstring php-intl php-json php-bz2 php-ldap php-apcu imagemagick php-imagick php-smbclient -y -echo " === Configuring php ... ===" -[[ ! -e /etc/php/$PHPVERSION/cli/php.ini.bak ]] && (bash configure_php.sh || (echo "Erreur quelque part ..." && exit 1)) || echo "PHP déjà configuré, skip" +echo -e "${c_yellow} === Configuring php ... ===$c_" +[[ ! -e /etc/php/$PHPVERSION/cli/php.ini.bak ]] && (bash configure_php.sh || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1)) || echo "PHP déjà configuré, skip" -echo " === Configure MariaDB ===" +echo -e "${c_yellow} === Configure MariaDB ===$c_" configMariaManual() { - mysql_secure_installation || (echo "Erreur quelque part ..." && exit 1) + mysql_secure_installation || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) } configMariaAuto() { mysql -e "UPDATE mysql.user SET Password = PASSWORD('$db_pass_root') WHERE User = 'root'" @@ -79,11 +79,11 @@ configMariaAuto() { [[ $configMaria == "auto" ]] && configMariaAuto || configMariaManual [[ ! -e /etc/mysql/my.cnf.bak ]] && (mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak && cp my.cnf /etc/mysql/ && service mysql restart) || echo "MariaDB déjà configuré, skip" -echo " === Create and configure database... ===" +echo -e "${c_yellow} === Create and configure database... ===$c_" isDBCreate=$(mysql -e "show databases" | grep "nextcloud") [[ -z $isDBCreate ]] && mysql -e "CREATE DATABASE nextcloud;CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY \"$db_pass\";GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';FLUSH PRIVILEGES;ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" || echo "La base de donnée de nextcloud est déjà créé, skip" -echo " === Installing and configure Redis... ===" +echo -e "${c_yellow} === Installing and configure Redis... ===$c_" apt install redis-server php-redis -y [[ ! -e /etc/redis/redis.conf.bak ]] && cp /etc/redis/redis.conf /etc/redis/redis.conf.bak || echo "Redis est déjà configuré, skip" @@ -92,18 +92,18 @@ sed -i "s/redis.sock/redis-server.sock/" /etc/redis/redis.conf sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf sed -i "s/unixsocketperm 700/unixsocketperm 770/" /etc/redis/redis.conf sed -i "s/# maxclients 10000/maxclients 512/" /etc/redis/redis.conf -usermod -a -G redis www-data || (echo "Erreur quelque part ..." && exit 1) +usermod -a -G redis www-data || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) [[ ! -e /etc/sysctl.conf.bak ]] && cp /etc/sysctl.conf /etc/sysctl.conf.bak || echo "sysctl est déjà configuré, skip" sed -i '$avm.overcommit_memory = 1' /etc/sysctl.conf -service redis-server restart || (echo "Erreur quelque part ..." && exit 1) +service redis-server restart || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) -echo " === Installing NextCloud... ===" +echo -e "${c_yellow} === Installing NextCloud... ===$c_" if [[ ! -e /var/www/nextcloud ]]; then mkdir /var/www/nextcloud chown www-data:www-data /var/www/nextcloud - chmod 750 /var/www/nextcloud || (echo "Erreur quelque part ..." && exit 1) + chmod 750 /var/www/nextcloud || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) wget https://download.nextcloud.com/server/releases/latest.tar.bz2 tar -xjf latest.tar.bz2 -C /var/www && chown -R www-data:www-data /var/www/ && rm -f latest.tar.bz2 @@ -112,7 +112,7 @@ fi if [[ ! -e $data_dir ]]; then mkdir -p $data_dir chown www-data:www-data $data_dir - chmod 750 $data_dir || (echo "Erreur quelque part ..." && exit 1) + chmod 750 $data_dir || (echo -e "${c_red}Erreur quelque part ...$c_" && exit 1) fi ## Add local IP as secondary trust domain @@ -143,7 +143,7 @@ sudo -u www-data php /var/www/nextcloud/occ app:disable firstrunwizard sudo -u www-data php /var/www/nextcloud/occ app:enable admin_audit sudo -u www-data php /var/www/nextcloud/occ app:enable files_pdfviewer -echo " === Configure nginx ... ===" +echo -e "${c_yellow} === Configure nginx ... ===$c_" cp nextcloud.conf /etc/nginx/conf.d/ cp *optimization.conf /etc/nginx/ sed -i "s/NC_DOMAIN/$nc_domain/" /etc/nginx/conf.d/nextcloud.conf @@ -159,7 +159,7 @@ else ../ssl.sh ssl fi -echo " === Mise en place des scripts et crons ... ===" +echo -e "${c_yellow} === Mise en place des scripts et crons ... ===$c_" [[ ! -e /opt/scripts ]] && mkdir /opt/scripts cp nc_optimize.sh /opt/scripts/ cp upgrade.sh /opt/scripts/ @@ -171,11 +171,13 @@ alias occ='/opt/scripts/occ' [[ -z $(crontab -l | grep "/opt/scripts/optimize.sh") ]] && (crontab -l ; echo "5 1 * * * /opt/scripts/optimize.sh > /dev/null 2>&1") | crontab -u root - || echo "cron optimize ever set, skip" sudo -u www-data php /var/www/nextcloud/occ background:cron -echo " === Restarting services ... ===" -service php-fpm restart && service nginx restart && service mysql restart && service redis-server restart +echo -e "${c_yellow} === Restarting services ... ===$c_" +service php-fpm restart && service nginx restart && service mysql restart && service redis-server restart || (echo -e "${c_red}Impossible de reloader les service$c_" && exit 1) bash /opt/scripts/nc_optimize.sh -exit 0 - -## Ressource complète: https://www.c-rieger.de/nextcloud-installation-guide-ubuntu +echo -e "${c_green}Nextcloud a été installé avec succès !\nOuverture...$c_" +URL="http://$nc_domain:$nc_port" +[[ -x $BROWSER ]] && exec "$BROWSER" "$URL" > /dev/null +path=$(which xdg-open || which gnome-open) && exec "$path" "$URL" > /dev/null +echo -e "${c_yellow}Can't find browser$c_" diff --git a/.install/nextcloud/templates/configure_php.sh b/.install/nextcloud/templates/configure_php.sh index 2c34642..68ba77d 100755 --- a/.install/nextcloud/templates/configure_php.sh +++ b/.install/nextcloud/templates/configure_php.sh @@ -1,44 +1,44 @@ -cp /etc/php/7.3/fpm/pool.d/www.conf /etc/php/7.3/fpm/pool.d/www.conf.bak -cp /etc/php/7.3/cli/php.ini /etc/php/7.3/cli/php.ini.bak -cp /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.bak -cp /etc/php/7.3/fpm/php-fpm.conf /etc/php/7.3/fpm/php-fpm.conf.bak -sed -i "s/;env\[HOSTNAME\] = /env[HOSTNAME] = /" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/;env\[TMP\] = /env[TMP] = /" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/;env\[TMPDIR\] = /env[TMPDIR] = /" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/;env\[TEMP\] = /env[TEMP] = /" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/;env\[PATH\] = /env[PATH] = /" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/pm.max_children = .*/pm.max_children = 240/" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/pm.start_servers = .*/pm.start_servers = 20/" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/pm.min_spare_servers = .*/pm.min_spare_servers = 10/" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/pm.max_spare_servers = .*/pm.max_spare_servers = 20/" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/;pm.max_requests = 500/pm.max_requests = 500/" /etc/php/7.3/fpm/pool.d/www.conf -sed -i "s/output_buffering =.*/output_buffering = 'Off'/" /etc/php/7.3/cli/php.ini -sed -i "s/max_execution_time =.*/max_execution_time = 1800/" /etc/php/7.3/cli/php.ini -sed -i "s/max_input_time =.*/max_input_time = 3600/" /etc/php/7.3/cli/php.ini -sed -i "s/post_max_size =.*/post_max_size = 10240M/" /etc/php/7.3/cli/php.ini -sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/7.3/cli/php.ini -sed -i "s/max_file_uploads =.*/max_file_uploads = 100/" /etc/php/7.3/cli/php.ini -sed -i "s/;date.timezone.*/date.timezone = Europe\/\Paris/" /etc/php/7.3/cli/php.ini -## sed -i "s/;session.cookie_secure.*/session.cookie_secure = True/" /etc/php/7.3/cli/php.ini # Bug if not using ssl -sed -i "s/memory_limit = 128M/memory_limit = 512M/" /etc/php/7.3/fpm/php.ini -sed -i "s/output_buffering =.*/output_buffering = 'Off'/" /etc/php/7.3/fpm/php.ini -sed -i "s/max_execution_time =.*/max_execution_time = 1800/" /etc/php/7.3/fpm/php.ini -sed -i "s/max_input_time =.*/max_input_time = 3600/" /etc/php/7.3/fpm/php.ini -sed -i "s/post_max_size =.*/post_max_size = 10240M/" /etc/php/7.3/fpm/php.ini -sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/7.3/fpm/php.ini -sed -i "s/max_file_uploads =.*/max_file_uploads = 100/" /etc/php/7.3/fpm/php.ini -sed -i "s/;date.timezone.*/date.timezone = Europe\/\Paris/" /etc/php/7.3/fpm/php.ini -## sed -i "s/;session.cookie_secure.*/session.cookie_secure = True/" /etc/php/7.3/fpm/php.ini # Bug if not using ssl -sed -i "s/;opcache.enable=.*/opcache.enable=1/" /etc/php/7.3/fpm/php.ini -sed -i "s/;opcache.enable_cli=.*/opcache.enable_cli=1/" /etc/php/7.3/fpm/php.ini -sed -i "s/;opcache.memory_consumption=.*/opcache.memory_consumption=128/" /etc/php/7.3/fpm/php.ini -sed -i "s/;opcache.interned_strings_buffer=.*/opcache.interned_strings_buffer=8/" /etc/php/7.3/fpm/php.ini -sed -i "s/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=10000/" /etc/php/7.3/fpm/php.ini -sed -i "s/;opcache.revalidate_freq=.*/opcache.revalidate_freq=1/" /etc/php/7.3/fpm/php.ini -sed -i "s/;opcache.save_comments=.*/opcache.save_comments=1/" /etc/php/7.3/fpm/php.ini -sed -i "s/;emergency_restart_threshold =.*/emergency_restart_threshold = 10/" /etc/php/7.3/fpm/php-fpm.conf -sed -i "s/;emergency_restart_interval =.*/emergency_restart_interval = 1m/" /etc/php/7.3/fpm/php-fpm.conf -sed -i "s/;process_control_timeout =.*/process_control_timeout = 10s/" /etc/php/7.3/fpm/php-fpm.conf +cp /etc/php/$PHPVERSION/fpm/pool.d/www.conf /etc/php/$PHPVERSION/fpm/pool.d/www.conf.bak +cp /etc/php/$PHPVERSION/cli/php.ini /etc/php/$PHPVERSION/cli/php.ini.bak +cp /etc/php/$PHPVERSION/fpm/php.ini /etc/php/$PHPVERSION/fpm/php.ini.bak +cp /etc/php/$PHPVERSION/fpm/php-fpm.conf /etc/php/$PHPVERSION/fpm/php-fpm.conf.bak +sed -i "s/;env\[HOSTNAME\] = /env[HOSTNAME] = /" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/;env\[TMP\] = /env[TMP] = /" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/;env\[TMPDIR\] = /env[TMPDIR] = /" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/;env\[TEMP\] = /env[TEMP] = /" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/;env\[PATH\] = /env[PATH] = /" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/pm.max_children = .*/pm.max_children = 240/" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/pm.start_servers = .*/pm.start_servers = 20/" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/pm.min_spare_servers = .*/pm.min_spare_servers = 10/" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/pm.max_spare_servers = .*/pm.max_spare_servers = 20/" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/;pm.max_requests = 500/pm.max_requests = 500/" /etc/php/$PHPVERSION/fpm/pool.d/www.conf +sed -i "s/output_buffering =.*/output_buffering = 'Off'/" /etc/php/$PHPVERSION/cli/php.ini +sed -i "s/max_execution_time =.*/max_execution_time = 1800/" /etc/php/$PHPVERSION/cli/php.ini +sed -i "s/max_input_time =.*/max_input_time = 3600/" /etc/php/$PHPVERSION/cli/php.ini +sed -i "s/post_max_size =.*/post_max_size = 10240M/" /etc/php/$PHPVERSION/cli/php.ini +sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/$PHPVERSION/cli/php.ini +sed -i "s/max_file_uploads =.*/max_file_uploads = 100/" /etc/php/$PHPVERSION/cli/php.ini +sed -i "s/;date.timezone.*/date.timezone = Europe\/\Paris/" /etc/php/$PHPVERSION/cli/php.ini +## sed -i "s/;session.cookie_secure.*/session.cookie_secure = True/" /etc/php/$PHPVERSION/cli/php.ini # Bug if not using ssl +sed -i "s/memory_limit = 128M/memory_limit = 512M/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/output_buffering =.*/output_buffering = 'Off'/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/max_execution_time =.*/max_execution_time = 1800/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/max_input_time =.*/max_input_time = 3600/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/post_max_size =.*/post_max_size = 10240M/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/max_file_uploads =.*/max_file_uploads = 100/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;date.timezone.*/date.timezone = Europe\/\Paris/" /etc/php/$PHPVERSION/fpm/php.ini +## sed -i "s/;session.cookie_secure.*/session.cookie_secure = True/" /etc/php/$PHPVERSION/fpm/php.ini # Bug if not using ssl +sed -i "s/;opcache.enable=.*/opcache.enable=1/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;opcache.enable_cli=.*/opcache.enable_cli=1/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;opcache.memory_consumption=.*/opcache.memory_consumption=128/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;opcache.interned_strings_buffer=.*/opcache.interned_strings_buffer=8/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=10000/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;opcache.revalidate_freq=.*/opcache.revalidate_freq=1/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;opcache.save_comments=.*/opcache.save_comments=1/" /etc/php/$PHPVERSION/fpm/php.ini +sed -i "s/;emergency_restart_threshold =.*/emergency_restart_threshold = 10/" /etc/php/$PHPVERSION/fpm/php-fpm.conf +sed -i "s/;emergency_restart_interval =.*/emergency_restart_interval = 1m/" /etc/php/$PHPVERSION/fpm/php-fpm.conf +sed -i "s/;process_control_timeout =.*/process_control_timeout = 10s/" /etc/php/$PHPVERSION/fpm/php-fpm.conf sed -i "s/09,39.*/# &/" /etc/cron.d/php (crontab -l ; echo "09,39 * * * * /usr/lib/php/sessionclean 2>&1") | crontab -u root - cp /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.bak @@ -47,4 +47,4 @@ sed -i "s/rights\=\"none\" pattern\=\"EPI\"/rights\=\"read\|write\" pattern\=\"E sed -i "s/rights\=\"none\" pattern\=\"PDF\"/rights\=\"read\|write\" pattern\=\"PDF\"/" /etc/ImageMagick-6/policy.xml sed -i "s/rights\=\"none\" pattern\=\"XPS\"/rights\=\"read\|write\" pattern\=\"XPS\"/" /etc/ImageMagick-6/policy.xml -service php7.3-fpm restart && service nginx restart +service php$PHPVERSION-fpm restart && service nginx restart