Memindahahkan Data Direktori PostgreSQL di Linux Debian 9 Stretch

Masuk ke user postgres dengan command
su postgres

Masuk ke mode Postgresql dengan command
psql

Setalah masuk pada command aktif PostgreSQL, lihat data directory Postgresql tersimpan dengan command
SHOW data_directory;

Maka default directory nya akan tampil seperti di bawah
       data_directory       
------------------------------
/var/lib/postgresql/10/main
(1 row)

Setelah tahu dimana directory Postgresql di simpan, sekarang keluar dari mode aktif Postgresql dengan command
\q

Kemudian keluar dari user postgres dengan command
exit

Kemudian stop Postgresql dengan command
/etc/ini.d/postgresql stop

Membuat Folder (Directory) Postgresql  di /data/, dengan command
mkdir /data/postgresql

Copy directory Postgresql ke direktori yang dikehendaki, disini saya mencontohkan ke direktori /data/, adapan cara mengcopy-nya saya menggunakan rsync agar direktori tersebut tercopy secara utuh, adapun commandnya
rsync -av /var/lib/postgresql /data/postgresql

Rename directory default Postgresql menjadi backup, agar ketika terjadi masalah, kita dapat mengambilnya lagi dengan command
mv /var/lib/postgresql/10/main  /var/lib/postgresql/10/main.backup

Arahkan data direktori Postgresql ke direktori yang baru di /etc/postgresql/10/main/postgresql.conf dengan command
nano /etc/postgresql/10/main/postgresql.conf

Edit menjadi dibawah ini dan kemudian simpan
. . .
data_directory = '/data/postgresql/10/main'
. . .

Start/jalankan kembali postgresql dengan command
/etc/ini.d/postgresql start

kemudian cek kembali direktori Postgresql dengan mode aktif Postgresql seperti di atas

Install NextCloud di Debian 9 dengan Nginx SSL, PHP 7.1, dan MariaDB

Install nginx dengan command
apt-get install nginx

Install MariaDB dengan command
apt-get install mariadb-server mariadb-client

agar MariaDB aman maka lakukan command berikut
mysql_secure_installation

ketika muncul tampilan prompt, jawab sesuai di bawah ini :

  • Enter current password for root (enter for none): Just press the Enter
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y
kemudian restart MariaDB dengan command
/etc/ini.d/mysql restart

Install PHP 7.1 FPM dan Modul-modulnya 
Import signing key dan aktifkan PPA (Personal Package Archive) pihak ketiga dengan command
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list

Kemudian update debian anda dengan command
apt-get update

Jika terjadi error berikut ini :
Reading package lists... Done
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
E: Failed to fetch https://packages.sury.org/php/dists/stretch/InRelease
E: Some index files failed to download. They have been ignored, or old ones used instead.

ketika error di atas berarti harus ada paket yang di install, dengan command 
apt-get install ca-certificates apt-transport-https
Kemudian lakukan update lagi.

Kemudian install PHP 7.1 beserta modulnya dengan command
apt-get install php7.1-fpm php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-apcu php7.1-smbclient php7.1-ldap php7.1-redis php7.1-gd php7.1-xml php7.1-intl php7.1-json php7.1-imagick php7.1-mysql php7.1-cli php7.1-mcrypt php7.1-ldap php7.1-zip php7.1-curl

Edit configurasi PHP7.1 di /etc/php/7.1/fpm/php.ini dengan command
nano /etc/php/7.1/fpm/php.ini

kemudian edit konfigurasi seperti dibawah ini dan save : 
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = America/Chicago

Membuat Database NextCloud 
Sebelum membuat database kita harus masuk mysql dengan user root dengan command
mysql -u root -p 

Buat database dengan nama nextcloud dengan command
CREATE DATABASE nextcloud;

Buat user dengan nama nextclouduser beserta passwordnya dengan command 
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'new_password_here';

Beri akses full user tersebut ke database dengan command
GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Simpan pergantiannya dan kemudian keluar dari mode mysql dengan command
FLUSH PRIVILEGES;
EXIT;

Download NextCloud Terbaru
Download NextCloud Terbaru di Website resminya dengan command
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.0.zip

Install unzip untuk ekstrak nextcloud dengan command
apt-get install unzip

Kemudian extract nextcloud dengan command
unzip nextcloud-15.0.0.zip

Pindahkan extract nextcloud ke /var/www/html/
mv nextcloud/  /var/www/html/

Beri hak akses ke folder nextcloud dengan command
chown -R www-data:www-data /var/www/html/nextcloud/
chmod -R 755 /var/www/html/nextcloud/

Membuat Sertificate SSL untuk Nginx dengan OpenSSL
Pembuatan sertifikat SSL untuk Nginx dengan OpenSSL dengan command
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/nginx.key -out /etc/ssl/nginx.crt

Konfigurasi Nginx Agar Dapat Menjalankan NextCloud
Edit konfigurasi nginx di /etc/nginx/sites-available/default dengan command
nano /etc/nginx/sites-available/nextcloud

Masukkan konfigurasi seperti berikut ini :
server {
    listen 80;
    server_name _;
    autoindex on;
    # Add headers to serve security related headers
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    # Path to the root of your installation
    root /var/www/html/nextcloud/;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
    # last;

    location = /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
       return 301 $scheme://$host/remote.php/dav;
    }

    location ~ /.well-known/acme-challenge {
      allow all;
    }

    # set max upload size
    client_max_body_size 512M;
    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;

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location / {
       rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
       deny all;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
       deny all;
     }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
       include fastcgi_params;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       #Avoid sending the security headers twice
       fastcgi_param modHeadersAvailable true;
       fastcgi_param front_controller_active true;
       fastcgi_pass unix:/run/php/php7.1-fpm.sock;
       fastcgi_intercept_errors on;
       fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
       try_files $uri/ =404;
       index index.php;
    }

    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Add headers to serve security related headers (It is intended to
        # have those duplicated to the ones above)
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        # Optional: Don't log access to assets
        access_log off;
   }

   location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
   }
   listen 443 ssl; 
    ssl_certificate /etc/ssl/nginx.crt;  
    ssl_certificate_key /etc/ssl/nginx.key; 
    
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } 

}

Kemudian restart nginx dengan command 
/etc/ini.d/nginx restart

Buka Browser anda kemudian ketikkan https://alamat_ip
anda akan melihat setup dari nextcloud
nextcloud ubuntu installation


Buatlah admin accont dan password 

masukkan user untuk masuk database : nextclouduser
password : sesuaikan seperti yang anda konfigurasi waktu pembuatan user tadi
database : nextcloud
host : localhost

Kemudian Install/Next untuk Instalasi pertama, setelah Intalasi selesai anda bisa login menggunakan admin account dan password yang sudah anda buat



Install FTP Server dengan Vsftpd di Debian 9 Stretch Untuk Upload File ke /var/www/html dengan Chroot List

Pertama install vsftpd dengan command
apt-get install vsftpd

Buat user untuk login FTPnya dengan command
adduser amek

Masukkan user amek ke group root (Opsional) dengan command 
usermod -G root amek

lakukan konfigurasi vsfpd di /etc/vsftpd.conf dengan command
nano /etc/vsftpd.conf

lalu masukkan konfigurasi seperti di bawah ini 

listen=NO
listen_ipv6=YES
anonymous_enable=NO #anonymous tidak di ijinkan konek
local_enable=YES
write_enable=YES
local_umask=002 #untuk setting hak akses file/folder yang di upload menjadi 775
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES #agar local user bisa login FTP
secure_chroot_dir=/var/run/vsftpd/empty
###login dengan SSSL###
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=YES
###login dengan SSSL###
allow_writeable_chroot=YES #mengijinkan local user upload ke FTP
# Aktifkan mode passive FTP
pasv_enable=YES
# Setting port range misalnya 50000 s/d 51000
pasv_max_port=51000
pasv_min_port=50000
# Aktifkan port range
port_enable=YES

Setelah konfigurasi di masukkan silahkan simpan dengan CTRL + X, kemudian tekan Y dan enter
Restart vsftpd nya, dengan command
/etc/ini.d/vsftpd restart

Silahkan coba dengan FTP Client (Filezilla, dsb) settingan sesuaikan dengan IP, Username dan password yang sudah anda setting di atas

Install PostgreSQL 10 di Linux Debian 9 Stretch

Pertama kita butuh menambahkan Repository PostgreSQL terlebih dahulu di daftar repository kita.
Masukkan PostgreSQL signing key dengan command
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -

Tambahkan Repositorynya di /etc/apt/sources.list.d/postgresql.list dengan command
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list

Setelah repository berhasil dimasukkan, update terlebih dahulu Debian anda dengan command
apt-get update

Setelah proses update selesai baru install PostgreSQL 10 dengan command
apt-get install postgresql-10

Berikut command untuk control PostgreSQL
untuk restart service postgresql
/etc/ini.d/postgresql restart

untuk stop service postgresql
/etc/ini.d/postgresql stop

untuk start service postgresql
/etc/ini.d/postgresql start
Menambahkan DNS di Linux Debian atau Ubuntu Agar Dapat Terkoneksi dengan Internet

Menambahkan DNS di Linux Debian atau Ubuntu Agar Dapat Terkoneksi dengan Internet

Cara Menambahkan DNS di linux agar bisa terkoneksi dengan Internet :

Buka Terminal Linux atau dengan Shortcut CTRL + ALT + T

Kemudian konfiguasi DNS di /etc/resolv.conf dengan command 
nano /etc/resolv.conf

Masukkan DNS anda di /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
NB : contoh di atas saya menggunakan DNS Google, bisa diganti DNS Lain sesuai keinginan

Kemudian save dengan CTRL + X kemudian tekan Y dan enter




Install dan Konfigurasi Nginx dengan PHP 7.2 di Linux Debian 9 Stretch

Berikut ini cara install dan konfigurasi Nginx di Linux Debian 9

Nginx dapat diinstall dengan command
apt-get install nginx

Kemudian anda bisa melihat nginx anda sudah bisa di akses dengan browser anda dengan mengetikkan IP Address Server atau domain di URL Browser. contoh saya menggunakan IP Address : 192.168.1.100

Nginx Welcome Page

Install PHP 7.2 
Install PHP 7.2 beserta modul-modulnya dengan command
apt-get install php7.2 php7.2-mysql php7.2-fpm php7.2-mbstring php7.2-xml php7.2-curl php7.2-json php7.2-pgsql 

note :
php7.2-pgsql (modul untuk Postgresql)
php7.2-mysql (modul untuk MySql)

Konfigurasi Nginx
kemudian konfigurasi nginx di /etc/nginx/nginx.conf dengan command
nano /etc/nginx/nginx.conf

Set keepalive_timeout menjadi 2
keepalive_timeout 2;

Kemudian save konfigurasi dengan cara CRTL+X, kemudian tekan Y dan enter

Virtual Host didefiniskan di dalam server {} , VHost dapat dikonfigurasi di dalam /etc/nginx/sites-available/default dengan command
nano /etc/nginx/sites-available/default

Masukkan Sesuai Konfigurasi berikut ini :

server {
 listen 80 default_server;
 listen [::]:80 default_server;

 # SSL configuration
 #
 # listen 443 ssl default_server;
 # listen [::]:443 ssl default_server;
 #
 # Note: You should disable gzip for SSL traffic.
 # See: https://bugs.debian.org/773332
 #
 # Read up on ssl_ciphers to ensure a secure configuration.
 # See: https://bugs.debian.org/765782
 #
 # Self signed certs generated by the ssl-cert package
 # Don't use them in a production server!
 #
 # include snippets/snakeoil.conf;

 root /var/www/html;

 # Add index.php to the list if you are using PHP
 index index.php index.html index.htm index.nginx-debian.html index.php;

 server_name _;

 location / {
 # First attempt to serve request as file, then
 # as directory, then fall back to displaying a 404.
 try_files $uri $uri/ =404;
 }

 # pass PHP scripts to FastCGI server
 #
 location ~ \.php$ {
 include snippets/fastcgi-php.conf;

 # With php-fpm (or other unix sockets):
 fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
 # With php-cgi (or other tcp sockets):
 # fastcgi_pass 127.0.0.1:9000;
 }

 # deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one
 #
 location ~ /\.ht {
 deny all;
 }
}
Kemudian save konfigurasi dengan cara CRTL+X, kemudian tekan Y dan enter

Sekarang buat file info.php di /var/www/html, agar bisa melihat apakah phpnya sudah berjalan lancar atau belum dengan command
nano /var/www/html/info.php

kemudian masukkan script php berikut ini
<?php
phpinfo();
?>
Kemudian save script info.php dengan cara CRTL+X, kemudian tekan Y dan enter

Kemudian restart nginx dengan command
/etc/init.d/nginx restart

 Sekarang anda bisa memanggil info.php tadi di browser dengan mengetikkan : http://192.168.1.100/info.php

ketika tampilan sudah seperti gambar di atas berarti PHP anda sudah berjalan dengan baik
------------------------------------------------------------------------------------------------------------

NB : jika menghendaki nginx bisa auto index bisa menambahkan konfigurasi dibawah ini di /etc/nginx/sites-available/default

autoindex on;







Cara Mengganti IP Address pada Linux Debian 9 Stretch / Linux Ubuntu

Berikut cara mengganti IP Address pada Linux :

buka terminal linux

pastikan sudah menggunakan akses root
kalau belum bisa menggunakan command
su
kemudian masukkan password root

edit file /etc/network/interfaces, menggunakan command
nano /etc/network/interfaces

isikan sebagai berikut :
auto eth0
iface eth0 inet static
address 192.168.1.5 
netmask 255.255.255.0
gateway 192.168.1.1
sesuaikan IP Address, Netmask, dan Gateway jaringan anda. kemudian tekan CTRL + X, kemudian tekan Y dan enter

setelah mengganti IP Address sesuai kebutuhan anda, anda bisa restart networknya dengan command
/etc/ini.d/networking restart

Cara Mengganti Mirror Linux Debian 9 Stretch / Linux Ubuntu (Debian Family)

buka terminal linux atau bisa menggunakan shortcut CTRL+ALT+T

pastikan sudah menggunkan mode (akses) root
jika belum, bisa menggunakan command dibawah ini untuk mendapatkan akses root
su
kemudian masukkan password root anda

masuk pada /etc/apt/sources.list untuk edit mirror, dengan command
nano /etc/apt/sources.list
kemudian masukkan mirrornya, jika anda menggunakan Debian 9 Strecth anda bisa mendapatkan mirror lokal indonesianya disini 

List Mirror Lokal Debian 9 Stretch

Tujuan mengganti mirror Debian 9 Strech ke mirror lokal Indonesia agar proses update, upgrade, dan instalasi software bisa berjalan lebih cepat. Adapun list mirror lokal Indonesia, bisa dipilih dan di-copy dibawah ini :

#KAMBING-UI
deb http://kambing.ui.ac.id/debian/ stretch main contrib non-free
deb http://kambing.ui.ac.id/debian/ stretch-updates main contrib non-free
deb http://kambing.ui.ac.id/debian-security/ stretch/updates main contrib non-free

#KEBO VLSM
deb http://kebo.vlsm.org/debian/ stretch main contrib non-free
deb http://kebo.vlsm.org/debian/ stretch-updates main contrib non-free
deb http://kebo.vlsm.org/debian-security/ stretch/updates main contrib non-free

#DATA UTAMA SURABAYA
deb http://kartolo.sby.datautama.net.id/debian/ stretch main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian/ stretch-updates main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian-security/ stretch/updates main contrib non-free

#UNEJ
deb http://mirror.unej.ac.id/debian/ stretch main contrib non-free
deb http://mirror.unej.ac.id/debian/ stretch-updates main contrib non-free
deb http://mirror.unej.ac.id/debian-security/ stretch/updates main contrib non-free 

Mengarahkan Direktori Apache/Nginx (html) ke Direktori Home di Linux

Direktori (Folder) /var/www/html/ biasanya digunakan untuk default penyimpanan website (blog) pada Apache dan Nginx. Kali ini saya akan menjelaskan bagaimana agar folder /var/www/html tersebut dapat di akses melalui FTP dengan chroot jail :

kita dapat menggunakan metode mount untuk mengarahkannya. agar mount kita tetep berjalan ketika server restart maka kita harus memasukkan di /etc/fstab, adapun commandnya :
nano /etc/fstab

setelah terbuka, masukkan di /etc/fstab
/var/www/html/  /home/admin/    none    bind             0       0

/home/admin/ (bisa disesuaikan dengan folder anda)
seperti contoh gambar di bawah ini :

Kategori

Kategori