Initial import

This commit is contained in:
Christoph 2017-06-16 02:00:42 +02:00
commit da56286707
7 changed files with 1796 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/conf/*.conf
*.swp

318
DOC/update_owncloud.txt Normal file
View 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

View 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
View 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.
## -

View 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
View 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
View 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