From 1e98c8e93ccb58fe0dc7bd130d3d4843458c1bf7 Mon Sep 17 00:00:00 2001 From: nachoparker Date: Sun, 23 Jul 2017 19:56:06 +0200 Subject: [PATCH] restart HTTPd delayed on the bg, so it does not kill AJAX response --- etc/nextcloudpi-config.d/modsecurity.sh | 9 +++++---- etc/nextcloudpi-config.d/nc-database.sh | 9 ++++++--- etc/nextcloudpi-config.d/nc-datadir.sh | 7 ++++--- etc/nextcloudpi-config.d/nc-httpsonly.sh | 5 ++++- etc/nextcloudpi-config.d/nc-init.sh | 4 ---- etc/nextcloudpi-config.d/nc-nextcloud.sh | 4 +--- etc/nextcloudpi-config.d/nc-restore.sh | 5 ++--- 7 files changed, 22 insertions(+), 21 deletions(-) diff --git a/etc/nextcloudpi-config.d/modsecurity.sh b/etc/nextcloudpi-config.d/modsecurity.sh index 70d07aff1..14d091cf3 100644 --- a/etc/nextcloudpi-config.d/modsecurity.sh +++ b/etc/nextcloudpi-config.d/modsecurity.sh @@ -76,8 +76,7 @@ a basic NextCloud installation. If a new App does not work disable it" \ configure() { - - cat >> /etc/modsecurity/modsecurity_crs_99_whitelist.conf < /etc/modsecurity/modsecurity_crs_99_whitelist.conf < # VIDEOS SecRuleRemoveById 958291 # Range Header Checks @@ -120,8 +119,10 @@ EOF [[ $ACTIVE_ == "yes" ]] && local STATE=On || local STATE=Off sed -i "s|SecRuleEngine .*|SecRuleEngine $STATE|" /etc/modsecurity/modsecurity.conf - a2enmod security2 - service apache2 restart + [[ $ACTIVE_ == "yes" ]] && a2enmod security2 || a2dismod security2 + + # delayed in bg so it does not kill the connection, and we get AJAX response + ( sleep 2 && systemctl restart apache2 ) &>/dev/null & } cleanup() diff --git a/etc/nextcloudpi-config.d/nc-database.sh b/etc/nextcloudpi-config.d/nc-database.sh index 8015e80a8..a4b550cf5 100644 --- a/etc/nextcloudpi-config.d/nc-database.sh +++ b/etc/nextcloudpi-config.d/nc-database.sh @@ -57,13 +57,16 @@ configure() [[ $( stat -fc%d / ) == $( stat -fc%d $BASEDIR ) ]] && \ echo -e "INFO: moving database to another place in the same SD card\nIf you want to use an external mount, make sure it is properly set up" - service apache2 stop - service mysql stop + cd /var/www/nextcloud + sudo -u www-data php occ maintenance:mode --on + echo "moving database to $DBDIR_..." + service mysql stop mv $SRCDIR "$DBDIR_" || return 1 sed -i "s|^datadir.*|datadir = $DBDIR_|" /etc/mysql/mariadb.conf.d/50-server.cnf + service mysql start - service mysql start && service apache2 start + sudo -u www-data php occ maintenance:mode --off } install(){ :; } diff --git a/etc/nextcloudpi-config.d/nc-datadir.sh b/etc/nextcloudpi-config.d/nc-datadir.sh index 6b8d9237a..7732aea20 100644 --- a/etc/nextcloudpi-config.d/nc-datadir.sh +++ b/etc/nextcloudpi-config.d/nc-datadir.sh @@ -57,8 +57,10 @@ configure() echo -e "INFO: moving data dir to another place in the same SD card\nIf you want to use an external mount, make sure it is properly set up" ## COPY - service apache2 stop + cd /var/www/nextcloud + sudo -u www-data php occ maintenance:mode --on + echo "moving data dir to $DATADIR_..." cp -ra "$SRCDIR" "$DATADIR_" || return 1 # tmp upload dir @@ -70,9 +72,8 @@ configure() sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR_/.opcache|" /etc/php/7.0/mods-available/opcache.ini # datadir - cd /var/www/nextcloud sudo -u www-data php occ config:system:set datadirectory --value=$DATADIR_ - service apache2 start + sudo -u www-data php occ maintenance:mode --off } install() { :; } diff --git a/etc/nextcloudpi-config.d/nc-httpsonly.sh b/etc/nextcloudpi-config.d/nc-httpsonly.sh index 1ee9e7f01..7986e1416 100644 --- a/etc/nextcloudpi-config.d/nc-httpsonly.sh +++ b/etc/nextcloudpi-config.d/nc-httpsonly.sh @@ -22,7 +22,10 @@ configure() { [[ $ACTIVE_ == "no" ]] && local OPT=Off || local OPT=On sed -i "s|RewriteEngine .*|RewriteEngine $OPT|" /etc/apache2/sites-available/000-default.conf - service apache2 reload + echo "Forcing HTTPS $OPT" + + # delayed in bg so it does not kill the connection, and we get AJAX response + ( sleep 2 && systemctl restart apache2 ) &>/dev/null & } install() { :; } diff --git a/etc/nextcloudpi-config.d/nc-init.sh b/etc/nextcloudpi-config.d/nc-init.sh index e35b33675..56fad067a 100644 --- a/etc/nextcloudpi-config.d/nc-init.sh +++ b/etc/nextcloudpi-config.d/nc-init.sh @@ -35,8 +35,6 @@ show_info() configure() { - systemctl stop apache2; - ## RE-CREATE DATABASE TABLE echo "Setting up database..." @@ -81,8 +79,6 @@ EOF # Default trusted domain ( only from nextcloudpi-config ) test -f /usr/local/bin/nextcloud-domain.sh && bash /usr/local/bin/nextcloud-domain.sh - - systemctl start apache2; } install(){ :; } diff --git a/etc/nextcloudpi-config.d/nc-nextcloud.sh b/etc/nextcloudpi-config.d/nc-nextcloud.sh index 385097cb8..d1c8cd735 100644 --- a/etc/nextcloudpi-config.d/nc-nextcloud.sh +++ b/etc/nextcloudpi-config.d/nc-nextcloud.sh @@ -46,8 +46,6 @@ install() { :; } configure() { - systemctl stop apache2; - ## RE-CREATE DATABASE TABLE # wait for mariadb @@ -174,7 +172,7 @@ EOF crontab -u www-data /tmp/crontab_http rm /tmp/crontab_http - systemctl start apache2; + systemctl start apache2 echo "Don't forget to run nc-init" } diff --git a/etc/nextcloudpi-config.d/nc-restore.sh b/etc/nextcloudpi-config.d/nc-restore.sh index 8adea3719..e1d6097c8 100644 --- a/etc/nextcloudpi-config.d/nc-restore.sh +++ b/etc/nextcloudpi-config.d/nc-restore.sh @@ -44,7 +44,8 @@ configure() [ -d $BASEDIR_ ] || { echo -e "$BASEDIR_ not found"; return 1; } [ -d $BASEDIR_/nextcloud ] && { echo -e "WARNING: overwriting old instance"; } - service apache2 stop + cd $BASEDIR_/nextcloud + sudo -u www-data php occ maintenance:mode --on # RESTORE FILES echo -e "restore files..." @@ -69,8 +70,6 @@ EOF cd $BASEDIR_/nextcloud sudo -u www-data php occ maintenance:mode --off - - service apache2 start } install() { :; }