GNU/Linux >> Belajar Linux >  >> OpenSuse

Cara Menginstal ownCloud 9 dengan Nginx di OpenSUSE Leap 42.1

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/


OpenSuse
  1. Bagaimana menginstal Mongodb 5 di Opensuse Leap 15.3

  2. Bagaimana menginstal Mysql Server 8 pada OpenSUSE Leap 15.3

  3. Cara menginstal &mengkonfigurasi Redis 6 pada OpenSUSE Leap 15.3

  1. Cara Menginstal Seafile dengan Nginx di openSUSE Leap 42.1

  2. Cara Menginstal dan mengatur Nginx sebagai proxy OpenSUSE Leap 15.3

  3. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di OpenSUSE Leap 15.3

  1. Cara Menginstal Nginx Dengan PHP-FPM Dan MySQL Di openSUSE 12.1

  2. Bagaimana cara menginstal Erlang di Opensuse Leap 15.3

  3. Bagaimana menginstal Java 17 di OpenSUSE Leap 15.3