Owncloud: Difference between revisions

From miki
Jump to navigation Jump to search
Line 10: Line 10:
== Install ==
== Install ==


=== Install packages ===
From [https://doc.owncloud.org/server/9.0/admin_manual/installation/linux_installation.html Owncloud page], on Ubuntu:
From [https://doc.owncloud.org/server/9.0/admin_manual/installation/linux_installation.html Owncloud page], on Ubuntu:


Line 34: Line 35:
Optional:
Optional:
* Install {{deb|php5-imagick}} to get image preview (but beware of recent vulnerabilities. See [[Linux security]]).
* Install {{deb|php5-imagick}} to get image preview (but beware of recent vulnerabilities. See [[Linux security]]).

=== Configuration ===
When installed, ''Owncloud'' is available at URL http://localhost/owncloud/.
This is configured in apache2 file {{file|/etc/apache2/conf-available/owncloud.conf}}:

<source lang=apache>
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>

<Directory "/var/www/owncloud/data/">
# just in case if .htaccess gets disabled
Require all denied
</Directory>
</source>
Note that owncloud files {{file|/var/www/owncloud}} are outside the regular http root (i.e. {{file|/var/www/html}}).


Before completing the installation, we first setup a virtual access to allow accessing Owncloud via HTTPS. This is also recommended for remote installs. For this create the file {{file|/etc/apache2/sites-available/owncloud.immie.org.conf}}, with content:
<source lang=apache>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName owncloud.immie.org

DocumentRoot /var/www/html

# Owncloud configuration: see conf-available/owncloud.conf

SSLCertificateFile /etc/ssl/certs/ssl-cert-owncloud.immie.org.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-owncloud.immie.org.key

# ...

</VirtualHost>
</IfModule>
</source>
We only list the most relevant settings. Basically we only setup the server name and give the SSL certificates. For now, we leave {{file:/owncloud}} as a global alias.

Enable the site:
<source lang=bash>
a2ensite owncloud.immie.org
service apache2 reload
</source>

We also need to create a new MySQL user and database for owncloud. This way owncloud will not use MySQL root access.
<source lang=bash>
MYSQL_HISTFILE=/dev/null mysql --user=root -p mysql # You'll need MySQL root user password
</source>

<source lang=mysql>
CREATE DATABASE owncloud_immie;
GRANT ALL PRIVILEGES ON owncloud_immie.* TO owncloud_immie@localhost IDENTIFIED BY '********************';
quit
</source>
Of course, replace <code>********************</code> with your own password.

Proceed to the URL https://owncloud.immie.org/owncloud:
* Enter a new admin account '''user name''' and '''password'''.
* Click on '''Storage &amp; database'''
* Keep data folder as is (<code>/var/www/owncloud/data</code>). Make sure it is outside web server root.
* Select '''MySQL / MariaDB'''.
* Enter MySQL '''user name''', '''password''', '''database name'''. Keep <code>localhost</code> for the DB server name.
* Click '''Finish setup'''.


== Hardening ==
== Hardening ==

Revision as of 17:10, 9 June 2016

References

Tools:

Also on GitHub.
  • CardDAV-Sync — Another CardDAV sync app for Android (free / paid).

Install

Install packages

From Owncloud page, on Ubuntu:

wget -nv https://download.owncloud.org/download/repositories/stable/xUbuntu_14.04/Release.key -O Release.key
apt-key add - < Release.key
sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud.list"
apt-get update
apt-get install owncloud

On Debian 8:

wget -nv https://download.owncloud.org/download/repositories/9.0/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
sh -c "echo 'deb http://download.owncloud.org/download/repositories/9.0/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
apt-get update
apt-get install owncloud

Note:

  • Installing owncloud-files was not enough. Not sure what are the missing dependencies.

Optional:

  • Install php5-imagick to get image preview (but beware of recent vulnerabilities. See Linux security).

Configuration

When installed, Owncloud is available at URL http://localhost/owncloud/. This is configured in apache2 file /etc/apache2/conf-available/owncloud.conf:

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>

<Directory "/var/www/owncloud/data/">
# just in case if .htaccess gets disabled
Require all denied
</Directory>

Note that owncloud files /var/www/owncloud are outside the regular http root (i.e. /var/www/html).


Before completing the installation, we first setup a virtual access to allow accessing Owncloud via HTTPS. This is also recommended for remote installs. For this create the file /etc/apache2/sites-available/owncloud.immie.org.conf, with content:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName owncloud.immie.org

DocumentRoot /var/www/html

# Owncloud configuration: see conf-available/owncloud.conf

SSLCertificateFile      /etc/ssl/certs/ssl-cert-owncloud.immie.org.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-owncloud.immie.org.key

# ...

</VirtualHost>
</IfModule>

We only list the most relevant settings. Basically we only setup the server name and give the SSL certificates. For now, we leave File:/owncloud as a global alias.

Enable the site:

a2ensite owncloud.immie.org
service apache2 reload

We also need to create a new MySQL user and database for owncloud. This way owncloud will not use MySQL root access.

MYSQL_HISTFILE=/dev/null mysql --user=root -p mysql          # You'll need MySQL root user password
CREATE DATABASE owncloud_immie;
GRANT ALL PRIVILEGES ON owncloud_immie.* TO owncloud_immie@localhost IDENTIFIED BY '********************';
quit

Of course, replace ******************** with your own password.

Proceed to the URL https://owncloud.immie.org/owncloud:

  • Enter a new admin account user name and password.
  • Click on Storage & database
  • Keep data folder as is (/var/www/owncloud/data). Make sure it is outside web server root.
  • Select MySQL / MariaDB.
  • Enter MySQL user name, password, database name. Keep localhost for the DB server name.
  • Click Finish setup.

Hardening

See Linux Security.