Debian Jessie¶
# info versi Debian yang digunakan
lsb_release -a
# mencadangkan direktori /etc/
sudo tar zcvf /home/deploy/cadangan/etc.bkp.tar.gz /etc/
# HTTPS transport, CA Cert, GnuPG key
sudo apt install -y apt-transport-https lsb-release ca-certificates software-properties-common
Repositori¶
# GnuPG key
# dotdeb.org - nginx, php, redis, apache, mysql, zabbix
wget https://dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
# deb.sury.org - php
wget https://packages.sury.org/php/apt.gpg
sudo apt-key add apt.gpg
# spg1.mirror.digitalocean.com - mariadb
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
# source
sudo su
# repositori nginx 1.10.x
echo "deb https://packages.dotdeb.org/ jessie all" > /etc/apt/sources.list.d/dotdeb.list
# repositori php 7.1.x
echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list
# repositori mariadb 10.1.x
echo "deb [arch=amd64,i386] http://sgp1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main" > /etc/apt/sources.list.d/mariadb.list
exit
# hapus berkas *.gpg
sudo rm -rf /tmp/*.gpg
# update
sudo apt-get update && sudo apt get upgrade -y
Nginx 1.10.x¶
Install Nginx¶
sudo apt install nginx -y
sudo nginx -v # menguji versi yang digunakan
Pengaturan Nginx dan FastCGI¶
nginx.conf¶
Buka berkas konfigurasi Nginx
sudo chown :deploy /etc/nginx/nginx.conf
sudo chmod g+w /etc/nginx/nginx.conf
sudo nano /etc/nginx/nginx.conf
user deploy; # pengguna lokal
worker_processes 2; # grep processor /proc/cpuinfo | wc -l
events {
worker_connections 65536; # ulimit -n
# aturan bakunya adalah, n * jumlah inti prosesor. n =
multi_accept on;
}
http {
# ...
keepalive_timeout 15;
server_tokens off;
# ...
client_max_body_size 64;
# ...
gzip_proxied any;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# ...
}
fastcgi_params¶
Sunting sudo nano /etc/nginx/fastcgi_params
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
sudo nginx -t
sudo /etc/init.d/nginx restart
PHP 7.x¶
Install¶
sudo apt install -y \
php7.1-fpm \
php7.1-common \
php7.1-mysqlnd \
php7.1-xmlrpc \
php7.1-curl \
php7.1-gd \
php7.1-imagick \
php7.1-cli \
php-pear \
php7.1-dev \
php7.1-imap \
php7.1-mcrypt
Uji dengan melihat informasi versi php7 yang digunakan dengan perintah sudo php-fpm7.1 -v
PHP 7.1.3-2+0~20170315222009.20+jessie~1.gbpc7e7dd (fpm-fcgi) (built: Mar 15 2017 23:00:03)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.3-2+0~20170315222009.20+jessie~1.gbpc7e7dd, Copyright (c) 1999-2017, by Zend Technologies
sudo chown :deploy /etc/php/7.1/fpm/pool.d/www.conf
sudo chmod g+w /etc/php/7.1/fpm/pool.d/www.conf
sudo nano /etc/php/7.1/fpm/pool.d/www.conf
Menjalankan layanan php sebagai pengguna deploy
user = deploy
group = deploy
listen.owner = deploy
listen.group = deploy
Penyesuaian dengan nilai pada konfigurasi nginx.conf
sudo chown :deploy /etc/php/7.1/fpm/php.ini
sudo chmod g+w /etc/php/7.1/fpm/php.ini
sudo nano /etc/php/7.1/fpm/php.ini
; ...
upload_max_filesize = 64M
; ...
post_max_size = 64M
; ...
date.timezone = Asia/Jakarta
; ...
sudo php-fpm7.1 -t
[19-Mar-2017 00:33:23] NOTICE: configuration file /etc/php/7.1/fpm/php-fpm.conf test is successful
sudo /etc/init.d/php7.1-fpm restart
MariaDB 10.x¶
Install¶
Instalasi dan optimasi awal instalasi MariaDB
sudo apt-get install mariadb-server -y
sudo mysql_secure_installation
Tuning (opsional)¶
sudo nano /etc/mysql/my.cnf
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 20M
# Here you can see queries with especially long duration
slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log = 1
long_query_time = 2
log_queries_not_using_indexes
[mysqld]
innodb_buffer_pool_instances = 1
innodb_buffer_pool_size = 79M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completion
[isamchk]
key_buffer = 16M
key_buffer_size = 7M
[mariadb]
aria_pagecache_buffer_size = 2M
Server block¶
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/nginx.conf
# ...
include /etc/nginx/sites-enabled/*;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 444;
}
# ...
Wordpress¶
Server blocks¶
Langsung untuk subdomain
cd /home/deploy/proxsisgroup.com
mkdir -p cache conf logs public security tmp
chmod -R 755 omc
cd /etc/nginx/sites-available/
sudo nano omc.proxsisgroup.com
server {
listen 80;
listen [::]:80;
server_name omc2.proxsisgroup.com www.omc2.proxsisgroup.com;
access_log /home/deploy/proxsisgroup.com/omc/logs/access.log;
error_log /home/deploy/proxsisgroup.com/omc/logs/error.log;
root /home/deploy/proxsisgroup.com/omc/public/;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
sudo ln -s /etc/nginx/sites-available/omc.proxsisgroup.com /etc/nginx/sites-enabled/omc2.proxsisgroup.com
Database¶
mysql -u root -p
CREATE DATABASE proxsis_pcg_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
CREATE USER 'proxsis_pcg'@'localhost' IDENTIFIED BY 'YeZ3bf>X4u.3}yWj';
GRANT ALL PRIVILEGES ON proxsis_pcg_dev.* TO 'proxsis_pcg'@'localhost';
FLUSH PRIVILEGES;
exit;
WP-CLI¶
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
PHP binary: /usr/bin/php7.1
PHP version: 7.1.3-2+0~20170315222009.20+jessie~1.gbpc7e7dd
php.ini used: /etc/php/7.1/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.1.0
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp # menguji perintah WP-CLI berjalan
cd ~/proxsisgroup.com/omc/public
wp core download
wp core config --dbname=proxsis_pcg_tax --dbuser=proxsis_pcg --dbpass='YeZ3bf>X4u.3}yWj'
wp core install --url=http://sby.proxsisgroup.com --title='Proxsis Surabaya - Dev' --admin_user=wpmin --admin_email=[email protected] --admin_password='z5u2&FRax&TFDSq3Gdr0gf!P'
Logrotation¶
#
mv access.log access.log.0
#
kill -USR1 `cat master.nginx.pid`
#
sleep 1
# do something with access.log.0
gzip access.log.0