OwnCloud is like having a personal cloud only for your storage requirements. It is much more like Dropbox like system that allows you to store and sync all your files over the network. You can use either a standalone client or a simple web interface to access your files on your cloud. You can access your files anytime you need and from anywhere you want. OwnCloud is available for free but includes all the features that you may find on commercial cloud storage systems. And there is even a commercial version available. In this article, we’ll take a look about how to install OwnCloud 10 on Cent OS 7 and RHEL 7.
Important Features
- Great alternative to Dropbox in terms of file storage
- Access files using web interface or standalone interface
- Versioning of files is maintained, so you can even get the first version of the file uploaded
- Easily synchronize your local folders with OwnCloud
- Download the Owncloud standalone client freely for Windows, Linux and Mac OSX
- Apps for Android and iOS also available to access OwnCloud from your mobile phone
- Supports multiple users
- Share files with other users on the same server
- Encryption and Security
- Activity Feed
- Calendars and Contacts
- Collaborative Editing
Prerequisites to Install OwnCloud
To install OwnCloud 10 on CentsOS 7 and RHEL 7, you need to have the following prerequisites:
- Redhat software collection repository enabled (only for RHEL 7)
- EPEL repository enabled
- Apache server and PHP extensions installed
- MariaDB installed
Note: in this tutorial, IP address of my machine is 192.168.0.107 and Hostname is set as “ownlcoud10.linuxbuzz.com” and for local dns entry I have update the below entry in /etc/hosts file,
192.168.0.107 owncloud10.linuxbuzz.com owncloud10
Now let’s see how to enable / install these,
To enable Redhat software collection repository in RHEL7, use the following command:
[root@owncloud10 ~]# subscription-manager repos --enable rhel-server-rhscl-7-eus-rpms
Note : If you have Centos 7 server then no need to run above subscription-manager command,
Use below command to enable EPEL repository and yum utils ,
[root@owncloud10 ~]# yum install epel-release yum-utils -y
Owncloud is only compatible with PHP 5.6 and above so we will be using latest version of PHP 7.2, refer below commands to install it along with its core-components
[root@owncloud10 ~]# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y [root@owncloud10 ~]# yum-config-manager --enable remi-php72
Now Install Apache Web Server along with PHP 7.2 using following yum command
[root@owncloud10 ~]# yum install httpd php php-mysql php-dom php-mbstring php-gd php-pdo php-json php-xml php-zip php-curl php-mcrypt php-pear php-intl setroubleshoot-server -y
Let’s install the database server as “MariaDB”, use the following command:
[root@owncloud10 ~]# yum install wget mariadb-server mariadb -y
Setup ownCloud 10 Repository
Import the Owncloud Signing Key
Here, we will use Linux installer for the installation of ownCloud. Import the ownCloud signing key using the rpm command.
Use the following command to download the signing key on CentOS 7
[root@owncloud10 ~]# rpm --import https://download.owncloud.org/download/repositories/production/CentOS_7/repodata/repomd.xml.key
Use the following code to download the signing key on RHEL 7
[root@owncloud10 ~]# rpm --import https://download.owncloud.org/download/repositories/production/RHEL_7/repodata/repomd.xml.key
Add the Owncloud 10 Repository in your system
Use the following commands to add it on CentOS 7
[root@owncloud10 ~]# cd /etc/yum.repos.d/ [root@owncloud10 yum.repos.d]# wget http://download.owncloud.org/download/repositories/production/CentOS_7/ce:stable.repo
Use the following code to add it on RHEL 7
[root@owncloud10 ~]# cd /etc/yum.repos.d/ [root@owncloud10 ~]# wget http://download.owncloud.org/download/repositories/production/RHEL_7/ce:stable.repo
Install Owncloud 10 in your system
Now we’ll be using the yum command to install the OwnCloud Package
[root@owncloud10 ~]# yum install owncloud -y
Set the required permissions on ownCloud directory
[root@owncloud10 ~]# chown -R apache.apache /var/www/html/owncloud/
Use the following commands to start and enable Apache and database service,
[root@owncloud10 ~]# systemctl start httpd [root@owncloud10 ~]# systemctl start mariadb [root@owncloud10 ~]# systemctl enable httpd [root@owncloud10 ~]# systemctl enable mariadb
Create Database for ownCloud
As of now we have freshly installed mariadb server and did not set its root password, run beneath command to set root password, remove test database, Remove anonymous users and disable remote root login,
[root@owncloud10 ~]# mysql_secure_installation
Now you need to create a database, so login to your MYSQL server and run the following command first:
[root@owncloud10 ~]# mysql -u root -p
Now use the following command to create a database called as “owncloud10db”
MariaDB [(none)]> create database owncloud10db; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]>
Now grant the “clouddbuser” permission to access the “owncloud10db” database with a password you specify on localhost
MariaDB [(none)]> grant all on owncloud10db.* to 'clouddbuser'@'localhost' identified by '{Passwd-here}'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]>
Now flush all privileges and time to exit from the MYSQL
MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye [root@owncloud10 ~]#
SELinux and Firewall Rules for OwnCloud
Security Enhanced Linux or SELinux is a kernel security module that supports access control mechanism. If SELinux is enabled on you server then write the following selinux rules for owncloud, else you can skip this step
[root@owncloud10 ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data' [root@owncloud10 ~]# restorecon '/var/www/html/owncloud/data' [root@owncloud10 ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config' [root@owncloud10 ~]# restorecon '/var/www/html/owncloud/config' [root@owncloud10 ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps' [root@owncloud10 ~]# restorecon '/var/www/html/owncloud/apps'
In Case OS Firewall is enabled and configured on your server then allow http and https ports using following firewall-cmd command,
[root@owncloud10 ~]# firewall-cmd --permanent --add-service=http success [root@owncloud10 ~]# firewall-cmd --permanent --add-service=https success [root@owncloud10 ~]# firewall-cmd --reload success [root@owncloud10 ~]#
Now Setup ownCloud using Installation wizard
Now it is time to configure your Owncloud. To do that go to the following URL
http://<Your-Server-Ip-address>/owncloud
Provide your user name, password, database information and the Owncloud folder details. Once you provide all the details required, Click on “Finish Setup” and then installer will automatically redirects you to OwnCloud Login Page
Once you are authenticated successfully you will get owncloud dashboard something like below
This confirms that our owncloud has been installed successfully and now start sharing files whenever you need. Please share your feedback and comments in the comments section below.