ownCloud adalah aplikasi berbagi file OpenSource berdasarkan bahasa pemrograman PHP. OwnCloud menyediakan sinkronisasi dan berbagi file yang dihosting sendiri dengan antarmuka web yang bagus dan aplikasi sinkronisasi untuk semua platform seluler dan desktop utama dengan fungsionalitas seperti dropbox, mega, dll. ownCloud memudahkan untuk mengakses dan menyinkronkan file, kalender, dan kontak di seluruh Anda perangkat.
Dalam tutorial ini, saya akan memandu Anda untuk membuat sinkronisasi Anda sendiri dan berbagi platform server dengan ownCloud. Kami akan menginstal ownCloud dengan Nginx sebagai server web, MariaDB (sebuah fork MySQL) sebagai database dan php-fpm untuk menangani permintaan php di Linux OpenSUSE Leap 42.1.
Prasyarat
- OpenSUSE Leap 42.1
- Hak istimewa root
- Memahami perintah zypper
Langkah 1 - Instal SuSEfirewall2
SuSEfirewall adalah skrip firewall yang menyimpan konfigurasinya di file "/etc/sysconfig/SuSEfirewall2". Dengan SuSEfirewall2, Anda dapat membuka port dengan mengedit file "SuSEfirewall2".
Instal SuSEfirewall2 dengan perintah zypper:
zypper in SuSEfirewall2
Saat firewall diinstal, buka direktori sysconfig dan edit konfigurasi "SuSEfirewall2" dengan vim:
cd /etc/sysconfig/
vim SuSEfirewall2
Pergi ke baris 253 dan tambahkan port dari semua layanan yang ingin Anda gunakan. Pada langkah ini, saya akan menambahkan port:ssh, http, dan https.
FW_SERVICES_EXT_TCP="22 80 443"
Simpan file dan keluar dari editor.
Selanjutnya, mulai SuSEfirewall2 dan aktifkan untuk berjalan saat boot:
systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2
Sekarang mulai ulang layanan sshd:
systemctl restart sshd
Jika Anda ingin menguji port server SSH, Anda dapat menggunakan perintah telnet untuk terhubung ke port 22:
telnet 192.168.1.101 22
Langkah 2 - Instal Nginx
Nginx adalah server web ringan dengan memori rendah dan konsumsi CPU. Kami akan menggunakan nginx sebagai server web untuk instalasi ownCloud kami.
Instal nginx dengan perintah zypper:
zypper in nginx
Mulai nginx dan aktifkan untuk dijalankan saat boot dengan perintah systemctl:
systemctl start nginx
systemctl enable nginx
Selanjutnya, tambahkan file index.html untuk menguji apakah nginx berfungsi.
echo "This is Nginx Page OpenSUSE Leap" > /srv/www/htdocs/index.html
Sekarang Anda dapat mengakses server web nginx dari browser web Anda, atau Anda dapat memeriksanya dengan curl:
curl -I 192.168.1.101
curl 192.168.1.101
Langkah 3 - Instal dan Konfigurasi MariaDB
MariaDB adalah garpu berbasis OpenSource RDBMS dari database MySQL. Pada langkah ini, kita akan menginstal dan mengkonfigurasi MariaDB. Kemudian kita akan membuat user dan database baru untuk instalasi ownCloud.
Instal MariaDB dengan perintah zypper di bawah ini:
zypper in mariadb mariadb-client
Sekarang mulai MariaDB dan tambahkan ke sistem startup:
systemctl start mysql
systemctl enable mysql
MariaDB telah dimulai, sekarang Anda dapat mengonfigurasi kata sandi root untuk MariaDB dengan perintah di bawah ini:
mysql_secure_installation
Setel kata sandi MariaDB/MySQL:
Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Kata sandi root MariaDB telah dikonfigurasi. Sekarang kita dapat login ke shell MariaDB/MySQL dan membuat database baru dan pengguna baru untuk ownCloud.
Masuk ke shell MariaDB/MySQL:
mysql -u root -p
TYPE your password
Buat database baru "owncloud_db" dan pengguna baru "ownclouduser" dengan sandi "[email protected]":
create database owncloud_db;
create user [email protected] identified by '[email protected]';
grant all privileges on owncloud_db.* to [email protected] identified by '[email protected]';
flush privileges;
exit
Basis data untuk instalasi ownCloud telah dibuat.
Langkah 4 - Instal dan Konfigurasi PHP-FPM
PHP-FPM (FastCGI Process Manager) adalah alternatif FastCGI modern untuk menangani situs dengan banyak pengunjung. PHP-FPM memiliki manajemen proses yang canggih dan mudah untuk dikelola dan dikonfigurasi.
Pada langkah ini, kita akan menginstal php-fpm dan beberapa ekstensi PHP, kemudian kita akan mengkonfigurasi server web nginx untuk menangani permintaan file php melalui php-fpm.
Instal php-fpm dengan perintah "zypper in" ini:
zypper in php5-fpm php5-gd php5-mcrypt php5-mysql php5-pear php5-zip php5-curl php5-ldap php5-json
Ketika instalasi selesai, buka direktori php-fpm dan salin file konfigurasi default:
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
Edit file php-fpm.conf dengan editor vim atau nano:
vim php-fpm.conf
Batalkan komentar pada baris 32 untuk mengaktifkan log php-fpm. Jika nanti ada kesalahan dalam skrip PHP Anda, maka Anda dapat menemukan file log di direktori "/var/log/".
error_log = log/php-fpm.log
Ubah baris 148 - 149 menjadi "nginx" untuk pengguna/grup proses unix.
user = nginx
group = nginx
Ubah nilai pada baris 159 untuk menjalankan php-fpm dengan file socket.
listen = /var/run/php-fpm.sock
Batalkan komentar dan ubah nilai pada baris 170 - 172 untuk menyetel izin soket unix.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Simpan file dan keluar dari editor.
Selanjutnya, edit file php.ini di direktori cli:
cd /etc/php5/cli/
vim php.ini
Batalkan komentar dan ubah nilainya pada baris 758:
cgi.fix_pathinfo=0
Simpan dan keluar.
Salin file php.ini ke direktori conf.d:
cp php.ini /etc/php5/conf.d/
Sekarang konfigurasikan jalur penangan sesi php. Dalam tutorial ini, kita menjalankan php-fpm sebagai pengguna nginx, jadi pastikan pengguna nginx dapat menulis ke direktori sesi. Anda dapat melihat konfigurasi jalur sesi di file php.ini pada baris 1390.
session.save_path = "/var/lib/php5"
Ubah pemilik direktori sesi "/var/lib/php5/", jadikan pengguna nginx sebagai pemilik direktori:
chown -R nginx:nginx /var/lib/php5/
Selanjutnya, konfigurasikan php-fpm agar berfungsi dengan server web nginx. Buka direktori konfigurasi nginx dan buat cadangan file nginx.conf sebelum Anda mengedit konfigurasi.
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf
Tambahkan konfigurasi baru berikut pada baris 65 - konfigurasi ini akan menangani semua permintaan file PHP.
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Simpan dan keluar, lalu uji konfigurasi nginx untuk memastikan tidak ada kesalahan dalam konfigurasi:
nginx -t
Jika tidak ada kesalahan, Anda dapat melihat hasilnya di bawah ini:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Sekarang mulai php-fpm dan tambahkan ke stat saat boot, lalu restart layanan nginx:
systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx
Nginx dan php-fpm dikonfigurasi, Anda dapat menguji file php dengan membuat file phpinfo() baru di direktori root web:
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
Buka browser Anda dan kunjungi IP server:
http://192.168.1.101/info.php
atau Anda dapat menggunakan curl:
curl -I 192.168.1.101/info.php
Langkah 5 - Buat Sertifikat SSL
Menjalankan ownCloud melalui koneksi https yang aman sangat penting untuk menjaga file Anda tetap aman dan pribadi. Jika Anda menjalankan ownCloud di perusahaan Anda sendiri, Anda dapat membeli sertifikat SSL, atau jika Anda menginginkan sertifikat SSL gratis, Anda dapat menggunakan Let's-encrypt. Di sini saya akan membuat apa yang disebut sertifikat SSL "yang ditandatangani sendiri", enkripsi sertifikat yang ditandatangani sendiri tidak lebih rendah dari sertifikat resmi tetapi Anda harus menerima peringatan keamanan di browser Anda ketika Anda mengakses layanan pertama kali .
Buat direktori "ssl" baru dan buat sertifikat dengan perintah openssl:
cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key
Selanjutnya, ubah izin kunci:
chmod 600 example-owncloud.key
Langkah 6 - Instal dan Konfigurasikan ownCloud
Pada langkah ini, kita akan menginstal ownCloud dan mengonfigurasi virtual host nginx baru untuk domain ownCloud. Kami akan menginstal owncloud dengan nama domain "example-owncloud.co", dan file root web di direktori "/srv/www/owncloud/".
Unduh ownCloud
Buka direktori "/srv/www/" dan unduh sumber ownCloud dan ekstrak:
cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
unzip owncloud-9.0.2.zip
Sekarang buat direktori data baru di bawah direktori owncloud untuk menyimpan semua data pengguna. Ubah pemilik direktori ownCloud menjadi pengguna nginx:
mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/
Mengonfigurasi Host Virtual Nginx untuk ownCloud
Buka direktori nginx dan buat direktori baru untuk konfigurasi file virtual host:
cd /etc/nginx/
mkdir vhosts.d/
Buka direktori vhosts.d dan buat file host virtual baru untuk owncloud "example-owncloud.conf".
cd vhosts.d/
vim example-owncloud.conf
rekatkan konfigurasi di bawah ini:
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php-fpm.sock;
}
server {
listen 80;
server_name example-owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example-owncloud.co;
ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;
# Path to the root of your installation
root /srv/www/owncloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}
Simpan file dan keluar dari editor.
Uji konfigurasi nginx dan jangan lupa restart semua layanan:
nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql
Pengujian
Kunjungi domain owncloud:
contoh-owncloud.co
Anda akan dialihkan ke koneksi https.
Selanjutnya, ketik user admin dan password, nama database, user, dan password dan klik "Finish Setup".
Tunggu sebentar dan Anda akan melihat pengelola file owncloud:
Instalasi ownCloud dengan nginx dan MariaDB di OpenSUSE Leap 42.1 selesai.
Referensi
- https://doc.owncloud.org/
- https://www.howtoforge.com/tutorial/install-nginx-php-and-mysql-lemp-stack-on-opensuse-leap-42.1/
- https://www.howtoforge.com/tutorial/how-to-install-owncloud-8-with-nginx-and-mariadb-on-centos-7/