Install ownCloud on Ubuntu 18.04
This is an ultra-short guide to installing ownCloud on a fresh installation of Ubuntu 18.04. Run the following commands in your terminal to complete the installation.
Prerequisites
-
A fresh installation of Ubuntu 18.04 with SSH enabled.
-
This guide assumes that you are connected as the root user.
-
This guide assumes your ownCloud directory is located in
/var/www/owncloud/
Preparation
First, ensure that all the installed packages are entirely up to date, and that PHP is available in the APT repository. To do so, follow the instructions below:
apt update && \
apt upgrade -y
Create the occ Helper Script
Create a helper script to simplify running occ commands.
FILE="/usr/local/bin/occ"
/bin/cat <<EOM >$FILE
#! /bin/bash
cd /var/www/owncloud
sudo -u www-data /usr/bin/php /var/www/owncloud/occ "\$@"
EOM
Make the helper script executable:
chmod +x /usr/local/bin/occ
Installation
Configure Apache
Change the Document Root
sed -i "s#html#owncloud#" /etc/apache2/sites-available/000-default.conf
service apache2 restart
Create a Virtual Host Configuration
FILE="/etc/apache2/sites-available/owncloud.conf"
/bin/cat <<EOM >$FILE
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
EOM
Configure the Database
service mysql start
mysql -u root -e "CREATE DATABASE IF NOT EXISTS owncloud; \
GRANT ALL PRIVILEGES ON owncloud.* \
TO owncloud@localhost \
IDENTIFIED BY 'password'";
Download ownCloud
cd /var/www/
wget https://download.owncloud.org/community/owncloud-10.7.0.tar.bz2 && \
tar -xjf owncloud-10.7.0.tar.bz2 && \
chown -R www-data. owncloud
Install ownCloud
occ maintenance:install \
--database "mysql" \
--database-name "owncloud" \
--database-user "owncloud" \
--database-pass "password" \
--admin-user "admin" \
--admin-pass "admin"
Configure ownCloud’s Trusted Domains
myip=$(hostname -I|cut -f1 -d ' ')
occ config:system:set trusted_domains 1 --value="$myip"
Set Up a Cron Job
Set your background job mode to cron
occ background:cron
echo "*/15 * * * * /var/www/owncloud/occ system:cron" \
> /var/spool/cron/crontabs/www-data
chown www-data.crontab /var/spool/cron/crontabs/www-data
chmod 0600 /var/spool/cron/crontabs/www-data
If you need to sync your users from an LDAP or Active Directory Server, add this additional Cron job. Every 15 minutes this cron job will sync LDAP users in ownCloud and disable the ones who are not available for ownCloud. Additionally, you get a log file in |
echo "*/15 * * * * /var/www/owncloud/occ user:sync 'OCA\User_LDAP\User_Proxy' -m disable -vvv >> /var/log/ldap-sync/user-sync.log 2>&1" > /var/spool/cron/crontabs/www-data
chown www-data.crontab /var/spool/cron/crontabs/www-data
chmod 0600 /var/spool/cron/crontabs/www-data
mkdir -p /var/log/ldap-sync
touch /var/log/ldap-sync/user-sync.log
chown www-data. /var/log/ldap-sync/user-sync.log
Configure Caching and File Locking
Execute these commands:
occ config:system:set \
memcache.local \
--value '\OC\Memcache\APCu'
occ config:system:set \
memcache.locking \
--value '\OC\Memcache\Redis'
service redis-server start
occ config:system:set \
redis \
--value '{"host": "127.0.0.1", "port": "6379"}' \
--type json
Configure Log Rotation
Execute this command to set up log rotation.
FILE="/etc/logrotate.d/owncloud"
sudo /bin/cat <<EOM >$FILE
/var/www/owncloud/data/owncloud.log {
size 10M
rotate 12
copytruncate
missingok
compress
compresscmd /bin/gzip
}
EOM