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 smartphone app. The project 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.
The following are the list of features available on ownCloud.
- File storage in conventional directory structures
- Synchronization of data with th desktop, web client or mobile app.
- Calendar (also as CalDAV)
- Task scheduler
- Address book (also as CardDAV)
- Music streaming (through Ampache)
- User and group administration (via OpenID or LDAP)
- Sharing of content across groups or public URLs
- Online text editor with syntax highlighting and code folding
- URL shortening Suite
- Photo gallery
- PDF viewer (using pdf.js)
- Viewer for ODF Files (.odt, .odp, .ods)
- Supports uploading of avatar picture.
- Shows thumbnail of documents
- Supports web conflict dialogue box when the file already exits.
- With activity feed, you can see whats going on
- New design
- User can restore the deleted files.
New Features in ownCloud 7:
- Improved sharing between two owncloud installation.
- Faster and more efficient design, suitable for mobile devices
- Store, Access and Control
As mentioned earlier, it is based on PHP and database combination, database can be any of the above four. So install PHP, Apache web server and MySQL server on CentOS 7. For demo purpose i installed both SQLite and MySQL on CentOS, we will talk about reason behind later.
yum install httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo wget
Set SELinux to allow OwnCloud to write the data.
setsebool -P httpd_unified 1
Allow apache in firewall.
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
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
Download and Setup:
Download ownCloud from official website or enter the following command on terminal.
Extract the archive.
tar -jxvf owncloud-7.0.0.tar.bz2 -C /var/www/html/
Allow the web server to read and write the files on cloud directory.
chown -R apache.apache /var/www/html/owncloud/
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';
Configure Apache server:
While configuring Apache web server, it is recommended that you to enable .htaccess to get an enhanced security features, by default .htaccess is disabled in Apache server. To enable it, open your virtual host file and make AllowOverride is set to All.For example, here i used external config file instead of modifying main file.
Add the following.
Alias /owncloud /var/www/html/owncloud
Options Indexes FollowSymLinks
allow from all
Remember to restart all services related to Apache server.
systemctl restart httpd.service
Open up web browser, point a URL to http://your-ip-address/owncloud. Browser will automatically 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 require to enter database details. where as MySQL database requires database user, password and data base 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