Difference between revisions of "Setup Owncloud on CentOS 7"

From rdkwiki
Jump to: navigation, search
 
m (Vhost configuration)
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
  
 
== Apache installation ==
 
== Apache installation ==
* '''sudo yum install httpd''' --> install httpd (Apache)
+
* '''yum install httpd''' --> install httpd (Apache)
 
* '''systemctl start httpd''' --> start Apache
 
* '''systemctl start httpd''' --> start Apache
 
* '''systemctl enable httpd''' --> enable Apache at boot
 
* '''systemctl enable httpd''' --> enable Apache at boot
  
 
== Download and install Owncloud ==
 
== Download and install Owncloud ==
* '''sudo yum install xz bzip2''' --> tools needed to extract the package
+
* '''yum install xz bzip2''' --> tools needed to extract the package
 
* '''cd /home/<folder>''' --> go to a folder to download the package
 
* '''cd /home/<folder>''' --> go to a folder to download the package
* '''sudo wget https://download.owncloud.org/community/owncloud-9.1.1.tar.bz2''' --> download the package (in this case Owncloud 9.1.1
+
* '''wget https://download.owncloud.org/community/owncloud-9.1.1.tar.bz2''' --> download the package (in this case Owncloud 9.1.1
* '''sudo cp owncloud-9.1.1.tar.bz2 /var/www/html/'''  --> Copy the package to the active folder of the webserver
+
* '''cp owncloud-9.1.1.tar.bz2 /var/www/html/'''  --> Copy the package to the active folder of the webserver
* '''sudo tar -jxvf /var/www/html/owncloud-9.1.1.tar.bz2'''  --> extract the package
+
* '''tar -jxvf /var/www/html/owncloud-9.1.1.tar.bz2'''  --> extract the package
* '''sudo rm /var/www/html/owncloud-9.1.1.tar.bz2''' --> remove the package after extraction
+
* '''rm /var/www/html/owncloud-9.1.1.tar.bz2''' --> remove the package after extraction
* '''sudo mkdir /owncloud-data''' --> make the directory which will hold the data of the Owncloud-users
+
* '''mkdir /owncloud-data''' --> make the directory which will hold the data of the Owncloud-users
* '''sudo chown apache:apache /owncloud-data''' --> make apache owner of the folders
+
* '''chown apache:apache /owncloud-data''' --> make apache owner of the folders
* '''sudo chown apache:apache /var/www/html/owncloud''' --> make apache owner of the folders
+
* '''chown apache:apache /var/www/html/owncloud''' --> make apache owner of the folders
  
 
== Firewall configuration ==
 
== Firewall configuration ==
Line 24: Line 24:
  
 
== Disable SE-Linux (optional) ==
 
== Disable SE-Linux (optional) ==
* '''sudo nano /etc/selinux/config'''
+
* '''nano /etc/selinux/config'''
 
  change '''"SELINUX=enforcing"''' in '''"SEXLINUX=disabled"'''
 
  change '''"SELINUX=enforcing"''' in '''"SEXLINUX=disabled"'''
  
Line 42: Line 42:
 
* '''mkdir /etc/httpd/sites-available''' --> create folder where the vhost-files will be configured
 
* '''mkdir /etc/httpd/sites-available''' --> create folder where the vhost-files will be configured
 
* '''mkdir /etc/httpd/sites-enabled''' --> create a folder where the vhost-files will be linked as active sites
 
* '''mkdir /etc/httpd/sites-enabled''' --> create a folder where the vhost-files will be linked as active sites
* '''sudo nano /etc/httpd/conf/httpd.conf'''  --> add '''"includeOptional sites-enabled/*.conf"''' to end of file
+
* '''nano /etc/httpd/conf/httpd.conf'''  --> add '''"includeOptional sites-enabled/*.conf"''' to end of file
* '''sudo nano /etc/httpd/sites-available/<site>.conf'''  --> create a vhost-file
+
* '''nano /etc/httpd/sites-available/<site>.conf'''  --> create a vhost-file
 
   <VirtualHost *:80>
 
   <VirtualHost *:80>
 
     ServerName <host>.<domain>.<tld>
 
     ServerName <host>.<domain>.<tld>
Line 49: Line 49:
 
     DocumentRoot /var/www/html/owncloud
 
     DocumentRoot /var/www/html/owncloud
 
   </VirtualHost>
 
   </VirtualHost>
* '''sudo ln -s /etc/httpd/sites-available/<site>.conf /etc/httpd/sites-enabled/<site>.conf'''  --> link a site to make it active
+
* '''ln -s /etc/httpd/sites-available/<site>.conf /etc/httpd/sites-enabled/<site>.conf'''  --> link a site to make it active
  
 
== Enable HTTPS/SSL (optional) ==
 
== Enable HTTPS/SSL (optional) ==
 
I personally prefer doing this with a trusted certificate. Even possible for free with [[Let's Encrypt configuration | Let's Encrypt]] for example.
 
I personally prefer doing this with a trusted certificate. Even possible for free with [[Let's Encrypt configuration | Let's Encrypt]] for example.
  
* '''sudo yum install mod_ssl'''  --> install required components
+
* '''yum install mod_ssl'''  --> install required components
 
* '''cd /etc/pki/tls/certs'''  --> goto folder
 
* '''cd /etc/pki/tls/certs'''  --> goto folder
 
* '''make server.key''' --> create key (give in passphrase and confirm)
 
* '''make server.key''' --> create key (give in passphrase and confirm)
Line 60: Line 60:
 
* '''make server.csr''' (give in country, state, city, company, department, common name, email-address)
 
* '''make server.csr''' (give in country, state, city, company, department, common name, email-address)
 
* '''openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650'''
 
* '''openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650'''
* '''sudo nano /etc/httpd/conf.d/ssl.conf'''
+
* '''nano /etc/httpd/conf.d/ssl.conf'''
 
   uncomment '''DocumentRoot “/var/www/html/owncloud”'''
 
   uncomment '''DocumentRoot “/var/www/html/owncloud”'''
 
   '''ServerName <host>.<domain>.<tld>:443'''
 
   '''ServerName <host>.<domain>.<tld>:443'''
 
   '''SSLCertificateFile /etc/pki/tls/certs/server.crt'''
 
   '''SSLCertificateFile /etc/pki/tls/certs/server.crt'''
 
   '''SSLCertificateKeyFile /etc/pki/tls/certs/server.key'''
 
   '''SSLCertificateKeyFile /etc/pki/tls/certs/server.key'''
* '''sudo systemctl restart httpd''' --> restart Apache with new configuration
+
* '''systemctl restart httpd''' --> restart Apache with new configuration

Latest revision as of 08:09, 31 October 2016

Intro

The steps below will configure a working Owncloud 9.1.1 server. The steps assume that you have a (fresh) CentOS 7 server running with a working local installation of MySQL.

Apache installation

  • yum install httpd --> install httpd (Apache)
  • systemctl start httpd --> start Apache
  • systemctl enable httpd --> enable Apache at boot

Download and install Owncloud

  • yum install xz bzip2 --> tools needed to extract the package
  • cd /home/<folder> --> go to a folder to download the package
  • wget https://download.owncloud.org/community/owncloud-9.1.1.tar.bz2 --> download the package (in this case Owncloud 9.1.1
  • cp owncloud-9.1.1.tar.bz2 /var/www/html/ --> Copy the package to the active folder of the webserver
  • tar -jxvf /var/www/html/owncloud-9.1.1.tar.bz2 --> extract the package
  • rm /var/www/html/owncloud-9.1.1.tar.bz2 --> remove the package after extraction
  • mkdir /owncloud-data --> make the directory which will hold the data of the Owncloud-users
  • chown apache:apache /owncloud-data --> make apache owner of the folders
  • chown apache:apache /var/www/html/owncloud --> make apache owner of the folders

Firewall configuration

  • firewall-cmd --permanent --add-service=http --> allow http(tcp/80) traffic through the firewall
  • firewall-cmd --permanent --add-service=https --> allow https(tcp/443) traffic through the firewall
  • firewall-cmd --reload --> restart firewall with new config

Disable SE-Linux (optional)

  • nano /etc/selinux/config
change "SELINUX=enforcing" in "SEXLINUX=disabled"

MySQL configuration

  • mysql -h localhost -u root -p --> connnect to existing MySQL server (on the localhost in this example)
  • create database owncloud; --> create a database for Owncloud
  • create user <user>@localhost identified by ‘<password>’; --> Create a user for the Owncloud services (@localhost assumes that MySQL is running on the same server)
  • grant all privileges on owncloud.* to <user>@localhost identified by ‘<password>’; --> apply rights to the user
  • flush privileges; --> reload the rights
  • exit --> exit MySQL console

PHP installation

  • yum install php php-mysql php-curl php-xmlreader php-xmlwriter php-gd --> install required PHP modules
  • systemctl restart httpd.service --> Restart Apache to load new modules

Vhost configuration

  • mkdir /etc/httpd/sites-available --> create folder where the vhost-files will be configured
  • mkdir /etc/httpd/sites-enabled --> create a folder where the vhost-files will be linked as active sites
  • nano /etc/httpd/conf/httpd.conf --> add "includeOptional sites-enabled/*.conf" to end of file
  • nano /etc/httpd/sites-available/<site>.conf --> create a vhost-file
 <VirtualHost *:80>
   ServerName <host>.<domain>.<tld>
   ServerAlias <domain>.<tld>
   DocumentRoot /var/www/html/owncloud
 </VirtualHost>
  • ln -s /etc/httpd/sites-available/<site>.conf /etc/httpd/sites-enabled/<site>.conf --> link a site to make it active

Enable HTTPS/SSL (optional)

I personally prefer doing this with a trusted certificate. Even possible for free with Let's Encrypt for example.

  • yum install mod_ssl --> install required components
  • cd /etc/pki/tls/certs --> goto folder
  • make server.key --> create key (give in passphrase and confirm)
  • openssl rsa -in server.key -out server.key (give in passphrase)
  • make server.csr (give in country, state, city, company, department, common name, email-address)
  • openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
  • nano /etc/httpd/conf.d/ssl.conf
 uncomment DocumentRoot “/var/www/html/owncloud”
 ServerName <host>.<domain>.<tld>:443
 SSLCertificateFile /etc/pki/tls/certs/server.crt
 SSLCertificateKeyFile /etc/pki/tls/certs/server.key
  • systemctl restart httpd --> restart Apache with new configuration