Skip to content

Commit

Permalink
Merge pull request #1272 from MichaIng/patch-1
Browse files Browse the repository at this point in the history
DietPi-Software | ownCloud/Nextcloud: Fix/Polish Phase II
  • Loading branch information
Fourdee authored Dec 7, 2017
2 parents 7daa5c0 + a5f9cc4 commit bcc10f3
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 38 deletions.
8 changes: 4 additions & 4 deletions dietpi/dietpi-services
Original file line number Diff line number Diff line change
Expand Up @@ -433,8 +433,8 @@
# Control ownCloud and Nextcloud maintenance mode:
if [ "$INPUT_MODE" = "stop" ] || [ "$INPUT_MODE" = "restart" ]; then

grep -q "'maintenance' => true," /var/www/owncloud/config/config.php || occ maintenance:mode --on 2> /dev/null
grep -q "'maintenance' => true," /var/www/nextcloud/config/config.php || ncc maintenance:mode --on 2> /dev/null
grep -q "'maintenance' => false," /var/www/owncloud/config/config.php &>/dev/null && occ maintenance:mode --on 2> /dev/null
grep -q "'maintenance' => false," /var/www/nextcloud/config/config.php &>/dev/null && ncc maintenance:mode --on 2> /dev/null

fi

Expand All @@ -443,8 +443,8 @@
# Control ownCloud and Nextcloud maintenance mode:
if [ "$INPUT_MODE" = "restart" ] || [ "$INPUT_MODE" = "start" ]; then

grep -q "'maintenance' => false," /var/www/owncloud/config/config.php || occ maintenance:mode --off 2> /dev/null
grep -q "'maintenance' => false," /var/www/nextcloud/config/config.php || ncc maintenance:mode --off 2> /dev/null
grep -q "'maintenance' => true," /var/www/owncloud/config/config.php &>/dev/null && occ maintenance:mode --off 2> /dev/null
grep -q "'maintenance' => true," /var/www/nextcloud/config/config.php &>/dev/null && ncc maintenance:mode --off 2> /dev/null

fi

Expand Down
75 changes: 41 additions & 34 deletions dietpi/dietpi-software
Original file line number Diff line number Diff line change
Expand Up @@ -9124,7 +9124,7 @@ _EOF_
# Apache: https://doc.owncloud.org/server/latest/admin_manual/installation/source_installation.html#configure-apache-web-server
if (( ${aSOFTWARE_INSTALL_STATE[83]} >= 1 )); then

a2enmod rewrite headers env dir mime
a2enmod rewrite headers env dir mime &> /dev/null
local owncloud_conf='/etc/apache2/sites-available/owncloud.conf'
# Do not overwrite existing config.
if [ -f $owncloud_conf ]; then
Expand All @@ -9136,7 +9136,7 @@ _EOF_
sed -i "s/nextcloud/owncloud/g" $owncloud_conf
# OPCache adjustment is just forced by Nextcloud
sed -i "s/php_admin_value/#php_admin_value/" $owncloud_conf
a2ensite owncloud
a2ensite owncloud &> /dev/null

fi

Expand Down Expand Up @@ -9185,6 +9185,13 @@ _EOF_

fi

# Add occ command shortcut:
echo -e '#!/bin/bash\nsudo -u www-data php /var/www/owncloud/occ $*' > /usr/local/bin/occ
chmod +x /usr/local/bin/occ

# Adjusting config file:
local config_php="/var/www/owncloud/config/config.php"

# Terminal installation:
mkdir -p "$FP_DIETPI_USERDATA_DIRECTORY"/owncloud_data
Install_Apply_Permissions &> /dev/null
Expand All @@ -9197,12 +9204,9 @@ _EOF_
systemctl start mysql
# For MariaDB, temporary database admin user needs to be created, as 'root' uses unix_socket login, which cannot be accessed by sudo -u www-data.
mysql -uroot -p"$GLOBAL_PW" -e "grant all privileges on *.* to 'tmp_root'@'localhost' identified by '$GLOBAL_PW' with grant option"
sudo -u www-data php /var/www/owncloud/occ maintenance:install --no-interaction --database "mysql" --database-name "owncloud" --database-user "tmp_root" --database-pass "$GLOBAL_PW" --admin-user "$username" --admin-pass "$GLOBAL_PW" --data-dir "$FP_DIETPI_USERDATA_DIRECTORY/owncloud_data"
grep -q "'installed' => true," $config_php 2>/dev/null || occ maintenance:install --no-interaction --database "mysql" --database-name "owncloud" --database-user "tmp_root" --database-pass "$GLOBAL_PW" --admin-user "$username" --admin-pass "$GLOBAL_PW" --data-dir "$FP_DIETPI_USERDATA_DIRECTORY/owncloud_data"
mysql -uroot -p"$GLOBAL_PW" -e "drop user 'tmp_root'@'localhost'"

# Adjusting config file:
local config_php="/var/www/owncloud/config/config.php"

# Enable MySQL 4-byte support for new installations only, to prevent risky database conversion tasks:
if (( $oc_is_fresh == 1 )); then

Expand Down Expand Up @@ -9247,7 +9251,6 @@ _EOF_

fi


# ownCloud/Nextcloud ignores system wide php.ini settings. Use their own config.
# Set max upload size
local php_max_upload_size="$(( $(php -r 'print(PHP_INT_MAX);') / 1024 / 1024))M"
Expand All @@ -9257,13 +9260,13 @@ _EOF_
# Set memory limit: total / 4
local memory_limit_max="$(( $RAM_TOTAL / 4 ))M"
sed -i "/memory_limit=/c\memory_limit=$memory_limit_max" /var/www/owncloud/.user.ini

# Enable ownCloud background cron job:
crontab -u www-data -l 2>/dev/null | grep -q '/var/www/owncloud/cron.php' || echo "*/15 * * * * php /var/www/owncloud/cron.php" | crontab -u www-data -
sudo -u www-data php /var/www/owncloud/occ background:cron
# Add occ command shortcut:
grep -q '/var/www/owncloud/occ' /etc/bash.bashrc || sed -i "\|alias sudo='sudo '|a alias occ='sudo -u www-data php /var/www/owncloud/occ'" /etc/bash.bashrc
crontab -u www-data -l 2>/dev/null | grep -q '/var/www/owncloud/cron.php' || ( crontab -u www-data -l 2>/dev/null ; echo "*/15 * * * * php /var/www/owncloud/cron.php" ) | crontab -u www-data -
occ background:cron

# Enable maintenance mode to allow handling by dietpi-services:
grep -q "'maintenance' => true," $config_php &>/dev/null || occ maintenance:mode --on

fi

Expand Down Expand Up @@ -9295,7 +9298,7 @@ _EOF_
# Apache: https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html#apache-web-server-configuration
if (( ${aSOFTWARE_INSTALL_STATE[83]} >= 1 )); then

a2enmod rewrite headers env dir mime
a2enmod rewrite headers env dir mime &> /dev/null
local nextcloud_conf='/etc/apache2/sites-available/nextcloud.conf'
# Do not overwrite existing config.
if [ -f $nextcloud_conf ]; then
Expand All @@ -9304,7 +9307,7 @@ _EOF_

fi
cp /DietPi/dietpi/conf/apache.ownnextcloud.conf $nextcloud_conf
a2ensite nextcloud
a2ensite nextcloud &> /dev/null

fi

Expand Down Expand Up @@ -9353,6 +9356,13 @@ _EOF_

fi

# Add occ command shortcut, use 'ncc' as 'occ' is reserved for ownCloud:
echo -e '#!/bin/bash\nsudo -u www-data php /var/www/nextcloud/occ $*' > /usr/local/bin/ncc
chmod +x /usr/local/bin/ncc

# Adjusting config file:
local config_php="/var/www/nextcloud/config/config.php"

# Terminal installation:
mkdir -p "$FP_DIETPI_USERDATA_DIRECTORY"/nextcloud_data
Install_Apply_Permissions &> /dev/null
Expand All @@ -9365,12 +9375,9 @@ _EOF_
systemctl start mysql
# For MariaDB, temporary database admin user needs to be created, as 'root' uses unix_socket login, which cannot be accessed by sudo -u www-data.
mysql -uroot -p"$GLOBAL_PW" -e "grant all privileges on *.* to 'tmp_root'@'localhost' identified by '$GLOBAL_PW' with grant option"
sudo -u www-data php /var/www/nextcloud/occ maintenance:install --no-interaction --database "mysql" --database-name "nextcloud" --database-user "tmp_root" --database-pass "$GLOBAL_PW" --admin-user "$username" --admin-pass "$GLOBAL_PW" --data-dir "$FP_DIETPI_USERDATA_DIRECTORY/nextcloud_data"
grep -q "'installed' => true," $config_php 2>/dev/null || ncc maintenance:install --no-interaction --database "mysql" --database-name "nextcloud" --database-user "tmp_root" --database-pass "$GLOBAL_PW" --admin-user "$username" --admin-pass "$GLOBAL_PW" --data-dir "$FP_DIETPI_USERDATA_DIRECTORY/nextcloud_data"
mysql -uroot -p"$GLOBAL_PW" -e "drop user 'tmp_root'@'localhost'"

# Adjusting config file:
local config_php="/var/www/nextcloud/config/config.php"

# Enable MySQL 4-byte support for new installations only, to prevent risky database conversion tasks:
if (( $nc_is_fresh == 1 )); then

Expand Down Expand Up @@ -9424,11 +9431,11 @@ _EOF_
sed -i "/memory_limit=/c\memory_limit=$memory_limit_max" /var/www/nextcloud/.user.ini

# Enable Nextcloud background cron job:
crontab -u www-data -l 2>/dev/null | grep -q '/var/www/nextcloud/cron.php' || echo "*/15 * * * * php /var/www/nextcloud/cron.php" | crontab -u www-data -
sudo -u www-data php /var/www/nextcloud/occ background:cron
# Add occ command shortcut, use 'ncc' as 'occ' is reserved for ownCloud:
grep -q '/var/www/nextcloud/occ' /etc/bash.bashrc || sed -i "\|alias sudo='sudo '|a alias ncc='sudo -u www-data php /var/www/nextcloud/occ'" >> /etc/bash.bashrc
crontab -u www-data -l 2>/dev/null | grep -q '/var/www/nextcloud/cron.php' || ( crontab -u www-data -l 2>/dev/null ; echo "*/15 * * * * php /var/www/nextcloud/cron.php" ) | crontab -u www-data -
ncc background:cron

# Enable maintenance mode to allow handling by dietpi-services:
grep -q "'maintenance' => true," $config_php &>/dev/null || ncc maintenance:mode --on

fi

Expand Down Expand Up @@ -13218,45 +13225,45 @@ _EOF_

elif (( $1 == 47 )); then
#ownCloud
# Remove occ command alias
sed -i '\|/var/www/owncloud/occ|d' /etc/bash.bashrc
# Remove occ command binary
rm /usr/local/bin/occ
# Remove background cron job
crontab -u www-data -l | grep -v '/var/www/owncloud/cron.php' | crontab -u www-data -
# Disable and remove webservier configs
a2dissite owncloud 2>/dev/null
rm /etc/apache2/sites-available/owncloud.conf 2>/dev/null
rm /etc/nginx/sites-dietpi/owncloud.config 2>/dev/null
# Purge APT package
AGP owncloud-files owncloud owncloud-deps
# Remove ownCloud installation folder
rm -R /var/www/owncloud
# Drop MySQL/MariaDB user and database
systemctl start mysql
mysql -uroot -p"$GLOBAL_PW" -e "drop user $(grep -m1 "'dbuser'" /var/www/owncloud/config/config.php | awk '{print $3}' | sed "s/,//")@$(grep -m1 "'dbhost'" /var/www/owncloud/config/config.php | awk '{print $3}' | sed "s/,//")"
mysql -uroot -p"$GLOBAL_PW" -e "drop user $(grep -m1 "'dbuser'" /var/www/owncloud/config/config.php | awk '{print $3}' | sed "s/,//")"
mysqldump --lock-tables -uroot -p"$GLOBAL_PW" owncloud > "$FP_DIETPI_USERDATA_DIRECTORY"/owncloud_data/mysql_backup.sql
mysqladmin -u root -p"$GLOBAL_PW" drop owncloud -f
# Purge APT package
AGP owncloud-files owncloud owncloud-deps
# Remove ownCloud installation folder
rm -R /var/www/owncloud
# Remove ownCloud repo
rm /etc/apt/sources.list.d/owncloud.list 2> /dev/null

elif (( $1 == 114 )); then
#Nextcloud
# Remove occ command alias
sed -i '\|/var/www/nextcloud/occ|d' /etc/bash.bashrc
# Remove occ command binary
rm /usr/local/bin/ncc
# Remove background cron job
crontab -u www-data -l | grep -v '/var/www/nextcloud/cron.php' | crontab -u www-data -
# Disable and remove webservier configs
a2dissite nextcloud 2>/dev/null
rm /etc/apache2/sites-available/nextcloud.conf 2>/dev/null
rm /etc/nginx/sites-dietpi/nextcloud.config 2>/dev/null
# Remove Nextcloud installation folder
rm -R /var/www/nextcloud
# Drop MySQL/MariaDB user and database
systemctl start mysql
mysql -uroot -p"$GLOBAL_PW" -e "drop user $(grep -m1 "'dbuser'" /var/www/nextcloud/config/config.php | awk '{print $3}' | sed "s/,//")@$(grep -m1 "'dbhost'" /var/www/nextcloud/config/config.php | awk '{print $3}' | sed "s/,//")"
mysql -uroot -p"$GLOBAL_PW" -e "drop user $(grep -m1 "'dbuser'" /var/www/nextcloud/config/config.php | awk '{print $3}' | sed "s/,//")"
mysqldump --lock-tables -uroot -p"$GLOBAL_PW" nextcloud > "$FP_DIETPI_USERDATA_DIRECTORY"/nextcloud_data/mysql_backup.sql
mysqladmin -u root -p"$GLOBAL_PW" drop nextcloud -f
# Remove Nextcloud installation folder
rm -R /var/www/nextcloud

elif (( $1 == 115 )); then

Expand Down
4 changes: 4 additions & 0 deletions dietpi/patch_file
Original file line number Diff line number Diff line change
Expand Up @@ -2788,6 +2788,10 @@ _EOF_
update-rc.d ympd remove &> /dev/null # switch to systemD
rm /etc/init.d/ympd &> /dev/null # switch to systemD

# Enable ownCloud/Nextcloud maintenance mode before reinstall:
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on &> /dev/null
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on &> /dev/null

/DietPi/dietpi/dietpi-software reinstall 159 128 114 47 36 32
#-------------------------------------------------------------------------------
#RPi update DietPi kernel:
Expand Down

0 comments on commit bcc10f3

Please sign in to comment.