SetupServer Area

Beginilah WordPress Nginx yang Benar Part II #426

baik sapi jantan maupun betina mereka adalah sapi

andrypein.net : Merupakan post lanjutan dari WordPress nginx yang benar part 1kali ini lanjutan setting nya sampai si wordpress siap running online.

Silahkan simak daftar isi nya gan karena bakal ane anggap semuanya sudah baca part 1.

WordPress Nginx yang Benar ya Begini


Siapkan Working Directory mu

Dalam rangka dev dev an ini jelas dong langkah awalnya kita siapin si working directory, enaknya sih di user home mu, supaya ga ribet, mengapa? karena /var/www/html terlalu mainstream, serius.

Btw bisa dicontoh yang ane atau ga juga terserah, masing-masing punya style sendiri, meanwhile yang ane mah biasanya bikin folder dulu sebagai wd (working directory) supaya memudahkan untuk manage multi website juga.

Download WordPress

Lanjut kita gas donlod mentahan wodpressnya gan disini, tinggal di wget saja seperti ini gan :

lalu kita extract, bisa di unzip langsung dengan command ‘unzip latest.zip‘ jika tidak bisa donlod saja dulu ‘apt install zip‘.

 

Membuat Database

Gampang sih ini mah tinggal create db doang, wkwkwkkw memangnya mau ngapain lagi.

Okeh donlod wodpress done, bikin databes juga done, tinggal bermain di area php dan nginx nya gan.

 

Konfigurasi SSL

Untuk SSL sendiri ane sudah postingkan tutorialnya –>Disini<– harus dari awal dong supaya saat ngedit nginx nya tidak eror.

 

Konfigurasi PHP-FPM

Section ini adalah standar konfigurasi php fpm untuk wordpress secara non-default, jadi ada yang diubah di sebagian parameternya.

Adapun file-file tersebut adalah : php.ini dan .conf pada pool.d

Ganti Parameter php.ini

Lokasi filenya berada di /etc/php/7.4/fpm

Parameter yang diubah pada file php.ini adalah :

  • max_execution_time = 30 –> max_execution_time = 300
  • ;max_input_vars = 1000 –> max_input_vars = 5000, jangan lupa buang titik koma nya.
  • memory_limit = 128M –> bisa default bisa dinaikan menjadi 256, tergantung ada berapa banyak plugin di wordpress, namun untuk balance number, set saja menjadi 256M.
  • post_max_size = 8M –> 25M juga cukup, jika ada error bisa dinaikan lagi.
  • ;cgi.fix_pathinfo=1 –> cgi.fix_pathinfo=0, uncomment titik koma.
  • upload_max_filesize = 2M –> samakan dengan post_max_size menjadi 25M juga.

Done, untuk php.ini cukup segitu saja dulu, lanjut ke .conf nya.

Hapus default www.conf

lokasi www.conf ada di /etc/php/7.4/fpm/pool.d

Default tidak asik, serius, standar andrypein mah si www.conf nya suka ane hapus, lalu buat file baru misal web1.conf dan masukan parameter-parameter berikut :

[webku]
user = andrypein
group = www-data
listen = 127.0.0.1:7729
listen.owner = andrypein
listen.group = www-data
pm.max_children = 20
pm = ondemand
pm.process_idle_timeout = 10s
pm.max_requests = 900
chroot = /
chdir = /home/andrypein/wordpress

Sesuaikan chdir dengan direktori mentahan wordpress masing-masing, lalu save dan setelah itu restart php nya.

service php7.4-fpm restart

 

Konfigurasi Nginx

Php selesai sekarang lanjut ke section untuk nginx, dalam section kali ini file yang akan kita ubah adalah nginx.conf di /etc/nginx serta membuat file baru sebagai “nginx block server” supaya bisa pointing dengan benar.

Ganti nginx.conf

Yang bawaan boleh dibackup terlebih dahulu atau langsung hapus saja tidak masalah h3h3.

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 1024;
        accept_mutex on;
        use epoll;

}

http {

        ##
        # Basic Settings
        ##
        

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        types_hash_max_size 2048;
        server_tokens off;

        server_names_hash_bucket_size 64;
        server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        client_body_buffer_size  10k;
        client_header_buffer_size 1k;
        client_max_body_size 8m;
        large_client_header_buffers 8 2k;
        client_body_timeout   10;
        client_header_timeout 10;
        keepalive_timeout     30;
        keepalive_requests    100;
        send_timeout          2;
        reset_timedout_connection on;
       
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

Membuat Block Server Baru

Blok server pada nginx berada di directory /etc/nginx/sites-available , disanalah kamu bisa me-manage website-website mu.

Buat file baru di direktori sites-available ini misal webku.conf dan masukan kode dibawah ini :

upstream peinstream {
    server 127.0.0.1:7729;
}

server {
  listen 80;
  server_name andrypein.net www.andrypein.net;
  return 301 https://andrypein.net$request_uri;
}    

server {
  listen 443;
  ssl on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_certificate_key /home/andrypein/ssl/devTest.key; 
  ssl_certificate /home/andrypein/ssl/devTest.crt; 
  ssl_session_timeout 15m;
  server_name andrypein.net;   
  root /home/andrypein/wordpress;
  index index.php;

  set $cache_uri $request_uri;
  
  if ($request_method = POST) {
    set $cache_uri 'null cache';
  }
    
  if ($query_string != "") {
    set $cache_uri 'null cache';
  }

  if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'null cache';
  }

  if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'null cache';
  }
 
  location = /favicon.ico { log_not_found off; access_log off; }
  location = /robots.txt  { log_not_found off; access_log off; }
   
  location / {
    try_files $uri $uri/ /index.php?$args;
  } 

  location ~* \.(mp4|pdf|woff2|woff|js|css|png|jpg|jpeg|gif|ico)$ {
    expires 365d;
    log_not_found off;
  }

  location ~ \.php$ {
    fastcgi_keep_conn on;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass peinstream;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_connect_timeout 10;
    fastcgi_buffer_size 32k;
    fastcgi_buffers 32 32k;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
  }
}

pastikan konfigurasi benar dengan mengetesnya dengan ‘nginx -t’.

NB : Jika menggunakan nama upstream (baris pertama) yang berbeda maka samakan dengan dengan fastcgi_pass (di blok .php) nya.

Membuat Symlink untuk Nginx

Tahap ini merupakan tahap final bagi konfigurasi nginx, sesuai nginx.conf yang berbunyi include /etc/nginx/sites-enabled/*; maka file .conf yang berada di /etc/nginx/sites-available harus di symbolic link kan, a.k.a symlink.

Perintahnya sederhana, cukup dengan :

ln -s /etc/nginx/sites-available/webku.conf /etc/nginx/sites-enabled

Finalisasi dari nginx ini kita tinggal restart service nya gan ‘service nginx restart’.

Ready to Launch

Oiya jelas tinggal di tes di browser ini mah, coba saja, pasti akan masuk ke halaman instalasi wordpress.

 

wordpress nginx yang benar
ez

Selamat, tutorialnya berhasil, tinggal lanjut saja untuk blogging

*AFK

 

Andry Fadrie K

CPU : AMD Ryzen 5 1600 12Core
Mobo : Asus ROG Strix B450-F GAMING
RAM : 16GB
Storage : 12.8TB
VGA : NVIDIA GeForce GTX 1050ti
OS : KDE Neon
Kernel : 5.11.0-46

Related Articles

2 Comments

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.

Back to top button