Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DietPi-Software | ownCloud/Nextcloud: Fix/Polish Phase II #1272

Merged
merged 11 commits into from
Dec 7, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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