HOWTO : OwnCloud 9.0.2 and Hiawatha 10.2 on Ubuntu 16.04 LTS

Step 1 - Update Ubuntu :



sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get autoclean

sudo apt-get --purge autoremove




Step 2 - Hiawatha Installation :



sudo apt-get install libc6-dev libssl-dev dpkg-dev debhelper fakeroot libxml2-dev libxslt1-dev



wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

tar -xvzf cmake-3.5.2.tar.gz

cd cmake-3.5.2

./configure

make

sudo make install




wget http://www.hiawatha-webserver.org/files/hiawatha-10.2.tar.gz

tar -xzvf hiawatha-10.2.tar.gz

cd hiawatha-10.2/extra

./make_debian_package

cd ..

sudo dpkg -i hiawatha_10.2_amd64.deb




sudo mkdir /etc/hiawatha/enable-sites



sudo nano /etc/hiawatha/hiawatha.conf



Add "SocketSendTimeout" just before "Binding Setting" :



SocketSendTimeout = 30



Add "MaxRequestSize" to "Binding Settings" :



# BINDING SETTINGS

# A binding is where a client can connect to.

#

Binding {

    Port = 80

    # MaxRequestSize is 100GB

    MaxRequestSize = 104857600

    MaxUploadSize = 2047

    TimeForRequest = 5,50

    MaxKeepAlive = 14400

}




Append the following line at the end of the file :



Include /etc/hiawatha/enable-sites/



Create "owncloud" file at /etc/hiawatha/enable-sites :



sudo nano /etc/hiawatha/enable-sites/owncloud



VirtualHost {

    Hostname = [your domain or IP address here]

    WebsiteRoot = /var/www/owncloud

    StartFile = index.php

    AccessLogfile = /var/log/hiawatha/owncloud-access.log

    ErrorLogfile = /var/log/hiawatha/owncloud-error.log

    TimeForCGI = 14400

    WebDAVapp = yes

    UseFastCGI = PHP70

    UseToolkit = denyData

    EnablePathInfo = yes

}



UrlToolkit {

    ToolkitID = denyData

    Match ^/data DenyAccess

}



FastCGIserver {

    FastCGIid = PHP70

    ConnectTo = /var/run/php/php7.0-fpm.sock

    Extension = php

    SessionTimeout = 14400

}




sudo nano /etc/php/7.0/fpm/php-fpm.conf



Append the following lines at the end of the file :



; for OwnCloud

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp



[www]

pm.max_children=1000

pm.start_servers=50

pm.min_spare_servers=25

pm.max_spare_servers=75




Step 3 - MySQL Setting :



sudo mysql -u root -p



create database owncloud;

GRANT ALL ON owncloud.* TO owncloud@'127.0.0.1' IDENTIFIED BY '[your password here]';

flush privileges;

quit




Step 4 - OwnCloud Installation :



wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key -O Release.key

sudo apt-key add - < Release.key



rm Release.key



sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' >> /etc/apt/sources.list.d/owncloud.list"

sudo apt-get update

sudo apt-get install owncloud-files




sudo apt-get install exim4 exim4-base exim4-config exim4-daemon-light libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 s-nail php-common php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-imap php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-readline php7.0-xml php7.0-zip php7.0-pgsql php7.0-sqlite3 php7.0-fpm php-apcu mysql-server mysql-client php7.0-cgi



sudo nano /var/www/owncloud/.user.ini



The content of the file may looking like this one :



upload_max_filesize=100G

post_max_size=100G

memory_limit=12G

mbstring.func_overload=0

always_populate_raw_post_data=-1

default_charset='UTF-8'

output_buffering=0

max_input_time=3600

max_execution_time=3600

upload_tmp_dir='/tmp/'

max_file_upload=5000




sudo nano /var/www/owncloud/config/config.php



Insert the following line into the end of the block of the code :



'memcache.local' => '\OC\Memcache\APCu',



You may need to edit the following file at client sync program when necessary :



sudo nano /etc/ownCloud/sync-exclude.lst



To restart OwnCloud and Hiawatha services :



sudo /etc/init.d/php7.0-fpm restart

sudo /etc/init.d/hiawatha restart




Remarks :



If you want to have https connection, you need to generate the private SSL certificate or purchase one. You can also use Let's Encrypt when necessary. If so, the "binding settings" at Hiawatha should be "Port 443".



That's all! See you.