Tampilkan postingan dengan label Web Server Linux. Tampilkan semua postingan
Tampilkan postingan dengan label Web Server Linux. Tampilkan semua postingan

Source Code Shell Untuk Backup Database PostgreSql

untuk backup beberapa database PostgreSql secara otomatis bisa menggunakan Shell Script berikut :

1. buatlah file dengan ekstensi .sh
2. kemudian isilah source code dibawah ini :
#!/bin/sh
export PGPASSWORD="password_postgre_anda"
BACKUP_DIR="/data/backup_folder_anda/"

if [ $(date +%w) = 6 ]; then
  for a in $(date --date='8 days ago' +%Y%m%d) $(date --date='9 days ago' +%Y%m%d) $(date --date='10 days ago' +%Y%m%d) $(date --date='11 days ago' +%Y%m%d) $(date --date='12 days ago' +%Y%m%d) $(date --date='13 days ago' +%Y%m%d)
  do
    rm $BACKUP_DIR"Database1-"$a".sql" 2> /dev/null
    rm $BACKUP_DIR"Database2-"$a".sql" 2> /dev/null
  done
fi
/usr/bin/pg_dump NamaDatabase1 -U postgres -h localhost -x -O -f $BACKUP_DIR"Database1-"$(date +%Y%m%d)".sql"
/usr/bin/pg_dump NamaDatabase2 -U postgres -h localhost -x -O -f $BACKUP_DIR"Database2-"$(date +%Y%m%d)".sql"

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 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;







Kategori

Kategori