Originally posted on phunkymunkys.com on 02/12/2013. Original Post
This information may be out of date due to the age of the original post and the new versions of ownCloud now available, I am posting this here for my own historical record. The rest of this post is from the original post.
Disclaimer: Most of the information in this post is taken from the ownCloud website (owncloud.org) but is tweaked for use on Slackware since the ownCloud site generally only gives distro specific instructions for Debian, Fedora, CentOS, Ubuntu, openSUSE, ArchLinux, Gentoo and PCLinuxOS.
ownCloud is a Dropbox type application which is entirely under your control, it can be installed on any webserver providing it meets the requirements (ownCloud requirements)
I was talking with a friend who said he was having problems keeping all his devices (2 desktop computers, 2 laptop computers, tablet and 2 phones) in sync as the applications he used only allowed syncing to 2 or 3 devices without paying for extra licences, he uses computers a lot as tools for work but does not have the technical skills (or time) required to deal with any installation/configuration of anything not “click to install”. This got me thinking and I remembered reading about ownCloud so I decided to look into this to see if it could help.
My home system is running Slackware 14.0 with Apache and PHP5.
There are two elements to the ownCloud system the server application and the optional ownCloud client installed on the users computer(s). The server application is a single zipped download from the ownCloud website and for a Slackware installation the client application consists of two packages ocsync and mirall (these are discussed and installed in Part 2 – the client)
The ownCloud server application can be downloaded from the ownCloud website and consists of the PHP files and associated content required to run the application. All that is required to install it is to extract the downloaded files and copy them to the webserver (probably need to do this as root).
$ tar -xjf owncloud-5.0.13.tar.bz2
Change to root and copy to webserver:
# cp -r owncloud/ /var/www/htdocs/
User files are stored under the data directory which does not exist at this point so it needs to be created. (The ownCloud instructions say that the data directory will be automatically created during the post install configuration but when I tried it complained that the data directory did not exist and should be created before continuing.)
# mkdir /var/www/htdocs/owncloud/data
Once this is done you need to change the ownership of the apps, config and data directories to the webserver user, in this case apache.
# chown -R apache:apache /var/www/htdocs/owncloud/apps
# chown -R apache:apache /var/www/htdocs/owncloud/config
# chown -R apache:apache /var/www/htdocs/owncloud/data
This should result in a similir setup as below for the /var/www/htdocs/ownCloud directory.
.htaccess and AllowOverride
ownCloud uses .htaccessfiles and the mod_rewrite module so these need to be configured since we are using the Apache server. This is done by editing the Apache configuration file /etc/httpd/httpd.conf . This is done by making sure that the mod_rewrite module line is uncommented and that the AllowOveride is set to All. Once these changes are done the server needs restarted to allow the changes to take effect
Provided there are no error messages you are now ready to do the first configuration through the web browser.
The install is finished by going through the installation setup through your web browser at your_server_IP/owncloud. If this on your local machine it usually is localhost/owncloud
Here you can enter the admin account details and set up the database in use by entering the database user details. Once this is done you can login to your new ownCloud installation and customise the setup and add users etc.
Once you have got this installed and setup using the web interface you can go ahead and install the client for any users. The instructions for this are in the second part here Setting up ownCloud on Slackware 14.0 (part 2 – the client)