Initial import
This commit is contained in:
commit
da56286707
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/conf/*.conf
|
||||||
|
*.swp
|
318
DOC/update_owncloud.txt
Normal file
318
DOC/update_owncloud.txt
Normal file
@ -0,0 +1,318 @@
|
|||||||
|
## --- ownCloud TEST O.OPEN --
|
||||||
|
## -
|
||||||
|
VERSION=9.1.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/owncloud-test.oopen.de
|
||||||
|
|
||||||
|
DATABASE=ownCloud_test
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud TEST O.OPEN --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud RLS --
|
||||||
|
## -
|
||||||
|
VERSION=9.1.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents delete_confirmation activity gallery notes"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cloud-rls.oopen.de
|
||||||
|
|
||||||
|
DATABASE=cloud_rls
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud RLS --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud O.OPEN --
|
||||||
|
## -
|
||||||
|
VERSION=9.1.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation gallery activity"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/owncloud.oopen.de
|
||||||
|
|
||||||
|
DATABASE=ownCloud
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud O.OPEN --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud cloud-giz-test.warenform.de --
|
||||||
|
## -
|
||||||
|
VERSION=9.1.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents delete_confirmation gallery activity notes"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cloud-giz-test.warenform.de
|
||||||
|
|
||||||
|
DATABASE=cloud_giz_test
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud cloud-giz-test.warenform.de --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud cloud.skills-green-economy.org --
|
||||||
|
## -
|
||||||
|
VERSION=9.1.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents delete_confirmation gallery activity notes"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cloud.skills-green-economy.org
|
||||||
|
|
||||||
|
DATABASE=cloud_giz
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende cloud.skills-green-economy.org --
|
||||||
|
|
||||||
|
|
||||||
|
## -----------------------------
|
||||||
|
|
||||||
|
CURRENT_INSTALL_DIR=`realpath ${WEB_BASE_DIR}/owncloud`
|
||||||
|
CURRENT_DATA_DIR=`realpath ${WEB_BASE_DIR}/data`
|
||||||
|
PRIOR_VERSION=`basename $CURRENT_INSTALL_DIR | cut -d"-" -f2`
|
||||||
|
|
||||||
|
DATA_DIR=${WEB_BASE_DIR}/data-${VERSION}
|
||||||
|
INSTALL_DIR=${WEB_BASE_DIR}/owncloud-${VERSION}
|
||||||
|
|
||||||
|
mkdir -p ${SRC_BASE_DIR}
|
||||||
|
|
||||||
|
## - downloud owncloud source
|
||||||
|
## -
|
||||||
|
## - owncloud-5.0.12.tar.bz2
|
||||||
|
## -
|
||||||
|
cd $SRC_BASE_DIR
|
||||||
|
if [ -f "${SRC_BASE_DIR}/owncloud-${VERSION}.tar.bz2" ]; then
|
||||||
|
rm ${SRC_BASE_DIR}/owncloud-${VERSION}.tar.bz2
|
||||||
|
fi
|
||||||
|
wget -4 https://download.owncloud.org/community/owncloud-${VERSION}.tar.bz2
|
||||||
|
|
||||||
|
|
||||||
|
## - Entpacken
|
||||||
|
## -
|
||||||
|
if [ -d "${SRC_BASE_DIR}/owncloud" ]; then
|
||||||
|
rm -rf ${SRC_BASE_DIR}/owncloud
|
||||||
|
fi
|
||||||
|
bunzip2 < owncloud-${VERSION}.tar.bz2 | tar -xf -
|
||||||
|
|
||||||
|
|
||||||
|
cd $WEB_BASE_DIR
|
||||||
|
|
||||||
|
|
||||||
|
## - Stop Cronjob:
|
||||||
|
## - */5 * * * * /root/bin/check_webservice_load.sh
|
||||||
|
|
||||||
|
## - Stop apache webservice
|
||||||
|
## -
|
||||||
|
/etc/init.d/apache2 stop
|
||||||
|
## - Alternativly enable maintenance mode
|
||||||
|
## -
|
||||||
|
#su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
## - Backup Database
|
||||||
|
## -
|
||||||
|
mysqldump $MYSQL_CREDENTIALS --opt $DATABASE > \
|
||||||
|
${WEB_BASE_DIR}/${DATABASE}-v${PRIOR_VERSION}.`date +"%Y-%m-%d-%H%M"`.sql
|
||||||
|
|
||||||
|
|
||||||
|
## - ## - Deactivate third party apps
|
||||||
|
## - ## -
|
||||||
|
## - for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
## - #su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - done
|
||||||
|
for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
#su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
## - Erstelle Web-Verzeichnis für die neue OwnCloud Version
|
||||||
|
## -
|
||||||
|
mkdir ${WEB_BASE_DIR}/owncloud-${VERSION}
|
||||||
|
|
||||||
|
## - Kopiere Verzeichnis "config" in das neue Installationsverzeichnis
|
||||||
|
## -
|
||||||
|
cp -a ${CURRENT_INSTALL_DIR}/config $INSTALL_DIR/
|
||||||
|
|
||||||
|
## - Synchronisiere neues Installationsverzeichnis mit
|
||||||
|
## - den extrahierten Dateien
|
||||||
|
## -
|
||||||
|
rsync -a ${SRC_BASE_DIR}/owncloud/ ${INSTALL_DIR}/
|
||||||
|
|
||||||
|
touch -t `date +%Y%m%d%H%M.%S` ${INSTALL_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
## - Kopiere Daten Verzeichnis (hardlinks - harte Dateiverweise)
|
||||||
|
## -
|
||||||
|
cp -al ${CURRENT_DATA_DIR} $DATA_DIR
|
||||||
|
|
||||||
|
|
||||||
|
## - Set Permissions
|
||||||
|
## -
|
||||||
|
find $INSTALL_DIR -type f -print0 | xargs -0 chmod 0640
|
||||||
|
find $INSTALL_DIR -type d -print0 | xargs -0 chmod 0750
|
||||||
|
|
||||||
|
find ${DATA_DIR}/ -type f -print0 | xargs -0 chmod 0640
|
||||||
|
find ${DATA_DIR}/ -type d -print0 | xargs -0 chmod 0750
|
||||||
|
|
||||||
|
chown -R root:${HTTP_GROUP} ${INSTALL_DIR}/
|
||||||
|
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/apps
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/config
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/themes
|
||||||
|
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}
|
||||||
|
|
||||||
|
#chown -R root:${HTTP_GROUP} ${INSTALL_DIR}/.htaccess
|
||||||
|
#chown -R root:${HTTP_GROUP} ${DATA_DIR}/.htaccess
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/.htaccess
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}/.htaccess
|
||||||
|
|
||||||
|
mkdir -p ${WEB_BASE_DIR}/sessions
|
||||||
|
chown root:${HTTP_GROUP} ${WEB_BASE_DIR}/sessions
|
||||||
|
chmod 2775 ${WEB_BASE_DIR}/sessions
|
||||||
|
|
||||||
|
mkdir -p ${WEB_BASE_DIR}/tmp
|
||||||
|
chown root:${HTTP_GROUP} ${WEB_BASE_DIR}/tmp
|
||||||
|
chmod 2775 ${WEB_BASE_DIR}/tmp
|
||||||
|
|
||||||
|
|
||||||
|
#find ${DATA_DIR} -maxdepth 2 -mindepth 1 -type d -name files_encryption -exec rm -rf {} \;
|
||||||
|
#find ${DATA_DIR} -maxdepth 2 -mindepth 1 -type d -name lucene_index -exec rm -rf {} \;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Setze Symlink data verzeichnis
|
||||||
|
## -
|
||||||
|
rm ${WEB_BASE_DIR}/data
|
||||||
|
ln -s data-${VERSION} ${WEB_BASE_DIR}/data
|
||||||
|
|
||||||
|
|
||||||
|
## - Setze symlink (documentroot) auf das neue Installationsverzeichnis
|
||||||
|
## -
|
||||||
|
rm ${WEB_BASE_DIR}/owncloud
|
||||||
|
ln -s owncloud-${VERSION} ${WEB_BASE_DIR}/owncloud
|
||||||
|
|
||||||
|
## - Upgrade
|
||||||
|
## -
|
||||||
|
## - Note!!
|
||||||
|
## - this command probably disables 3rd-party aps
|
||||||
|
## -
|
||||||
|
|
||||||
|
#su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
#su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ upgrade" -s /bin/bash $HTTP_USER
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ upgrade" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
# =====
|
||||||
|
# - Upgrade from 9.1.5 to 9.1.6
|
||||||
|
# -
|
||||||
|
# - Calendar will fail
|
||||||
|
# -
|
||||||
|
# =====
|
||||||
|
|
||||||
|
See: https://github.com/owncloud/calendar/issues/800
|
||||||
|
|
||||||
|
Add line
|
||||||
|
'appstoreurl' => 'https://marketplace.owncloud.com/api/v0',
|
||||||
|
to config.php
|
||||||
|
|
||||||
|
delete Calendar 1.4.1
|
||||||
|
add calendar 1.4.2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Start Apache Webserver
|
||||||
|
## -
|
||||||
|
/etc/init.d/apache2 start
|
||||||
|
|
||||||
|
## - Start Cronjob:
|
||||||
|
## - */5 * * * * /root/bin/check_webservice_load.sh
|
||||||
|
|
||||||
|
|
||||||
|
## - ## - Enable third party apps
|
||||||
|
## - ## -
|
||||||
|
## - for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
## - su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - done
|
||||||
|
for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
## - Check Application "Notes"
|
||||||
|
## -
|
||||||
|
## - If not working as exspected, install app from git repositors
|
||||||
|
## -
|
||||||
|
## - cd ${WEB_BASE_DIR}/htdocs/apps
|
||||||
|
## - su $HTTP_USER -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on"
|
||||||
|
## - mv notes notes.ORIG
|
||||||
|
## - git clone https://github.com/owncloud/notes.git
|
||||||
|
## - su $HTTP_USER -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off"
|
||||||
|
## -
|
||||||
|
## - Upgrade from git-repository:
|
||||||
|
## - cd ${WEB_BASE_DIR}/htdocs/apps
|
||||||
|
## - cd notes
|
||||||
|
## - git pull --rebase origin master
|
||||||
|
## -
|
||||||
|
|
||||||
|
cd ${WEB_BASE_DIR}/htdocs/apps
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER
|
||||||
|
mv notes notes.ORIG
|
||||||
|
git clone https://github.com/owncloud/notes.git
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html
|
||||||
|
|
||||||
|
while IFS= read -r -d '' n; do
|
||||||
|
#if [[ "$n" == "mb" ]]; then
|
||||||
|
# continue
|
||||||
|
#fi
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --path `basename $n`" -s /bin/bash $HTTP_USER
|
||||||
|
done < <(find $WEB_BASE_DIR/data/ -mindepth 1 -maxdepth 1 -type d -print0)
|
||||||
|
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --all" -s /bin/bash $HTTP_USER
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:repair" -s /bin/bash $HTTP_USER
|
270
DOC/update_owncloud_to_nextcloud.txt
Normal file
270
DOC/update_owncloud_to_nextcloud.txt
Normal file
@ -0,0 +1,270 @@
|
|||||||
|
## --- ownCloud TEST O.OPEN --
|
||||||
|
## -
|
||||||
|
VERSION=12.0.0
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation richdocuments"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/nextcloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/owncloud-test.oopen.de
|
||||||
|
|
||||||
|
DATABASE=ownCloud_test
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud TEST O.OPEN --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud RLS --
|
||||||
|
## -
|
||||||
|
VERSION=10.0.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation richdocuments"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/nextcloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cloud-rls.oopen.de
|
||||||
|
|
||||||
|
DATABASE=cloud_rls
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud RLS --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud O.OPEN --
|
||||||
|
## -
|
||||||
|
VERSION=10.0.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation richdocuments"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/nextcloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/owncloud.oopen.de
|
||||||
|
|
||||||
|
DATABASE=ownCloud
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud O.OPEN --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud cloud-giz-test.warenform.de --
|
||||||
|
## -
|
||||||
|
VERSION=10.0.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents delete_confirmation gallery activity notes"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/nextcloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cloud-giz-test.warenform.de
|
||||||
|
|
||||||
|
DATABASE=cloud_giz_test
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende ownCloud cloud-giz-test.warenform.de --
|
||||||
|
|
||||||
|
|
||||||
|
## --- ownCloud cloud.skills-green-economy.org --
|
||||||
|
## -
|
||||||
|
VERSION=9.1.5
|
||||||
|
|
||||||
|
THIRD_PARTY_APPS="calendar contacts documents delete_confirmation gallery activity notes"
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cloud.skills-green-economy.org
|
||||||
|
|
||||||
|
DATABASE=cloud_giz
|
||||||
|
#DB_USER=backup
|
||||||
|
#DB_PASSWORD=backup
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
## -
|
||||||
|
## --- Ende cloud.skills-green-economy.org --
|
||||||
|
|
||||||
|
|
||||||
|
## -----------------------------
|
||||||
|
|
||||||
|
CURRENT_INSTALL_DIR=`realpath ${WEB_BASE_DIR}/owncloud`
|
||||||
|
CURRENT_DATA_DIR=`realpath ${WEB_BASE_DIR}/data`
|
||||||
|
PRIOR_VERSION=`basename $CURRENT_INSTALL_DIR | cut -d"-" -f2`
|
||||||
|
|
||||||
|
DATA_DIR=${WEB_BASE_DIR}/data-${VERSION}
|
||||||
|
INSTALL_DIR=${WEB_BASE_DIR}/nextcloud-${VERSION}
|
||||||
|
|
||||||
|
mkdir -p ${SRC_BASE_DIR}
|
||||||
|
|
||||||
|
## - downloud owncloud source
|
||||||
|
## -
|
||||||
|
## - owncloud-5.0.12.tar.bz2
|
||||||
|
## -
|
||||||
|
cd $SRC_BASE_DIR
|
||||||
|
if [ -f "${SRC_BASE_DIR}/nextcloud-${VERSION}.tar.bz2" ]; then
|
||||||
|
rm ${SRC_BASE_DIR}/nextcloud-${VERSION}.tar.bz2
|
||||||
|
fi
|
||||||
|
wget https://download.nextcloud.com/server/releases/nextcloud-${VERSION}.tar.bz2
|
||||||
|
|
||||||
|
|
||||||
|
## - Entpacken
|
||||||
|
## -
|
||||||
|
if [ -d "${SRC_BASE_DIR}/nextcloud" ]; then
|
||||||
|
rm -rf ${SRC_BASE_DIR}/nextcloud
|
||||||
|
fi
|
||||||
|
bunzip2 < nextcloud-${VERSION}.tar.bz2 | tar -xf -
|
||||||
|
|
||||||
|
|
||||||
|
cd $WEB_BASE_DIR
|
||||||
|
|
||||||
|
|
||||||
|
## - Stop Cronjob:
|
||||||
|
## - */5 * * * * /root/bin/check_webservice_load.sh
|
||||||
|
|
||||||
|
## - Stop apache webservice
|
||||||
|
## -
|
||||||
|
/etc/init.d/apache2 stop
|
||||||
|
## - Alternativly enable maintenance mode
|
||||||
|
## -
|
||||||
|
#su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
## - Backup Database
|
||||||
|
## -
|
||||||
|
mysqldump $MYSQL_CREDENTIALS --opt $DATABASE > \
|
||||||
|
${WEB_BASE_DIR}/${DATABASE}-v${PRIOR_VERSION}.`date +"%Y-%m-%d-%H%M"`.sql
|
||||||
|
|
||||||
|
|
||||||
|
## - ## - Deactivate third party apps
|
||||||
|
## - ## -
|
||||||
|
## - for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
## - #su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - done
|
||||||
|
for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
#su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
## - Erstelle Web-Verzeichnis für die neue OwnCloud Version
|
||||||
|
## -
|
||||||
|
mkdir ${WEB_BASE_DIR}/nextcloud-${VERSION}
|
||||||
|
|
||||||
|
## - Kopiere Verzeichnis "config" in das neue Installationsverzeichnis
|
||||||
|
## -
|
||||||
|
cp -a ${CURRENT_INSTALL_DIR}/config $INSTALL_DIR/
|
||||||
|
|
||||||
|
## - Synchronisiere neues Installationsverzeichnis mit
|
||||||
|
## - den extrahierten Dateien
|
||||||
|
## -
|
||||||
|
rsync -a ${SRC_BASE_DIR}/nextcloud/ ${INSTALL_DIR}/
|
||||||
|
|
||||||
|
touch -t `date +%Y%m%d%H%M.%S` ${INSTALL_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
## - Kopiere Daten Verzeichnis (hardlinks - harte Dateiverweise)
|
||||||
|
## -
|
||||||
|
cp -al ${CURRENT_DATA_DIR} $DATA_DIR
|
||||||
|
|
||||||
|
|
||||||
|
## - Set Permissions
|
||||||
|
## -
|
||||||
|
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
## - Setze Symlink data verzeichnis
|
||||||
|
## -
|
||||||
|
rm ${WEB_BASE_DIR}/data
|
||||||
|
ln -s data-${VERSION} ${WEB_BASE_DIR}/data
|
||||||
|
|
||||||
|
|
||||||
|
## - Setze symlink (documentroot) auf das neue Installationsverzeichnis
|
||||||
|
## -
|
||||||
|
rm ${WEB_BASE_DIR}/nextcloud
|
||||||
|
ln -s nextcloud-${VERSION} ${WEB_BASE_DIR}/nextcloud
|
||||||
|
|
||||||
|
## - Upgrade
|
||||||
|
## -
|
||||||
|
## - Note!!
|
||||||
|
## - this command probably disables 3rd-party aps
|
||||||
|
## -
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ upgrade" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
#su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
## - Start Apache Webserver
|
||||||
|
## -
|
||||||
|
/etc/init.d/apache2 start
|
||||||
|
|
||||||
|
## - Start Cronjob:
|
||||||
|
## - */5 * * * * /root/bin/check_webservice_load.sh
|
||||||
|
|
||||||
|
|
||||||
|
## - ## - Enable third party apps
|
||||||
|
## - ## -
|
||||||
|
## - for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
## - su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - done
|
||||||
|
for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
## - Check Application "Notes"
|
||||||
|
## -
|
||||||
|
## - If not working as exspected, install app from git repositors
|
||||||
|
## -
|
||||||
|
## - cd ${WEB_BASE_DIR}/htdocs/apps
|
||||||
|
## - su $HTTP_USER -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on"
|
||||||
|
## - mv notes notes.ORIG
|
||||||
|
## - git clone https://github.com/owncloud/notes.git
|
||||||
|
## - su $HTTP_USER -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off"
|
||||||
|
## -
|
||||||
|
## - Upgrade from git-repository:
|
||||||
|
## - cd ${WEB_BASE_DIR}/htdocs/apps
|
||||||
|
## - cd notes
|
||||||
|
## - git pull --rebase origin master
|
||||||
|
## -
|
||||||
|
|
||||||
|
cd ${WEB_BASE_DIR}/htdocs/apps
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER
|
||||||
|
mv notes notes.ORIG
|
||||||
|
git clone https://github.com/owncloud/notes.git
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html
|
||||||
|
|
||||||
|
while IFS= read -r -d '' n; do
|
||||||
|
#if [[ "$n" == "mb" ]]; then
|
||||||
|
# continue
|
||||||
|
#fi
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --path `basename $n`" -s /bin/bash $HTTP_USER
|
||||||
|
done < <(find $WEB_BASE_DIR/data/ -mindepth 1 -maxdepth 1 -type d -print0)
|
||||||
|
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --all" -s /bin/bash $HTTP_USER
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:repair" -s /bin/bash $HTTP_USER
|
28
README.php.ini
Normal file
28
README.php.ini
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
PHP configuration (php.ini)
|
||||||
|
memory_limit....................: 512M
|
||||||
|
max_execution_time..............: 180
|
||||||
|
upload_max_filesize.............: 64M
|
||||||
|
post_max_size...................: 513M
|
||||||
|
mbstring.func_overload..........: 0
|
||||||
|
always_populate_raw_post_data...: -1
|
||||||
|
default_charset.................: 'UTF-8'
|
||||||
|
output_buffering................: off
|
||||||
|
|
||||||
|
apcu:
|
||||||
|
apc.enable_cli = 1
|
||||||
|
|
||||||
|
|
||||||
|
## - Notice:
|
||||||
|
## -
|
||||||
|
## - You can set cloud spezific php settings in file ".user.ini":
|
||||||
|
## - upload_max_filesize=2G
|
||||||
|
## - post_max_size=2G
|
||||||
|
## - memory_limit=512M
|
||||||
|
## - mbstring.func_overload=0
|
||||||
|
## - always_populate_raw_post_data=-1
|
||||||
|
## - default_charset='UTF-8'
|
||||||
|
## - output_buffering=0
|
||||||
|
## -
|
||||||
|
## - making this file (.user.ini) writable by webserver user, you can
|
||||||
|
## - set some values as "upload_max_filesize" in admin area.
|
||||||
|
## -
|
105
conf/update_hostname.conf.sample
Normal file
105
conf/update_hostname.conf.sample
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
# ---
|
||||||
|
# - Configuration file for script 'update_nextcloud.sh'
|
||||||
|
# ---
|
||||||
|
|
||||||
|
# - Website name of your Nextcloud to update
|
||||||
|
# -
|
||||||
|
WEBSITE="<site-name-of-cloud-instance>"
|
||||||
|
|
||||||
|
# - Third Party modules of your NextCloud instance
|
||||||
|
# -
|
||||||
|
# - This Parameter is currently not in use
|
||||||
|
# -
|
||||||
|
# - Possible values are app-names like 'calendar' , 'contacts' , ..
|
||||||
|
# -
|
||||||
|
# - Takes a space seperated list
|
||||||
|
# -
|
||||||
|
#THIRD_PARTY_APPS="calendar contacts notes richdocuments"
|
||||||
|
|
||||||
|
|
||||||
|
# - Source directory for tar archives of Nextcloud
|
||||||
|
# -
|
||||||
|
# - Defaults to '/usr/local/src/nextcloud'
|
||||||
|
# -
|
||||||
|
#SRC_BASE_DIR="/usr/local/src/nextcloud"
|
||||||
|
|
||||||
|
|
||||||
|
# - Webservers user
|
||||||
|
# -
|
||||||
|
# - The script wil determin the webservers user, so you don't need to
|
||||||
|
# - configure it here.
|
||||||
|
# -
|
||||||
|
# - Setting this value take precedence over the scripts determined value.
|
||||||
|
#
|
||||||
|
#HTTP_USER=
|
||||||
|
|
||||||
|
# - Webservers group
|
||||||
|
# -
|
||||||
|
# - The script wil determin the webservers group, so you don't need to
|
||||||
|
# - configure it here.
|
||||||
|
# -
|
||||||
|
# - Setting this value take precedence over the scripts determined value.
|
||||||
|
# -
|
||||||
|
#HTTP_GROUP=
|
||||||
|
|
||||||
|
|
||||||
|
# - Web base directory
|
||||||
|
# -
|
||||||
|
# - the directory where the documentroot lives
|
||||||
|
# -
|
||||||
|
# - Defaults to '/var/www/$WEBSITE
|
||||||
|
# -
|
||||||
|
#WEB_BASE_DIR="/var/www/owncloud-test.oopen.de"
|
||||||
|
|
||||||
|
# - PHP engine
|
||||||
|
# -
|
||||||
|
# - Possible values: 'FPM' 'FCGI' 'MOD-PHP'
|
||||||
|
# -
|
||||||
|
# - Defaults to 'FPM'
|
||||||
|
# -
|
||||||
|
#PHP_ENGINE=FPM
|
||||||
|
|
||||||
|
# - PHP main version
|
||||||
|
# -
|
||||||
|
# - Examples:
|
||||||
|
# - PHP_VERSION=5.6
|
||||||
|
# - PHP_VERSION=7.1
|
||||||
|
# -
|
||||||
|
# - only needed, if PHP_ENGINE ist set to 'FPM'
|
||||||
|
# -
|
||||||
|
PHP_VERSION=
|
||||||
|
|
||||||
|
# - Database type
|
||||||
|
# -
|
||||||
|
# - Setting this value is required!
|
||||||
|
# -
|
||||||
|
# - Possible values: 'mysql' 'postgres'
|
||||||
|
# -
|
||||||
|
DATABASE_TYPE="mysql"
|
||||||
|
|
||||||
|
# - Database Name
|
||||||
|
# -
|
||||||
|
# - Setting this value is required!
|
||||||
|
# -
|
||||||
|
DATABASE_NAME="ownCloud_test"
|
||||||
|
|
||||||
|
# - Credentials to access MySQL/MariaDB Database
|
||||||
|
# -
|
||||||
|
# - Example
|
||||||
|
# - mysql_credential_args="--login-path=local"
|
||||||
|
# - mysql_credential_args="--defaults-file=/etc/mysql/debian.cnf" (Debian default)
|
||||||
|
# - mysql_credential_args="--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
||||||
|
# -
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
|
||||||
|
|
||||||
|
# - Credentials to access PostgreSQL Database
|
||||||
|
# -
|
||||||
|
PSQL_USER=
|
||||||
|
PSQL_PASS=
|
||||||
|
|
||||||
|
# - PostgreSQL Server
|
||||||
|
# -
|
||||||
|
# - defaults to 'localhost'
|
||||||
|
# -
|
||||||
|
PSQL_SERVER=
|
326
install_ownloud.txt
Normal file
326
install_ownloud.txt
Normal file
@ -0,0 +1,326 @@
|
|||||||
|
## - Prerequisites
|
||||||
|
## -
|
||||||
|
apt-get install smbclient curl libcurl3
|
||||||
|
|
||||||
|
## - OpenOffice or LibreOffice
|
||||||
|
## -
|
||||||
|
apt-get install libreoffice ttf-mscorefonts-installer fonts-ipafont-mincho \
|
||||||
|
ttf-wqy-microhei ttf-wqy-zenhei ttf-indic-fonts \
|
||||||
|
ttf-bitstream-vera ttf-dejavu \
|
||||||
|
ttf-xfree86-nonfree xfonts-100dpi xfonts-75dpi \
|
||||||
|
ttf-kochi-gothic ttf-kochi-mincho ttf-telugu-fonts \
|
||||||
|
ttf-oriya-fonts ttf-kannada-fonts ttf-bengali-fonts \
|
||||||
|
ttf-baekmuk ttf-unfonts-core
|
||||||
|
|
||||||
|
## - debian jessie / stretch
|
||||||
|
## -
|
||||||
|
apt-get install libreoffice \
|
||||||
|
ttf-mscorefonts-installer fonts-ipafont-mincho \
|
||||||
|
ttf-wqy-microhei ttf-wqy-zenhei fonts-indic \
|
||||||
|
ttf-bitstream-vera ttf-dejavu \
|
||||||
|
ttf-xfree86-nonfree xfonts-100dpi xfonts-75dpi \
|
||||||
|
ttf-kochi-gothic ttf-kochi-mincho fonts-telu \
|
||||||
|
fonts-telu-extra fonts-orya fonts-orya-extra \
|
||||||
|
fonts-knda fonts-beng fonts-beng-extra \
|
||||||
|
ttf-unfonts-core
|
||||||
|
#pttf-baekmuk ttf-unfonts-core
|
||||||
|
|
||||||
|
## - debian stretch
|
||||||
|
## -
|
||||||
|
apt-get install libreoffice \
|
||||||
|
ttf-mscorefonts-installer fonts-ipafont-mincho \
|
||||||
|
ttf-wqy-microhei ttf-wqy-zenhei fonts-indic \
|
||||||
|
ttf-bitstream-vera ttf-dejavu \
|
||||||
|
ttf-xfree86-nonfree xfonts-100dpi xfonts-75dpi \
|
||||||
|
fonts-telu \
|
||||||
|
fonts-telu-extra fonts-orya fonts-orya-extra \
|
||||||
|
fonts-knda fonts-beng fonts-beng-extra \
|
||||||
|
ttf-unifont
|
||||||
|
#pttf-baekmuk ttf-unfonts-core
|
||||||
|
|
||||||
|
apt-get install unoconv
|
||||||
|
|
||||||
|
|
||||||
|
## - ffmpeg or avconf
|
||||||
|
## -
|
||||||
|
apt-get install ffmpeg
|
||||||
|
apt-get install libav-tools
|
||||||
|
|
||||||
|
|
||||||
|
## - PHP module imagick
|
||||||
|
## -
|
||||||
|
apt-get install imagemagick libmagickwand-dev
|
||||||
|
/usr/local/php-5.6/bin/pecl install imagick
|
||||||
|
|
||||||
|
## - Redis Server (for enhanced server performance)
|
||||||
|
## -
|
||||||
|
apt-get install redis-server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## --------------------------------------------------
|
||||||
|
## - Install ownCloud
|
||||||
|
## -
|
||||||
|
## - see also: https://doc.owncloud.org/server/8.2/admin_manual/installation/
|
||||||
|
## -
|
||||||
|
## --------------------------------------------------
|
||||||
|
|
||||||
|
HTTP_USER=www-data
|
||||||
|
HTTP_GROUP=www-data
|
||||||
|
|
||||||
|
VERSION=10.0.2
|
||||||
|
MAJOR_VERSION=`echo $VERSION | cut -d '.' -f1,2`
|
||||||
|
|
||||||
|
SRC_BASE_DIR=/usr/local/src/owncloud
|
||||||
|
|
||||||
|
WEB_BASE_DIR=/var/www/cl-test.oopen.de
|
||||||
|
|
||||||
|
INSTALL_DIR=${WEB_BASE_DIR}/owncloud-${VERSION}
|
||||||
|
DATA_DIR=${WEB_BASE_DIR}/data-${VERSION}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Install Owncloud
|
||||||
|
## -
|
||||||
|
## - see also:
|
||||||
|
## - https://doc.owncloud.org/server/${MAJOR_VERSION}/admin_manual/installation/
|
||||||
|
|
||||||
|
mkdir -p $SRC_BASE_DIR
|
||||||
|
cd $SRC_BASE_DIR
|
||||||
|
|
||||||
|
if [ -f "owncloud-${VERSION}.tar.bz2" ]; then
|
||||||
|
rm owncloud-${VERSION}.tar.bz2
|
||||||
|
fi
|
||||||
|
wget https://download.owncloud.org/community/owncloud-${VERSION}.tar.bz2
|
||||||
|
|
||||||
|
if [ -d "owncloud" ]; then
|
||||||
|
mv owncloud owncloud.`date +%Y%m%d-%H%M`
|
||||||
|
fi
|
||||||
|
|
||||||
|
bunzip2 < owncloud-${VERSION}.tar.bz2 | tar -xf -
|
||||||
|
cp -r owncloud ${WEB_BASE_DIR}/owncloud-${VERSION}
|
||||||
|
|
||||||
|
|
||||||
|
cd $WEB_BASE_DIR
|
||||||
|
ln -s owncloud-${VERSION} ${WEB_BASE_DIR}/owncloud
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p $DATA_DIR
|
||||||
|
ln -s data-${VERSION} ${WEB_BASE_DIR}/data
|
||||||
|
|
||||||
|
## - Set Permissions
|
||||||
|
## -
|
||||||
|
find ${INSTALL_DIR}/ -type f -print0 | xargs -0 chmod 0640
|
||||||
|
find ${INSTALL_DIR}/ -type d -print0 | xargs -0 chmod 0750
|
||||||
|
|
||||||
|
chown -R root:${HTTP_GROUP} ${INSTALL_DIR}/
|
||||||
|
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/apps/
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/config/
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/themes/
|
||||||
|
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}
|
||||||
|
|
||||||
|
chown root:${HTTP_GROUP} ${INSTALL_DIR}/.htaccess
|
||||||
|
chown root:${HTTP_GROUP} ${DATA_DIR}/.htaccess
|
||||||
|
|
||||||
|
chmod 0644 ${INSTALL_DIR}/.htaccess
|
||||||
|
chmod 0644 ${DATA_DIR}/.htaccess
|
||||||
|
|
||||||
|
mkdir -p ${WEB_BASE_DIR}/sessions
|
||||||
|
chown root:${HTTP_GROUP} ${WEB_BASE_DIR}/sessions
|
||||||
|
chmod 2775 ${WEB_BASE_DIR}/sessions
|
||||||
|
|
||||||
|
mkdir -p ${WEB_BASE_DIR}/tmp
|
||||||
|
chown root:${HTTP_GROUP} ${WEB_BASE_DIR}/tmp
|
||||||
|
chmod 2775 ${WEB_BASE_DIR}/tmp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Konfigure WebCron
|
||||||
|
## -
|
||||||
|
## - see: as user admin: admin --> Administration
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
## - Konfigure redis
|
||||||
|
## -
|
||||||
|
/etc/redis/redis.conf:
|
||||||
|
unixsocket /tmp/redis.sock
|
||||||
|
unixsocketperm 777
|
||||||
|
|
||||||
|
|
||||||
|
'logtimezone' => 'Europe/Berlin'
|
||||||
|
|
||||||
|
|
||||||
|
## ----
|
||||||
|
## - Documents - known issues
|
||||||
|
|
||||||
|
### Known issues ###
|
||||||
|
**Problem**: Editor doesn't open. Spinner spins for ages.
|
||||||
|
**Solution**: Try to disable gzip for Documents app by adding the following
|
||||||
|
line to your .htaccess:
|
||||||
|
`SetEnvIf Request_URI .*/apps/documents/ajax/.* no-gzip dont-vary`
|
||||||
|
|
||||||
|
**Problem**: Doc(x) support doesn't work
|
||||||
|
**Solution**: Install at least `libreoffice-common` and `libreoffice-writer`
|
||||||
|
packages for your distro.
|
||||||
|
If you don't want to mess around with dependencies, you need simply install
|
||||||
|
`unoconv` package. It will do the trick for you.
|
||||||
|
|
||||||
|
## -
|
||||||
|
## ---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - See also:
|
||||||
|
## -
|
||||||
|
## - http://doc.owncloud.org/server/4.5/admin_manual/installation.html#manual-installation
|
||||||
|
## -
|
||||||
|
|
||||||
|
apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Prerequisites
|
||||||
|
## -
|
||||||
|
apt-get install smbclient curl libcurl3 \
|
||||||
|
php5-gd php-xml-parser php5-intl
|
||||||
|
php5-curl php5-mysql \
|
||||||
|
|
||||||
|
|
||||||
|
## - Dowload and extract
|
||||||
|
## -
|
||||||
|
mkdir -p /usr/local/src/ownCloud
|
||||||
|
cd /usr/local/src/ownCloud
|
||||||
|
wget http://mirrors.owncloud.org/releases/owncloud-4.5.5.tar.bz2
|
||||||
|
bunzip2 < owncloud-4.5.5.tar.bz2 | tar -xf -
|
||||||
|
|
||||||
|
|
||||||
|
## -
|
||||||
|
## -
|
||||||
|
mkdir /var/www/cloud.oopen.de
|
||||||
|
mkdir /var/www/cloud.oopen.de/logs
|
||||||
|
|
||||||
|
## - cp into documentroot
|
||||||
|
## -
|
||||||
|
cp -a /usr/local/src/ownCloud/owncloud /var/www/cloud.oopen.de/owncloud-4.5.5
|
||||||
|
|
||||||
|
mkdir /var/www/cloud.oopen.de/owncloud-4.5.5/data
|
||||||
|
chmod -R 755 /var/www/cloud.oopen.de/owncloud-4.5.5
|
||||||
|
chown -R www-data:www-data /var/www/cloud.oopen.de/owncloud-4.5.5/{data,apps,config}
|
||||||
|
|
||||||
|
ln -s owncloud-4.5.5 /var/www/cloud.oopen.de/htdocs
|
||||||
|
|
||||||
|
## --------------------------------------------------
|
||||||
|
## - ownCloud v. 5.0
|
||||||
|
## --------------------------------------------------
|
||||||
|
|
||||||
|
a2enmod rewrite
|
||||||
|
a2enmod ssl
|
||||||
|
a2enmod deflate
|
||||||
|
|
||||||
|
## - See also:
|
||||||
|
## -
|
||||||
|
## - http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_source.html
|
||||||
|
## -
|
||||||
|
|
||||||
|
apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
|
||||||
|
apt-get install php5-mysql smbclient curl libcurl3 php5-curl
|
||||||
|
apt-get install clamav-daemon clamav-docs libclamunrar6 daemon
|
||||||
|
|
||||||
|
|
||||||
|
VERSION=5.0.5
|
||||||
|
|
||||||
|
WEB_USER=www-data
|
||||||
|
WEB_GROUP=www-data
|
||||||
|
|
||||||
|
DATABASE=cloud_rls
|
||||||
|
DB_USER=oc_admin
|
||||||
|
DB_PASS=5bc55212f45bc712a8f16232281946d3
|
||||||
|
|
||||||
|
_db_root_user=root
|
||||||
|
_db_root_pass='buz111'
|
||||||
|
|
||||||
|
OWNCLOUD_SRC_DIR=/usr/local/src/owncloud
|
||||||
|
WEB_BASEDIR=/var/www/cloud5.oopen.de
|
||||||
|
|
||||||
|
mkdir -p $OWNCLOUD_SRC_DIR
|
||||||
|
|
||||||
|
mkdir -p ${WEB_BASEDIR}
|
||||||
|
|
||||||
|
## -------------------------------------
|
||||||
|
|
||||||
|
cd $OWNCLOUD_SRC_DIR
|
||||||
|
wget http://download.owncloud.org/community/owncloud-${VERSION}.tar.bz2
|
||||||
|
bunzip2 < ${OWNCLOUD_SRC_DIR}/owncloud-${VERSION}.tar.bz2 | tar -xf -
|
||||||
|
mv ${OWNCLOUD_SRC_DIR}/owncloud ${WEB_BASEDIR}/owncloud-${VERSION}
|
||||||
|
|
||||||
|
#cp -a ${WEB_BASEDIR}/owncloud ${WEB_BASEDIR}/owncloud-`date +"%Y%m%d-%H%M"`
|
||||||
|
|
||||||
|
|
||||||
|
cd $WEB_BASEDIR
|
||||||
|
mkdir ${WEB_BASEDIR}/data-${VERSION}
|
||||||
|
ln -s data-${VERSION} ${WEB_BASEDIR}/data
|
||||||
|
|
||||||
|
chown -R ${WEB_USER}:${WEB_GROUP} ${WEB_BASEDIR}/owncloud-${VERSION}/config
|
||||||
|
chown -R ${WEB_USER}:${WEB_GROUP} ${WEB_BASEDIR}/owncloud-${VERSION}/apps
|
||||||
|
chown -R ${WEB_USER}:${WEB_GROUP} ${WEB_BASEDIR}/owncloud-${VERSION}/data
|
||||||
|
|
||||||
|
rm -f ${WEB_BASEDIR}/owncloud
|
||||||
|
ln -s owncloud-${VERSION} ${WEB_BASEDIR}/owncloud
|
||||||
|
ln -s owncloud ${WEB_BASEDIR}/htdocs
|
||||||
|
|
||||||
|
mkdir -p ${WEB_BASEDIR}/tmp
|
||||||
|
chown ${WEB_USER}:${WEB_GROUP} ${WEB_BASEDIR}/tmp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Datenbank erstellen
|
||||||
|
## -
|
||||||
|
mysql -u$_db_root_user -p$_db_root_pass -Bse \
|
||||||
|
"DROP DATABASE IF EXISTS $DATABASE;"
|
||||||
|
|
||||||
|
mysql -u$_db_root_user -p$_db_root_pass -Bse \
|
||||||
|
"CREATE DATABASE $DATABASE CHARACTER SET utf8 COLLATE utf8_general_ci;"
|
||||||
|
mysql -u$_db_root_user -p$_db_root_pass -Bse \
|
||||||
|
"GRANT ALL ON ${DATABASE}.* TO 'oc_admin'@'localhost' IDENTIFIED BY '5bc55212f45bc712a8f16232281946d3';"
|
||||||
|
mysql -u$_db_root_user -p$_db_root_pass -Bse \
|
||||||
|
"FLUSH PRIVILEGES;"
|
||||||
|
|
||||||
|
|
||||||
|
## - Installation
|
||||||
|
## -
|
||||||
|
## - Im Browser die url zur installation (documentroot) aufrufen
|
||||||
|
## -
|
||||||
|
## - !! Wichtig !!
|
||||||
|
## -
|
||||||
|
## - Bei der Installation das Datenverzeichnis explizit angeben:
|
||||||
|
## - Fortgeschritten -> Datenverzeichnis: ${WEB_BASEDIR}/data
|
||||||
|
## -
|
||||||
|
## - Hier NICHT die Versionsnummer angeben, da sonst nach einem versions upgrade
|
||||||
|
## - sowohl datenbank als auch config/config.php geändert werden müssten.
|
||||||
|
## -
|
||||||
|
|
||||||
|
http://forum.owncloud.org/viewtopic.php?f=23&t=9296
|
||||||
|
php_flag apc.cache_by_default Off
|
||||||
|
|
||||||
|
|
||||||
|
How to cleanly re-install an app?
|
||||||
|
http://forum.owncloud.org/viewtopic.php?f=17&t=7355
|
||||||
|
|
||||||
|
How to configure upload limits
|
||||||
|
http://forum.owncloud.org/viewtopic.php?f=17&t=7733
|
747
update_nextcloud.sh
Executable file
747
update_nextcloud.sh
Executable file
@ -0,0 +1,747 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
||||||
|
script_dir="$(dirname $(realpath $0))"
|
||||||
|
conf_dir="${script_dir}/conf"
|
||||||
|
|
||||||
|
declare -a unsorted_website_arr+
|
||||||
|
declare -a website_arr
|
||||||
|
|
||||||
|
log_file="$(mktemp)"
|
||||||
|
|
||||||
|
|
||||||
|
# =============
|
||||||
|
# --- Some functions
|
||||||
|
# =============
|
||||||
|
|
||||||
|
is_number() {
|
||||||
|
|
||||||
|
return $(test ! -z "${1##*[!0-9]*}" > /dev/null 2>&1);
|
||||||
|
|
||||||
|
# - also possible
|
||||||
|
# -
|
||||||
|
#[[ ! -z "${1##*[!0-9]*}" ]] && return 0 || return 1
|
||||||
|
#return $([[ ! -z "${1##*[!0-9]*}" ]])
|
||||||
|
}
|
||||||
|
|
||||||
|
echononl(){
|
||||||
|
echo X\\c > /tmp/shprompt$$
|
||||||
|
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
|
||||||
|
echo -e -n "$*\\c" 1>&2
|
||||||
|
else
|
||||||
|
echo -e -n "$*" 1>&2
|
||||||
|
fi
|
||||||
|
rm /tmp/shprompt$$
|
||||||
|
}
|
||||||
|
echo_done() {
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\033[75G[ \033[32mdone\033[m ]"
|
||||||
|
else
|
||||||
|
echo " [ done ]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
echo_ok() {
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\033[75G[ \033[32mok\033[m ]"
|
||||||
|
else
|
||||||
|
echo " [ ok ]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
echo_warning() {
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\033[75G[ \033[33m\033[1mwarn\033[m ]"
|
||||||
|
else
|
||||||
|
echo " [ warning ]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
echo_failed(){
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
|
||||||
|
else
|
||||||
|
echo ' [ failed! ]'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
echo_skipped() {
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\033[75G[ \033[37mskipped\033[m ]"
|
||||||
|
else
|
||||||
|
echo " [ skipped ]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
fatal (){
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\t[ \033[31m\033[1mFatal\033[m ]: \033[37m\033[1m$*\033[m"
|
||||||
|
echo ""
|
||||||
|
echo -e "\t\033[31m\033[1m Firewall Script will be interrupted..\033[m\033[m"
|
||||||
|
else
|
||||||
|
echo "fatal: $*"
|
||||||
|
echo "Script will be interrupted.."
|
||||||
|
fi
|
||||||
|
rm -f $log_file
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
echo ""
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\t[ \033[31m\033[1mFehler\033[m ]: $*"
|
||||||
|
else
|
||||||
|
echo "Error: $*"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
warn (){
|
||||||
|
echo ""
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*"
|
||||||
|
else
|
||||||
|
echo "Warning: $*"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
info (){
|
||||||
|
echo ""
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\t[ \033[32m\033[1mInfo\033[m ]: $*"
|
||||||
|
else
|
||||||
|
echo "Info: $*"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
## - Check if a given array (parameter 2) contains a given string (parameter 1)
|
||||||
|
## -
|
||||||
|
containsElement () {
|
||||||
|
local e
|
||||||
|
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
## -
|
||||||
|
while IFS='' read -r -d '' _conf_file ; do
|
||||||
|
source $_conf_file
|
||||||
|
if [[ -n "$WEBSITE" ]] ; then
|
||||||
|
unsorted_website_arr+=("${WEBSITE}:$_conf_file")
|
||||||
|
fi
|
||||||
|
WEBSITE=""
|
||||||
|
done < <(find "${conf_dir}" -maxdepth 1 -type f -name "*.conf" -print0)
|
||||||
|
|
||||||
|
if [[ ${#unsorted_website_arr} -eq 0 ]]; then
|
||||||
|
fatal "No configuration files found in '${script_dir}/conf' or no website configured!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Sort array
|
||||||
|
# -
|
||||||
|
IFS=$'\n' website_arr=($(sort <<<"${unsorted_website_arr[*]}"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# =============
|
||||||
|
# --- Some
|
||||||
|
# =============
|
||||||
|
|
||||||
|
# - Support systemd ?
|
||||||
|
# -
|
||||||
|
if [[ "X$(which systemd)" = "X" ]]; then
|
||||||
|
SYSTEMD_EXISTS=false
|
||||||
|
else
|
||||||
|
SYSTEMD_EXISTS=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "\033[32m-----\033[m"
|
||||||
|
echo "Update Nextcloud"
|
||||||
|
echo -e "\033[32m-----\033[m"
|
||||||
|
|
||||||
|
|
||||||
|
WEBSITE=
|
||||||
|
_OK=false
|
||||||
|
echo ""
|
||||||
|
echo "Which site would you like to update?"
|
||||||
|
echo ""
|
||||||
|
declare -i i=0
|
||||||
|
for _site in ${website_arr[@]} ; do
|
||||||
|
IFS=':' read -a _arr <<< ${_site}
|
||||||
|
echo " [$i] ${_arr[0]}"
|
||||||
|
((i++))
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
echononl " Eingabe: "
|
||||||
|
while ! $_OK ; do
|
||||||
|
read _IN
|
||||||
|
if is_number "$_IN" && [[ -n ${website_arr[$_IN]} ]]; then
|
||||||
|
IFS=':' read -a _arr <<< ${website_arr[$_IN]}
|
||||||
|
conf_file=${_arr[1]}
|
||||||
|
_OK=true
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo -e "\tFalsche Eingabe !"
|
||||||
|
echo ""
|
||||||
|
echononl " Eingabe: "
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "\033[32m--\033[m"
|
||||||
|
echo ""
|
||||||
|
echo "Insert (new) Nextcloud version number."
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
VERSION=
|
||||||
|
while [ "X$VERSION" = "X" ]
|
||||||
|
do
|
||||||
|
echononl " Nextcloud version number: "
|
||||||
|
read VERSION
|
||||||
|
if [ "X$VERSION" = "X" ]; then
|
||||||
|
echo ""
|
||||||
|
echo -e "Eingabe erforderlich"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echononl " Include Configuration file.."
|
||||||
|
if [[ ! -f $conf_file ]]; then
|
||||||
|
echo_failed
|
||||||
|
fatal "Missing configuration file '$conf_file'"
|
||||||
|
else
|
||||||
|
source $conf_file
|
||||||
|
echo_ok
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# =============
|
||||||
|
# --- Some checks
|
||||||
|
# =============
|
||||||
|
|
||||||
|
DEFAULT_SRC_BASE_DIR="/usr/local/src/nextcloud"
|
||||||
|
DEFAULT_HTTP_USER="www-data"
|
||||||
|
DEFAULT_HTTP_GROUP="www-data"
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -z ${WEBSITE} ]] ; then
|
||||||
|
fatal "No website given (parameter 'WEBSITE')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DEFAULT_WEB_BASE_DIR="/var/www/$WEBSITE"
|
||||||
|
DEFAULT_PHP_ENGINE="FPM"
|
||||||
|
|
||||||
|
[[ -n "$SRC_BASE_DIR" ]] || SRC_BASE_DIR=$DEFAULT_SRC_BASE_DIR
|
||||||
|
#[[ -n "$HTTP_USER" ]] || HTTP_USER=$DEFAULT_HTTP_USER
|
||||||
|
#[[ -n "$HTTP_GROUP" ]] || HTTP_GROUP=$DEFAULT_HTTP_GROUP
|
||||||
|
[[ -n "$WEB_BASE_DIR" ]] || WEB_BASE_DIR=$DEFAULT_WEB_BASE_DIR
|
||||||
|
|
||||||
|
if [[ ! -d ${WEB_BASE_DIR} ]] ; then
|
||||||
|
fatal "Web base directory not found (parameter 'WEB_BASE_DIR')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ -n "$PHP_ENGINE " ]] || PHP_ENGINE=$DEFAULT_PHP_ENGINE
|
||||||
|
|
||||||
|
if [[ "$PHP_ENGINE" = "FPM" ]] && [[ -z "$PHP_VERSION" ]] ; then
|
||||||
|
fatal "PHP Version must be givven if running PHP-FPM engine (parameter 'PHP_VERSION')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$DATABASE_TYPE" != "postgres" ]] && [[ "$DATABASE_TYPE" != "mysql" ]]; then
|
||||||
|
fatal "Wrong or missing database type (parameter 'DATABASE_TYPE')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$DATABASE_NAME" ]]; then
|
||||||
|
fatal "Missing database name (parameter 'DATABASE_NAME')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$DATABASE_TYPE" = "mysql" ]] && [[ -z "$MYSQL_CREDENTIALS" ]]; then
|
||||||
|
fatal "No Database Credentials for MySQL given (parameter 'MYSQL_CREDENTIALS')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$DATABASE_TYPE" = "postgres" ]]; then
|
||||||
|
if [[ -z "$PSQL_USER" ]] || [[ -z "$PSQL_PASS" ]]; then
|
||||||
|
fatal "No Database Credentials for PostgreSQL given (parameters: 'PSQL_USER' 'PSQL_PASS'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
httpd_binary="`which httpd`"
|
||||||
|
if [ -z "$httpd_binary" ]; then
|
||||||
|
httpd_binary="$(ps -axu | grep httpd | grep -e "^root" | grep -v grep | awk '{print$11}')"
|
||||||
|
if [ -z "$httpd_binary" ]; then
|
||||||
|
if [ -x "/usr/local/apache2/bin/httpd" ]; then
|
||||||
|
httpd_binary="/usr/local/apache2/bin/httpd"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -x "$httpd_binary" ];then
|
||||||
|
|
||||||
|
# - Determin websever user
|
||||||
|
# -
|
||||||
|
_HTTP_USER="`$httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^User" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`"
|
||||||
|
_HTTP_GROUP="`$httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^Group" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`"
|
||||||
|
|
||||||
|
# - Is webserver running ?
|
||||||
|
# -
|
||||||
|
PID=$(ps aux | grep "$(realpath $httpd_binary)" | grep -e "^root" | grep -v grep | awk '{print$2}')
|
||||||
|
if [[ "X${PID}X" = "XX" ]] ;then
|
||||||
|
IS_HTTPD_RUNNING=false
|
||||||
|
else
|
||||||
|
IS_HTTPD_RUNNING=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$_HTTP_USER" ]] ; then
|
||||||
|
if [[ -n "$HTTP_USER" ]] && [[ "$_HTTP_USER" != "$HTTP_USER" ]]; then
|
||||||
|
warn "The script has determined \033[1;37m${_HTTP_USER}\033[m as Webservers user. This\n value differs from the value given in your configuration file, \n which is \033[1;37m${HTTP_USER}\033[m and takes precedence."
|
||||||
|
else
|
||||||
|
HTTP_USER=$_HTTP_USER
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
[[ -n "$HTTP_USER" ]] || HTTP_USER=$DEFAULT_HTTP_USER
|
||||||
|
fi
|
||||||
|
if [[ -n "$_HTTP_GROUP" ]] ; then
|
||||||
|
if [[ -n "$HTTP_GROUP" ]] && [[ "$_HTTP_GROUP" != "$HTTP_GROUP" ]]; then
|
||||||
|
warn "The script has determined \033[1;37m${_HTTP_GROUP}\033[m as Webservers group. This\n value differs from the value given in your configuration file, \n which is \033[1;37m${HTTP_GROUP}\033[m and takes precedence."
|
||||||
|
else
|
||||||
|
HTTP_GROUP=$_HTTP_GROUP
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
[[ -n "$HTTP_GROUP" ]] || HTTP_GROUP=$DEFAULT_HTTP_GROUP
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "\033[1;32mStarting Nextcloud Update for \033[1;37m${WEBSITE}\033[m"
|
||||||
|
echo ""
|
||||||
|
echo -e " Nextcloud verion.....................: $VERSION"
|
||||||
|
echo ""
|
||||||
|
echo -e " Website to update....................: $WEBSITE"
|
||||||
|
echo ""
|
||||||
|
echo -e " Web base directory...................: $WEB_BASE_DIR"
|
||||||
|
echo ""
|
||||||
|
echo -e " Source directory for tar archiv......: $SRC_BASE_DIR"
|
||||||
|
echo ""
|
||||||
|
echo -e " Webserver user.......................: $HTTP_USER"
|
||||||
|
echo -e " Webserver group......................: $HTTP_GROUP"
|
||||||
|
echo ""
|
||||||
|
echo -e " PHP version..........................: $PHP_VERSION"
|
||||||
|
echo -e " PHP Engine...........................: $PHP_ENGINE"
|
||||||
|
echo ""
|
||||||
|
echo -e " Databse name.........................: $DATABASE_NAME"
|
||||||
|
echo -e " Database type........................: $DATABASE_TYPE"
|
||||||
|
echo ""
|
||||||
|
if [[ "$DATABASE_TYPE" = "mysql" ]] ; then
|
||||||
|
echo -e " Mysql Credentials....................: $MYSQL_CREDENTIALS"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -n " Type upper case 'YES' to continue executing with this parameters: "
|
||||||
|
read OK
|
||||||
|
if [[ "$OK" = "YES" ]] ; then
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo -e "\033[1;32mGoing to update Nextcloud on \033[1;37m$WEBSITE \033[m"
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
fatal "Abort by user request - Answer as not 'YES'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
CURRENT_INSTALL_DIR=`realpath ${WEB_BASE_DIR}/nextcloud`
|
||||||
|
CURRENT_DATA_DIR=`realpath ${WEB_BASE_DIR}/data`
|
||||||
|
PRIOR_VERSION=`basename $CURRENT_INSTALL_DIR | cut -d"-" -f2`
|
||||||
|
|
||||||
|
DATA_DIR=${WEB_BASE_DIR}/data-${VERSION}
|
||||||
|
INSTALL_DIR=${WEB_BASE_DIR}/nextcloud-${VERSION}
|
||||||
|
|
||||||
|
echononl " Create source directory.."
|
||||||
|
if [[ ! -d "${SRC_BASE_DIR}" ]]; then
|
||||||
|
mkdir ${SRC_BASE_DIR} > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
error "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo_skipped
|
||||||
|
fi
|
||||||
|
|
||||||
|
#echononl " Change into ${SRC_BASE_DIR}"
|
||||||
|
#cd ${SRC_BASE_DIR} > $log_file 2>&1
|
||||||
|
#if [[ $? -eq 0 ]]; then
|
||||||
|
# echo_ok
|
||||||
|
#else
|
||||||
|
# echo_failed
|
||||||
|
# fatal "$(cat $log_file)"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
|
||||||
|
# - downloud nextcloud source
|
||||||
|
# -
|
||||||
|
echononl " Download file 'nextcloud-${VERSION}.tar.bz2'.."
|
||||||
|
if [[ -f "${SRC_BASE_DIR}/nextcloud-${VERSION}.tar.bz2" ]]; then
|
||||||
|
echo_skipped
|
||||||
|
else
|
||||||
|
wget -P ${SRC_BASE_DIR} https://download.nextcloud.com/server/releases/nextcloud-${VERSION}.tar.bz2 > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echononl " Delete existing dir '${SRC_BASE_DIR}/nextcloud'.."
|
||||||
|
if [ -d "${SRC_BASE_DIR}/nextcloud" ]; then
|
||||||
|
rm -rf ${SRC_BASE_DIR}/nextcloud
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo_skipped
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Entpacken
|
||||||
|
# -
|
||||||
|
echononl " Untar/Unpack nextcloud-${VERSION}.tar.bz2"
|
||||||
|
bunzip2 < ${SRC_BASE_DIR}/nextcloud-${VERSION}.tar.bz2 | tar -C ${SRC_BASE_DIR} -xf - > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# - Deaktiviere Cronjobs
|
||||||
|
# -
|
||||||
|
_backup_crontab_file=/tmp/crontab_root.$(date +%Y-%m-%d-%H%M)
|
||||||
|
echononl " Backup Crontab to '$_backup_crontab_file'"
|
||||||
|
crontab -l > $_backup_crontab_file 2> $log_file
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echononl " Remove crontab for root.."
|
||||||
|
crontab -r > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# - Stop Apache Webserver
|
||||||
|
# -
|
||||||
|
echo ""
|
||||||
|
echononl " Stop Apache Webserver.."
|
||||||
|
if $SYSTEMD_EXISTS ; then
|
||||||
|
systemctl stop apache2
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
/etc/init.d/apache2 stop
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# - Backup Database
|
||||||
|
# -
|
||||||
|
echononl " Backup MySQL database '$DATABASE_NANE'.."
|
||||||
|
if [[ "$DATABASE_TYPE" = 'mysql' ]]; then
|
||||||
|
mysqldump $MYSQL_CREDENTIALS --opt $DATABASE_NAME > \
|
||||||
|
${WEB_BASE_DIR}/${DATABASE_NAME}-v${PRIOR_VERSION}.`date +"%Y-%m-%d-%H%M"`.sql 2> $log_file
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
elif [[ "$DATABASE_TYPE" = 'postgres' ]]; then
|
||||||
|
PGPASSWORD=$PSQL_PASS pg_dump $DATABASE_NAME -h $PSQL_SERVER -U $PSQL_USER -f postfix-$(date +%Y-%m-%d-%H%M).sql
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Erstelle Web-Verzeichnis für die neue OwnCloud Version
|
||||||
|
# -
|
||||||
|
echononl " Create (new) dir '${WEB_BASE_DIR}/nextcloud-${VERSION}'.."
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
mkdir ${WEB_BASE_DIR}/nextcloud-${VERSION} > $log_file 2>&1
|
||||||
|
|
||||||
|
# - Kopiere Verzeichnis "config" in das neue Installationsverzeichnis
|
||||||
|
# -
|
||||||
|
echononl " Copy ols config into '${WEB_BASE_DIR}/nextcloud-${VERSION}'.."
|
||||||
|
cp -a ${CURRENT_INSTALL_DIR}/config $INSTALL_DIR/ > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Synchronisiere neues Installationsverzeichnis mit
|
||||||
|
# - den extrahierten Dateien
|
||||||
|
# -
|
||||||
|
echononl " Sync downloaded (new) nextlcoud int '${INSTALL_DIR}'.."
|
||||||
|
rsync -a ${SRC_BASE_DIR}/nextcloud/ ${INSTALL_DIR}/ > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echononl " Set actual date on directory '${INSTALL_DIR}'.."
|
||||||
|
touch -t `date +%Y%m%d%H%M.%S` ${INSTALL_DIR} > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
error "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# - Kopiere Daten Verzeichnis (hardlinks - harte Dateiverweise)
|
||||||
|
# -
|
||||||
|
echononl " Copy (hardlink) old data directory to '$DATA_DIR'.."
|
||||||
|
cp -al ${CURRENT_DATA_DIR} $DATA_DIR > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# - Set Permissions on new install directory
|
||||||
|
# -
|
||||||
|
echononl " Change permissions on '${INSTALL_DIR}'.."
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Set Permissions on new data directory
|
||||||
|
# -
|
||||||
|
echononl " Change permissions on '${DATA_DIR}'.."
|
||||||
|
chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# - Delete symlink for old data directory
|
||||||
|
# -
|
||||||
|
echononl " Remove symlink from old data dir 'data-${PRIOR_VERSION}'.."
|
||||||
|
rm ${WEB_BASE_DIR}/data
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Set symlink for new data directory
|
||||||
|
# -
|
||||||
|
echononl " Set symlink for new data dir 'data-${VERSION}'.."
|
||||||
|
ln -s data-${VERSION} ${WEB_BASE_DIR}/data
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# - Remove symlink from old installation directory
|
||||||
|
# -
|
||||||
|
rm ${WEB_BASE_DIR}/nextcloud
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Set symlink (documentroot) for new installation directory
|
||||||
|
# -
|
||||||
|
ln -s nextcloud-${VERSION} ${WEB_BASE_DIR}/nextcloud
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Update Nextcloud
|
||||||
|
# -
|
||||||
|
echo ""
|
||||||
|
echo " Update Nextcloud"
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ upgrade" -s /bin/bash $HTTP_USER
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echononl " Restart PHP engine.."
|
||||||
|
if [[ "$PHP_ENGINE" = "FPM" ]]; then
|
||||||
|
if $SYSTEMD_EXISTS ; then
|
||||||
|
systemctl restart php-${PHP_VERSION}-fpm
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
/etc/init.d/php-${PHP_VERSION}-fpm restart
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo_skipped
|
||||||
|
fi
|
||||||
|
|
||||||
|
# - Start Apache Webserver
|
||||||
|
# -
|
||||||
|
echo ""
|
||||||
|
echononl " Start Apache Webserver.."
|
||||||
|
if $IS_HTTPD_RUNNING ; then
|
||||||
|
if $SYSTEMD_EXISTS ; then
|
||||||
|
systemctl start apache2
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
/etc/init.d/apache2 start
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo_skipped
|
||||||
|
warn "The webserver was not running, so it will be keept down!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echononl " Install previously saved crontab from '$_backup_crontab_file'.."
|
||||||
|
crontab $_backup_crontab_file > $log_file 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
error "$(cat $log_file)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f $log_file
|
||||||
|
echo ""
|
||||||
|
exit
|
||||||
|
## - nextcloud-12.0.0 tar.bz2
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cd $WEB_BASE_DIR
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
## - Alternativly enable maintenance mode
|
||||||
|
## -
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Deactivate third party apps
|
||||||
|
## -
|
||||||
|
## - for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
## - #su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/nextcloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - done
|
||||||
|
for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
#su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/nextcloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - ## - Enable third party apps
|
||||||
|
## - ## -
|
||||||
|
## - for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
## - su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
## - done
|
||||||
|
for _app in $THIRD_PARTY_APPS ; do
|
||||||
|
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html
|
||||||
|
|
||||||
|
while IFS= read -r -d '' n; do
|
||||||
|
#if [[ "$n" == "mb" ]]; then
|
||||||
|
# continue
|
||||||
|
#fi
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --path `basename $n`" -s /bin/bash $HTTP_USER
|
||||||
|
done < <(find $WEB_BASE_DIR/data/ -mindepth 1 -maxdepth 1 -type d -print0)
|
||||||
|
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --all" -s /bin/bash $HTTP_USER
|
||||||
|
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:repair" -s /bin/bash $HTTP_USER
|
Loading…
x
Reference in New Issue
Block a user