Membuat WordPress di VPS: Cara Setting Nginx dan Install Wordpress [Bagian 2]
Tutorial ini merupakan lanjutan dari Membuat WordPress di VPS: Cara Install Nginx, PHP-FPM, MariaDB, phpMyadmin [Bagian 1].
Untuk mendapatkan performa yang baik dan mengoptimalkan WordPress dapat menggunakan Nginx, PHP-FPM dan database MariaDB. Saat ini Inwepo menggunakan VPS di Cloudkilat.com
Menggunakan VPS lebih baik dan leluasa dari pada menggunakan shared hosting. Jika kamu mempunyai uang lebih baiknya pindah ke VPS karena harga VPS sekarang sudah murah dan tidak beda jauh dengan shared hosting.
Memilih direktori untuk install WordPress
Biasanya direktori yang sering digunakan yaitu /var/ , /home/ dan /srv/ . Penulis memilih menggunakan direktori /srv/ untuk menginstall Wordpress mengapa? karena menurut standar hirarki dari Linux tempat yang tepat untuk menyimpan dan mengelola web di /srv/
membuat direktori htdocs dan logs dengan perintah mkdir untuk di dalam direktori /srv/ berikut perintah dan struktur direktorinya:
mkdir -p /srv/www/inwepo.co/htdocs mkdir -p /srv/www/inwepo.co/logs
Setting Nginx
Membuat virtual host di dalam direktori /etc/nginx/sites-available/
cd /etc/nginx/sites-available/ touch inwepo
cd adalah perintah untuk masuk ke dalam direktori dan perintah touch untuk membuat file virtual host. Kemudian edit file inwepo dengan nano atau vi editor.
ls -a adalah perintah untuk menampilkan seluruh isi folder di dalam folder tersebut.
ls -a nano inwepo
Isi file virtual host inwepo dengan perintah berikut ini:
server { listen 80; #listen [::]:80 ipv6only=on default_server; server_name inwepo.co www.inwepo.co 103.43.44.12; root /srv/www/inwepo.co/htdocs; access_log /srv/www/inwepo.co/logs/access.log; error_log /srv/www/inwepo.co/logs/error.log; if ($http_host != "inwepo.co") { rewrite ^ http://inwepo.co$request_uri permanent; } index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Use gzip compression # gzip_static on; # Uncomment if you compiled Nginx using --with-http_gzip_static_module gzip on; gzip_disable "msie6"; gzip_vary on; gzip_min_length 10240; #gzip_proxied any; gzip_proxied expired no-cache no-store private auth; #gzip_types text/plain application/x-javascript text/xml text/css application/xml; gzip_comp_level 5; gzip_buffers 16 8k; gzip_http_version 1.0; gzip_disable "MSIE [1-6]\."; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg; set $cache_uri $request_uri; # POST requests and urls with a query string should always go to PHP if ($request_method = POST) { set $cache_uri 'null cache'; } if ($query_string != "") { set $cache_uri 'null cache'; } # Don't cache uris containing the following segments 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'; } # Don't use the cache for logged in users or recent commenters if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") { set $cache_uri 'null cache'; } # Use cached or actual file if they exists, otherwise pass request to WordPress location / { try_files /wp-content/cache/page_enhanced/${host}${cache_uri}_index.html $uri $uri/ /index.php?$args ; } location ~ ^/wp-content/cache/minify/[^/]+/(.*)$ { try_files $uri /wp-content/plugins/w3-total-cache/pub/minify.php?file=$1; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme:http://$host$uri/ permanent; # Cache static files for as long as possible - removed xml as an extension to avoid problems with Yoast WordPress SEO plugin which uses WP rewrite API. location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { try_files $uri =404; expires max; access_log off; } # Pass PHP scripts on to PHP-FPM location ~* \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; try_files $uri /index.php; fastcgi_index index.php; fastcgi_pass unix:/var/run/php5-fpm.sock; #fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }
Ganti server_name dengan nama dan IP domain hosting kamu.
Virtual host akan mengarahkan setiap akses alamat www.inwepo.co ke inwepo.co, bila ingin setiap orang yang mengetik alamat inwepo.co diarahkan ke www.inwepo.co silakan tambahkan www.
if ($http_host != "inwepo.co") { rewrite ^ http://inwepo.co$request_uri permanent; }
menjadi seperti berikut ini:
if ($http_host != "www.inwepo.co") { rewrite ^ http://www.inwepo.co$request_uri permanent; }
Jika sudah mengisi dan mengubahnya lalu simpan file dengan perintah ctrl+x lalu Y dan enter.
Install WordPress
Download script Wordpress terlebih dahulu dan menyimpannya di dalam direktori /srv/www/inwepo.co/htdocs. Berikut perintahnya:
cd /srv/www/inwepo.co/htdocs wget http://wordpress.org/latest.tar.gz tar -zxvf latest.tar.gz cp -rvf wordpress/* . rm -R wordpress rm latest.tar.gz
wget adalah perintah mendownload, tar -zxvf perintah untuk mengekstrak file, cp -rvf wordpress/* adalah perintah untuk meng-copy semua file yang berada di dalam direktori wordpress dan rm adalah perintah menghapus.
Membuat simbolik link
Jika kamu membuka alamat domain kamu yang sudah terinstall nginx pasti yang akan terlihat hanya tulisan “welcome to nginx!”, untuk itu kita harus membuat simbolik link. Berikut perintahnya:
ln -s /etc/nginx/sites-available/inwepo /etc/nginx/sites-enabled/inwepo
sesuaikan nama file virtual host yang kamu buat. Lalu restart nginx.
service nginx restart
atau
/etc/init.d/nginx restart
Kemudian buka domain kamu lagi maka akan terdapat halaman konfigurasi WordPress.
Jika masih terdapat pesan welcome nginx coba hapus nama file default di dalam direktori /etc/nginx/sites-available/ dan /etc/nginx/sites-enabled/
Memberikan hak akses pada WordPress
Setelah halaman konfigurasi WordPress terlihat kita harus memberikan hak akses dengan perintah sebagai berikut:
chown -R www-data:www-data /srv/www/inwepo.co/htdocs
Lalu isikan username, password, database host, dan table prefix database name.
Membuat database WordPress
Untuk membuat database dapat melalui terminal maupun url web phpmyadmin, jika kamu mengikuti tutorial bagian 1 kamu pastinya sudah mengatur alamat akses phpmyadmin.
Login phpmyadmin, pilih menu basis data lalu masukan nama database yang kamu inginkan dan pilih tombol buat.
Submit dan install. Jika berhasil menginstall WordPress maka akan terdapat post HELLO WORLD!
Jika sebelumnya kamu sudah pernah menginstall WordPress dan ingin memindahkan ke VPS kamu hanya perlu meng-copy semua file WordPress dan meng-export database ke phpMyAdmin.
- Cara Backup dan Restore Database WordPress di phpMyAdmin