Memasang WordPress pada Server Nginx

September 9, 2015 1 Comment Server 659 Views
Memasang WordPress pada Server Nginx

Dalam Bahagian 1 saya membawa cara untuk membuat beberapa tetapan pada server seperti masa, tambahan pengguna (user) dan keselamatan server yang asas. Bahagian 2 pula proses pemasangan web server Nginx, pengkalan data MySQL dan skrip belah server iaitu PHP, program-program ini perlu untuk sesebuah laman web dinamik seperti WordPress, Joomla dan Drupal. 

Anda boleh lawati artikel itu di sini

Bah. 1 – Tetapan untuk Menjadikan Web Server Lebih Selamat

Bah. 2 – Pemasangan Nginx, MySQL dan PHP

Buat masa ini, laman web yang bakal dibina, masih tidak mempunyai domain (NamaLamanWeb.com, .net atau lain-lain dot). Ia masih menggunakan alamat IP.

Saya merancang untuk menjadikan laman web yang bakal dibina ini, sebagai azriyusof.com, nombor alamat IP akan diganti dengan azriyusof.com. (ini adalah contoh sahaja kerana laman web azriyusof.com sudah pun terbina dan anda sedang membacanya)

Proses menukar alamat IP kepada nama domain akan diajar pada artikel yang lain selepas artikel ini.

Seperti biasa anda perlu masuk ke dalam PuTTY dan guna username anda. Apabila sudah berada di dalam nya, taipkan.

cd ~/

Arahan di atas untuk memastikan anda berada di dalam direktori ‘home’ untuk user – (home/azri). Selepas itu  cipta direktori baru di dalamnya, iaitu:

  1. Direktori laman web – untuk menyimpan segala berkaitan laman web termasuk direktori public dan logs.
  2. Direktori public – ini adalah root laman web anda kelak dan segala laman web, aplikasi adalah untuk dipamerkan kepada pengguna di mana fail-fail wordpress akan ditempatkan di sini.
  3. Direktori logs – Untuk menyimpan log nginx dan juga ralat (error/bug).

Ia akan kelihatan seperti ini:

direktori

Mulakan dengan menaip nama domain anda (bakal nama laman web) sebagai direktori baru.

mkdir azriyusof.com

mkdir azriyusof.com/logs

mkdir azriyusof.com/public

Tukarkan file permission kepada 755 supaya ia dapat diakses oleh pengguna.

chmod -R 755 azriyusof.com

 

Mkdir 1

Contoh arahan

 

Dengan terciptanya direktori tadi, sekarang masanya untuk membina server bock (virtual host) yang akan menjadi perumah untuk laman web ini nanti. Sekarang pergi ke direktori sites-available dengan menaip.

cd /etc/nginx/sites-available

Cipta satu fail baru yang mengandungi konfigurasi laman ini. Namakan ia dengan nama laman web (sama seperti nama yang telah dicipta di home direktori di atas) akan memudahkan kita mengendali server ini nanti.

sudo nano azriyusof.com 

Mkdir 2

Contoh arahan

Copy dan paste konfigurasi di bawah ke dalam PuTTY anda. Pastikan untuk menukar arahan server_name, access_log, error_log dan root untuk sama seperti yang telah dibina sebelum ini. Kemudian keluar dengan menekan Ctrl+X dan simpan dengan tekan kekunci Y.  (Ubah yang bertanda merah dengan ip, user dan nama yang anda pilih sendiri)

server {
    server_name 23.177.206.154;

     access_log /home/azri/azriyusof.com/logs/access.log;
     error_log /home/azri/azriyusof.com/logs/error.log;
  
     root /home/azri/azriyusof.com/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:/var/run/php5-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
     }

}
Mkdir3

Contoh skrip yang telah ditampal

Skrip di atas memberitahu Nginx untuk melayan alamat IP (bakal nama laman web kelak). Ia juga memberitahu Nginx tentang lokasi fail log dan juga fail root untuk laman web serta membaca dahulu fail yang mempunyai index atau index.php. (Anda juga boleh menambah index.html dan index.htm jika ianya laman web static html yang biasa)

Manakala skrip yang mengandungi perkataan location di bawah itu pula adalah untuk memberitahu Nginx supaya menghulurkan fail-fail PHP kepada PHP-FPM (yang kita pasang sebelum ini) untuk diambil tindakan.  

Namun konfigurasi skrip di atas masih belum dapat dimaklumkan kepada Nginx kerana Nginx tidak diberitahu tentang kewujudan skrip di atas.

Skrip di atas hanya akan ada dalam makluman Nginx jika ia dimasukkan ke dalam direktori sites-enabled seperti yang telah kita tetapkan sebelum ini.

##
# Virtual Host Configs
##

 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;

 

Ini kerana hanya fail-fail atau direktori yang berada di dalam direktori sites-enabled sahaja akan dipaparkan kepada pengguna secara automatik oleh Nginx.

Untuk ini kita akan membuat satu symlink (symbolic link) di mana ia mengandungi rujukan buat sites-enabled daripada sesuatu fail atau direktori lain. Taipkan seperti di bawah.

sudo ln -s /etc/nginx/sites-available/azriyusof.com /etc/nginx/sites-enabled/azriyusof.com

 

Di dalam Nginx atau Apache. Direktori sites-available adalah untuk fail-fail konfigurasi laman web atau aplikasi yang wujud di dalam server, hanya jika ia dimasukkan atau dengan menggunakan symlink ke dalam direktori sites-enabled barulah ia akan dipamerkan kepada pengguna.

Kelebihan menggunakan symlink seperti di atas, jika berlaku masalah pada satu laman web atau aplikasi. Anda hanya perlu memadam arahan symlink itu dan laman web itu tidak akan dipamerkan. Taip kan arahan seperti rm (remove) atau unlink Symlink_anda  untuk memadam rekod symlink sebelum ini.

Seperti biasa nginx harus di restart, sebelum itu taip arahan dibawah untuk pastikan tiada error.

sudo nginx -t

 Jika semua ok. Restart Nginx.

sudo service nginx restart

Sekarang tiba masa untuk mencipta satu database khusus untuk wordpress yang akan dipasang sebentar lagi.

 

MySQL Database

Log masuk ke dalam pengkalan data MySQL yang telah dipasang sebelum ini dengan menggunakan root dan SSH (anda perlu menaip arahan exit dahulu dan log masuk menggunakan root).

mysql –u root –p

Anda akan diminta untuk memasukkan password yang telah ditetapkan sebelum ini.

Selepas itu mulakan proses membina database dengan mencipta satu database, pastikan juga setiap arahan berakhir dengan tanda ;

CREATE DATABASE azriyusof_db; 

MYS2

Selepas itu, wujudkan satu user untuk database ini dengan menaip arahah di bawah. Pastikan untuk mengantikan dengan nama pengguna dan password pilihan anda (pastikan tanda ditaip bersama).

CREATE USER 'nama_pengguna'@'localhost' IDENTIFIED BY 'password'; 

Pengguna ini pula mestilah diberi kebenaran untuk segala skop mengendalikan database ini.

GRANT ALL PRIVILEGES ON azriyusof_db.* TO 'nama_pengguna'@'localhost'; 

Ini kerana Themes, plugin WordPress memerlukan kebenaran yang lebih daripada pengguna MySQL untuk (CREATE, DROP, ALTER, dan sebagainya), jadi menghadkan peranan pengguna database hanya akan menyulitkan proses pemasangan dan kemas kini kelak.

MySQL mestilah di ‘Flush’ supaya perubahan pada privileges tadi dapat mengambil tempat.

FLUSH PRIVILEGES; 

Akhir sekali anda boleh keluari dari MySQL dengan menaip.

exit; 

 

Pemasangan WordPress

Untuk memasang wordpress, satu program yang menggunakan command line untuk mengurus pemasangan wordpress dikenali sebagai WP-CLI diperlukan. 

Pastikan pergi ke direktori home dengan menaip.

cd ~/

Dengan menggunakan program cURL atau protokol pemindahan dengan menggunakan url, taip.

curl –O https://raw.githunbusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Anda boleh memeriksa sama ada WP-CLI ini berjaya dipasang dengan menaip

php wp-cli.phar --info

Anda perlu pindahkan lokasi WP-CLI ini ke usr/local/bin/wp supaya ia boleh digunakan. Apa yang dimaksudkan adalah penggunaan awalan wp, iaitu dengan menaip arahan wp <command>.

 

chmod +x wp-cli.phar

sudo mv wp-cli.phar /usr/local/bin/wp

 

Sekarang taip pula wp untuk cuba masuk ke dalam ruangan ‘help’ WP-CLI. Tekan kekunci q untuk keluar daripada program WP-CLI ini.

Dengan semuanya sudah tersedia. Tiba masa untuk memasang WordPress anda. Mulakan dengan pergi ke direktori public laman yang telah dicipta.

cd ~/azriyusof.com/public

Kali ini taip pula arahan di bawah untuk memuat turun perisian terbaru wordpress. (Di sini WP-CLI berperanan memuat turun perisian)

wp core download

Selepas itu pinda fail wp-config.php. Dimana ia lebih mudah kerana menggunakan WP-CLI.

wp core config --dbname=azriyusof_db --dbuser=nama_pengguna --dbpass=password

Akhir sekali, tetapan umum untuk wordpress dan pengguna admin serta password.

wp core install --url=http:// 23.177.206.154 --title='Azri Yusof' --admin_user=nama_admin --admin_email=admin@emailgmail.com --admin_password=password

W-cli2

Contoh arahan memasang WP-CLI dan WordPress

Sekarang jika anda menaip alamat ip di brwoser, anda akan dapat melihat laman wordpress sudah berjaya diwujudkan. Anda juga boleh cuba log masuk ke dalamnya dengan menaip alamat_ip/wp-admin (cth: 23.177.206.154/wp-admin)

WPSite

 

 

About author

Related articles

1 Comment

Leave a Reply