ownCloud is a web suite that provides a cloud storage over the network, data can be uploaded via web browser or using software client. Data will be stored on the server and can be downloaded or access any time with browser or desktop client or smart phone app.
ownCloud is based on PHP and a SQLite, MySQL, Oracle or PostgreSQL database, so it can run on all platforms that meet these requirements. It provides almost all possibility of functions that are available on commercial suites; it is released under AGPLv3 license, so you can setup own cloud storage server without any additional cost.
Commercial version of ownCloud is also available.
What’s new in ownCloud 8:
- It is now easier to keep ownCloud updated with the channel of your choice via the built-in Updater app and our package repositories.
- ownCloud Server 8.1 brings much improved performance in the areas of syncing, file operations and dealing with parallel requests.
- To make ownCloud easier to use, documentation has been massively improved and integrated in the interface.
The following are the list of features available on ownCloud.
- Mobile and Desktop Syncing
- Share With Anybody
- External Storage
- Encryption and Security
- Versioning and Undelete
- Activity Feed
- Calendars and Contacts
- Collaborative Editing
- Play Music, Watch Movies, Store Passwords
As mentioned earlier, it is based on PHP and database combination, database can be any of from SQLite, MySQL, Oracle or PostgreSQL database. For demo purpose, i am going to use MariaDB as a database with ownCloud on CentOS, we will talk about reason behind later.
yum -y install wget mariadb-server php-mysql
Download and Setup:
ownCloud provides the official packages for setting up it, configure ownCloud repository using following command.
### CentOS 7 ### cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_7/isv:ownCloud:community.repo yum install owncloud ### RHEL 7 ### cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/isv:ownCloud:community/RedHat_RHEL-7/isv:ownCloud:community.repo yum install owncloud
Allow apache in firewall.
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
Allow the web server to read and write the files on ownCloud directory.
chown -R apache.apache /var/www/html/owncloud/
Start Apache and MariaDB.
systemctl start httpd.service systemctl start mariadb.service
Auto start the service at system start-up.
systemctl enable httpd.service systemctl enable mariadb.service
If you are setting up a MariaDB for the first time, here is the tutorial on Securing MariaDB. MariaDB server must be started before creating the database, login to MySQL server.
mysql -u root -p
Create database called “clouddb”
create database clouddb;
Allow “clouddbuser” to access the “clouddb” database on localhost with predefined password.
grant all on clouddb.* to 'clouddbuser'@'localhost' identified by 'password';
Set SELinux to allow OwnCloud to write the data.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data' restorecon '/var/www/html/owncloud/data' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config' restorecon '/var/www/html/owncloud/config' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps' restorecon '/var/www/html/owncloud/apps'
Open up web browser, point a URL to http://your-ip-address/owncloud. Browser will take you to ownCloud setup page where it must be configured before going to live.
Enter admin user name, password, data folder location and database details.
You can choose any one of the database from SQLite or MySQL. If you choose SQLite database, you do not have to enter database details. where as MySQL database requires database user, password and database name.
Alternately you can download ownCloud client to upload the files.
Home page will look like this, you can start uploading the contents using upload button.
The default maximum file size for uploads is 512MB. You can increase this limit by editing .htaccess file.
Modify the below entries.
php_value upload_max_filesize 513M php_value post_max_size 513M