Anda di halaman 1dari 22

Shaiffulnizam Mohamad shaifful@joomla.

my

Penafian
Walaupun segala usaha telah dilakukan untuk memastikan ketepatan maklumat didalam buku ini ketika penulisan, namun begitu maklumat berkaitan teknologi perkomputeran selalu bertukar dengan pantas.Oleh itu, sesetengah dari maklumat yang ada di dalam buku ini mungkin sudah tidak tepat ketika anda membacanya. Juga, kemungkinan terdapat kesalahan tipografi dan kandungan. Gambar adalah hakcipta masing-masing dan dikreditkan.Tidak ada jaminan yang diperakukan bahawa maklumat yang terkandung di dalam buku panduan ini adalah tepat dan lengkap. Pengarang dengan ini secara khususnya tidak bertanggungjawab atas apa-apa risiko, kehilangan, liabiliti, sama ada secara peribadi atau tidak, yang berlaku akibat penggunaan dan aplikasi kandungan buku panduan ini, secara langsung atau tidak langsung.

Hakcipta
Hakcipta Terpelihara 2012, Shaiffulnizam bin Mohamad. Anda dilarang mengeluar ulang mana-mana bahagian artikel, ilustrasi dan isi kandungan ebook ini dalam apa juga bentuk dan dengan apa juga cara sama ada secara elektronik, fotokopi, mekanik, rakaman atau cara lain sebelum mendapat izin daripada pihak penulis Anda dilarang menjual tutorial ini kepada mana-mana pihak sekalipun. Anda dilarang menjadikan tutorial ini sebagai bonus untuk produk anda. Anda tidak dibenarkan sama sekali mengubah suai kandungan ebook ini

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |1

Shaiffulnizam Mohamad shaifful@joomla.my

Kandungan
1. Kandungan 2. Pengenalan 3. Pemasangan Nginx dan Penggunaan Skrip dari Centminmod.com 4. Langkah Pemasangan dan Persediaan. 5. Log masuk ke pelayan web anda menggunakan SSH 6. Muat turun Skrip CentminMod, Setup dan mulakan pemasangan 7.

Halaman

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |2

Shaiffulnizam Mohamad shaifful@joomla.my

Pemasangan Nginx menggunakan CentminMod


Pengenalan Nginx atau disebut Engine-X merupakan Pelayan web sumber terbuka yang dibina oleh Igor Sysoev, ianya adalah pelayan web yang berprestasi tinggi dan merupakan reverse proxy, pelayan proxy dan IMAP/POP3. Ia mula dibangunkan pada tahun 2002 dan dilepaskan kepada umum pada tahun 2004. Sehingga kini Nginx digunakan hampir 12.18% (22.2 Juta) tapak web aktif yang merentasi semua jenis domain. Ia juga dikenali disebabkan prestasinya yang tinggi, konfigurasinya yang mudah dan penggunaan sumber RAM yang rendah. Nginx adalah antara pelayan yang dibina bagi mengatasi masalah C10K (Masalah C10k merujuk kepada masalah mengoptimumkan perisian pelayan web yang mengendalikan sejumlah besar pelanggan pada masa yang sama (dengan itu nama C10k - sepuluh ribu sambungan). Masalah pengoptimuman pelayan web telah dikaji kerana beberapa faktor perlu dipertimbangkan untuk membolehkan pelayan web untuk menyokong banyak pelanggan. Ini boleh melibatkan gabungan kekangan sistem operasi dan had perisian pelayan web.) Prestasi Nginx memang amat bagus dan berguna bagi mengendalikan beribu-ribu permintaan serentak dengan kesan jejak penggunaan memorinya yang kecil dan sesuai untuk digunakan pada server berprestasi tinggi dan yang berskala kecil. (dedicated server kepada VPS) NginX telah menjana web berprestasi tinggi seperti WordPress, Hulu, Github, Ohloh, SourceForge, CloudFlare dan TorrentReactor.

Pemasangan Nginx dan Penggunaan Skrip dari Centminmod.com Ada beberapa cara untuk memasang NginX, tetapi dalam tutorial kali ini, saya lebih suka menggunakan Skrip yang telah disediakan oleh CentMinMod.com. Sebab Utama kenapa saya menggunakan Skrip CentMinMod.com ialah kerana ianya lebih mudah digunakan terutama untuk pemasangan NginX, PHP, MySQL atau MariaDB dan bagaimana untuk mengemaskininya melalui skrip yang disediakan, skrip ini juga membantu untuk pemasangan MemCached, Suhosin, FFMPEG, CSF firewall dan perisian penting bagi pelayan web anda. Skrip dari CentMinMod ini boleh dipasang pada pelayar web berasaskan Centos sahaja. Centmin Mod adalah untuk pemasangan pada sistem operasi CentOS sahaja. Ia merupakan versi yang diubah suai skrip Centmin asal yang memasang pelayan web Nginx secara automatic berserta dengan putaran log dengan pelbagai perisian: PHP-fpm dengan putaran log, lebih baik melakukan MySQL, MariaDB 5.2.x MySQL server, memcached v1.4.10, Memcache v3. 0.5, pilihan cachers opcode PHP seperti Xcache v1.3.2 dan APC Cache v3.1.9, ImageMagick, Suhosin dan FFMPEG pilihan PHP lanjutan, CSF Firewall, Pengepungan penanda aras serta CentOS dan versi terkini Python v2.7.2. Baru-baru ini, versi Mod Centmin beralih ke menu penuh sokongan pemasangan untuk sistem operasi CentOS.

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |3

Shaiffulnizam Mohamad shaifful@joomla.my Langkah Pemasangan dan Persediaan. Saya mengandaikan anda tahu menggunakan Putty dan SSH serta memiliki asas pengendalian pelayan Centos. Pertama sekali, anda perlu memiliki Pelayan web sendiri yang mempunyai kawalan terhadap root pelayan web tersebut. Dalam tutorial ini saya akan menggunakan VPS atau Virtual Private Server daripada ChicagoVPS.NET yang mempunyai spesifikasi seperti berikut: i. ii. iii. iv. v. 50GB Hardisk 2GB RAM 2TB Bandwith Dihoskan di Chicago US Kawalan penuh kepada Root System

Dengan Harga lebih kurang RM 22 sebulan atau USD 7. Atau anda boleh gunakan VPS dengan Spesifikasi lebih rendah dengan memilih seting lebih rendah semasa pemasangan dilakukan. Kedua, anda perlu Log masuk ke system VPS anda menggunakan Putty, contohnya seperti dibawah.

Dan log masuk ke sistem VPS anda sebagai root. Sila ambil perhatian, dalam tutorial ini, saya menggunakan default User root dan saya hanya menggunakan Asas keselamatan sahaja untuk log masuk ke server saya. Tetapi anda tidak perlu bimbang, diakhir tutorial ini dan proses pemasangan Nginx menggunakan skrip CentMinMod ini, server anda akan turut dipasang dengan CSF Firewall dan Suhosin sebagai alatan asas keselamatan pelayan web anda.

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |4

Shaiffulnizam Mohamad shaifful@joomla.my Log masuk ke pelayan web anda menggunakan SSH Berikut ialah gambar setelah anda log masuk ke Pelayan Web anda menggunakan SSH.

Untuk proses selanjutnya, sila kemaskinikan sistem Operasi Centos yang anda gunakan. Baris arahan
yum y update

Seperti gambar dibawah.

Muat turun Skrip CentminMod, Setup dan mulakan pemasangan 1. Memuat turun versi terbaru Mod Centmin dari (anda boleh mencari versi maklumat terkini di sini http://www.centminmod.com) dan turun pada http://vbtechsupport.com/920/. Capaian download kemudian akan bergerak ke domain centminmod.com.
cd /usr/local/src wget http://vbtechsupport.com/centminmenu/centmin-v1.2.2-eva2000.11.zip

2. Ekstrak fail dan tukar kepada direktori centmin-v1.2.2mod dan selepas itu sila chmod +x centmin.sh.
unzip centmin-v1.2.2-eva2000.11.zip cd centmin-v1.2.2mod chmod +x centmin.sh

3. Menu utama pemasang berasaskan centmin.sh dan jika ini adalah kali pertama memasang, pilih pilihan # 1 untuk memasang Centmin. Jika anda menaik taraf pelayan yang telah sebelum ini telah dipasang dengan Centmin Mod, anda TIDAK perlu untuk menjalankan pilihan # 1, sebaliknya menjalankan pilihan # 4 dan # 5 untuk menaik taraf Nginx pelayan web dan menaik taraf PHP. Pemasangan Nginx dan Konfigurasi Joomla Halaman |5

Shaiffulnizam Mohamad shaifful@joomla.my


./centmin.sh

Berikut ialah paparan cekupan skrin bagi skrip centmin.sh yang dilaksanakan.

Sila Pilih arahan/opsyen 1 dan Klik Enter untuk mula memasang Centmin, ketika pemasangan Centmin ini, Pelayan web akan dipasangkan dengan NginX, PHP, MariaDB serta APC Cache, Memcached server dan XCache. Paparan yang akan muncul setelah anda memilihOpsyen 1 adalah seperti berikut,

Anda perlu menaip y untuk teruskan, seterusnya anda akan ditanya sama anda ingin mengemaskini perisian dalam pelayan anda. Sila jawab y untuk kedua-dua soalan ini.

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |6

Shaiffulnizam Mohamad shaifful@joomla.my Selepas ini, perisian-perisian dalam pelayan ini akan dinaiktaraf kepada Versi terkini secara automatic.

Selepas semua pemasangan atau kemaskini Berjaya dilakukan, anda akan ditanya sama ada ingin menambah ciri keselamatan kepada folder /tmp dan /var/tmp

Untuk bahagian ini, Saya AMAT MENYARANKAN anda untuk menerima permintaan ini, dengan mengklik huruf y , kerana ini dapat membantu mengelakkan server anda dari hack dengan mudah. Selepas ia selesai dilindungi / diperkuatkan, anda akan ditanya soalan bagi setiap penggunaan aplikasi bagi membolehkannya, menggunakan memori dengan sepenuhnya. Anda perlu jawab soalan yang ditanya sama ada pelayan anda mempunyai memori yang mencukupi atau tidak.

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |7

Shaiffulnizam Mohamad shaifful@joomla.my Jika anda memiliki pelayan dengan memori yang besar, anda boleh menggunakan kelebihan pelayan web anda dengan sepenuhnya. Soalan diatas untuk mengoptimakan MySQL, jika pelayan web and memiliki memori yang agak rendah, sila pilih Yes dengan menaip perkataan y jika lebih, sila klik n , selepas ini. Begitu juga dengan penggunaan/pemasangan bagi PHP. Seperti dibawah, sila pilih berdasarkan kemampuan server anda. Begitu juga dengan XCache dan APC.

Selepas ini skrip akan memasang perisian pembangunan untuk kompil Nginx dan lain-lain. Sila tunggu hingga ianya selesai. Ia juga akan menambah repo kepada system centos anda sekiranya ianya belum ada didalam sistem anda. Setelah selesai memasang Alatan Pembangunan (Development Tools) dan mengemaskini sistem anda, anda akan ditanya untuk menetapkan Masa Lokal bagi server tersebut, sekiranya anda ingin berbuat sedemikian

Bahagian ini terpulang kepada anda, untuk saya. Saya akan menjawab tidak n untuk membolehkan saya menetapkan masa pelayan web tersebut kepada yang saya suka.

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |8

Shaiffulnizam Mohamad shaifful@joomla.my

Sistem akan secara auto memasang Nginx selepas mengenal pasti sistem yang anda gunakan.

Selepas selesai mengkompil NginX, anda akan ditanya sama ingin kompilkan Nginx untuk menyokong IPV6, sekiranya hos anda menyokong IPV6, anda boleh menggunakannya.

Pemasangan Nginx dan Konfigurasi Joomla

Halaman |9

Shaiffulnizam Mohamad shaifful@joomla.my Jika anda memilih Ya, sila klik y dan Nginx akan dikompil supaya ia dapat menyokong protokol tersebut. Sekiranya tidak, sila taipkan n , sekiranya hos anda dan ISP anda tidak menyokong IPV6, laman web tersebut tidak akan dapat dilawati. Kecuali mereka yang menggunakan ISP yang disokong IPV6. Selepas selesai proses Kompil. Apache akan dinyahaktifkan dan MySQL/MariaDB pula akan dipasang. Apabila pemasangan MariaDB ini selesai, anda akan terus diminta untuk menambah ciriciri keselamatan MariaDB dengan menambah katalalaluan ke MariaDb/MySQL, membuang anonymous user, membuang pangkalan data ujian (test) Ini semua boleh dilakukan secara manual menggunakan baris arahan
/usr/bin/mysql_secure_installation

Oleh kerana, MariaDB adalah berasal dari MySQL, maka baris arahan mereka adalah lebih kurang sama sahaja.

Klik Enter sahaja pada kali ini, kerana Katalaluan memang tiada pada permulaannya,

selepas itu, sila tetapkan katalaluan root, Sila jawab y disini, anda boleh gunakan katalaluan berbeza dengan katalaluan root pelayan web anda. Jika pelayan web MySQL atau sebaliknya dicerobohi maka salah satu katalaluan akan lebih selamat, (Pastikan katalaluan anda menggabungkan abjad dan nombor serta huruf istimewa, cthnya $#@ dan lain-lain.

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 10

Shaiffulnizam Mohamad shaifful@joomla.my

Dalam pemasangan default MySQL, terdapat pengguna anonymous, untuk keselamatan sila pastikan anda Klik n untuk buang pengguna ini dari pangkalan data. Untuk keselamatan juga, anda harus menyahaktif sambungan root dari luar pangkalan data anda, supaya katalaluan anda tidak diteka dari rangkaian. Oleh yang demikian, sila pastikan anda menjawab Y sekiranya anda menggunakan server ini sebagai server keluaran dan bukan server ujian.

Untuk seterusnya, dalam pemasangan default. Ada satu pangkalan data bertajuk TEST yang boleh diakses oleh semua orang, sila buang sebelum pelayan web anda digunakan untuk online sepenuhnya. Sila pastikan pangkalan data test dan akses kepadanya dibuang. Klik Y untuk membuangnya.

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 11

Shaiffulnizam Mohamad shaifful@joomla.my

Selepas selesai memasang MySQL/MariaDB, pemasangan PHP pula akan dimulakan, ianya bermula dengan pengemaskini sistem Server anda, dan selepas itu, skrip centminmod akan mula mengambil fail-fail pemasangan PHP yang terkini dan akan dikompilkan berdasarkan jumlah memori yang anda tetapkan sebelum ini,

Dengan menggunakan Skrip dari CentminMod ini, yang menariknya ialah PHP bukan dipasang secara sedia ada, tetapi ianya dikompil menggunakan kod sumber dan berdasarkan Input anda mengenai memori yang dimiliki oleh pelayan anda. Skrip ini juga akan memasang PHP SAPI (Server API) modul FPM dan juga Binari CLI bagi PHP (Command line Interface) Mengenai PHP-fpm? PHP-fpm (FastCGI Proses Pengurus) adalah pelaksanaan alternatif PHP FastCGI dengan beberapa ciri-ciri tambahan yang berguna untuk laman sebarang saiz, terutamanya tapak yang sibuk. Ciri-ciri ini termasuk: Proses penyesuaian spawning (BARU!) Adaptive process spawning Statistik asas (mod_status ala Apache) (BARU!) Proses pengurusan canggih dengan berhenti / bermula dengan lembut (graceful) Pemasangan Nginx dan Konfigurasi Joomla H a l a m a n | 12

Shaiffulnizam Mohamad shaifful@joomla.my Kebolehan untuk memulakan pekerja dengan uid / gid / chroot / persekitaran yang berbeza dan php.ini berbeza (menggantikan safe_mode) merekod Stdout &stderr Kecemasan mula semula dalam kes kemusnahan cache opcode sengaja Mempercepatkan sokongan muat naik Sokongan untuk "slowlog" Tambahan kepada FastCGI, seperti fastcgi_finish_request () - fungsi khas untuk menyelesaikan permintaan & flush semua data di samping terus melakukan sesuatu yang memakan masa (video penukaran yang, statistik pemprosesan, dll)

Seterusnya, ia juga akan memasang fail logrotate dan mulakan kembali php-fpm dan pemasangan selesai.

dan Wow! Php Berjaya dipasang ke server anda. Sekarang, Skrip akan cuba memasang XCache, APC dan Memcached yang bertujuan membantu mempercepatkan muat turun atau memory caching atau data caching (simpan memori atau data sementara untuk diguna semula bagi mempercepatkan akses kepada fail2 tersebut) Pilihannya, anda tidak boleh memasang Xcache bersama-sama APC, anda hanya boleh pilih salah satu darinya.dan keduanya menggunakan 32MB RAM. Untuk tutorial ini saya hanya memasang APC dan bukan XCache seperti gambar dibawah.

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 13

Shaiffulnizam Mohamad shaifful@joomla.my Anda akan ditanya sama ada ingin memasang XCache atau tidak? Saya tidak memasang XCache tetapi APC, ini terpulang kepada anda, dan sebaiknya anda membuat sedikit kajian mengenai kelebihan dan kekurangan antara APC dan XCache, tetapi dalam tutorial ini, saya hanya memfokuskan kepada pemasangan asas Nginx.

Jika anda ingin gunakan APC, sila jawab y

APC akan dipasang dari permulaan sekiranya pelayan web yang anda gunakan tidak disokong. Contohnya pelayan web yang saya gunakan dalam tutorial ini tidak disokong oleh pemasangan normal, maka ia akan dikompil bagi kesesuaian server saya,

Setelah selesai dipasang, PHP-FPM akan dimulakan kembali, dan selepas itu sendmail akan dipasang secara automatik.

Setelah sendmail dipasang, skrip ini akan memasang pelayan Memcached yang akan menggunakan 8MB RAM bagi setiap satu pelayan. Konfigurasi sendmail boleh dibuat selepas semua proses pemasangan selesai dilakukan, mengikut pengalaman saya selepas menggunakan skrip dari centminmod ini, saya Berjaya menggunakan sendmail dengan sedikit ubahsuaian melalui webmin. (Akan diterangkan dalam tajuk akan datang)

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 14

Shaiffulnizam Mohamad shaifful@joomla.my Selepas pemasangan Sendmail, pemasangan seterusnya ialah server memcached. Selepas selesai proses pemasangan tersebut anda ditanya sama ada ingin memasang 1 atau 2 pelayan memcached yang menggunakan 8MB RAM setiap satu. Jika server/pelayan web anda mempunyai memori RAM yang agak besar, anda boleh memasang dua pelayan memcached sekaligus.

Selepas itu. Ektension php-memcached akan dikompil dan dipasang ke direktori yang sepatutnya. Pelayan akan mulakan semula php-fpm dan selepas itu pula akan memasang halaman log masuk admin memcached.

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 15

Shaiffulnizam Mohamad shaifful@joomla.my

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 16

Shaiffulnizam Mohamad shaifful@joomla.my

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 17

Shaiffulnizam Mohamad shaifful@joomla.my

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 18

Shaiffulnizam Mohamad shaifful@joomla.my

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 19

Shaiffulnizam Mohamad shaifful@joomla.my

Untuk membolehkan anda menggunakan ciri Search Engine Friendly pada Joomla!, SEF Apa yang anda harus lakukan terlebih dahulu ialah dengan membuat ubahsuai kepada konfigurasi Virtual Host Nginx web anda. Pada kebiasaannya Absolute pathnya adalah seperti berikut :
/usr/local/nginx/conf/conf.d/

Oleh yang sedemikian, sila ke folder tersebut dan lihat Virtual Host yang mana perlu diubahsuai dengan menyenaraikan fail yang ada.
cd /usr/local/nginx/conf/conf.d/ ls

Sebagai contoh,

Untuk mengedit konfigurasi SEF bagi web http://backup.joomla.my, anda perlu edit fail backup.joomla.my.conf sama ada menggunakan nano atau vi, untuk saya, saya lebih biasa menggunakan arahan berikut :
Nano backup.joomla.my.conf

Seperti gambarajah berikutnya.

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 20

Shaiffulnizam Mohamad shaifful@joomla.my

Untuk menambah ciri SEF, anda perlu mencari baris


location / {

Selepas itu, sila tambahkan kod berikut


try_files $uri $uri/ /index.php?q=$request_uri;

Contoh seperti kod yang diberikan dibawah ini


location / { # Enables directory listings when index file not found #autoindex on; # Shows file listing times as local time #autoindex_localtime on; # Enable for vBulletin usage WITHOUT vbSEO installed #try_files / /index.php; try_files $uri $uri/ /index.php?q=$request_uri; Masukkan Kod berikut }

Keselamatan Sila masukkan kod dibawah bagi menghalang skrip dari dijalankan dari dalam direktori yang dichmod 777 atau writable seperti direktori images, cache, media, logs dan tmp.
# deny running scripts inside writable directories location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cg$ return 403; error_page 403 http://backup.joomla.my/403; }

Masukkan kod dibawah untuk membenarkan Nginx menyimpan fail-fail berikut sementara dalam cache bagi tempoh satu tahun / 14 hari mengikut kesesuaian anda.
# caching of files location ~* \.(ico|pdf|flv)$ { expires 1y; }

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 21

Shaiffulnizam Mohamad shaifful@joomla.my


location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ { expires 14d; }

Kod dibawah adalah pilihan, sekiranya anda ingin hasilkan halaman 404 atau 403 anda sendiri, Laman 404 ialah untuk fail atau halaman tidak ditemui, manakala laman 403 merupakan Direktori tidak boleh dicapai @ larangan atau forbidden directory, ini hanya valid atau sah, sekiranya anda menggunakan override dan bukan halaman ralat asal NginX.
error_page 404 http://backup.joomla.my/404; location http://backup.joomla.my/404 { internal; } error_page 403 http://backup.joomla.my/403; location http://backup.joomla.my/403 { internal; }

Selepas anda menyimpan fail tersebut, sila mulakan kembali pelayan web NginX anda untuk dapatkan perubahan yang telah anda lakukan sebentar tadi. Berikan arahan berikut :
ngxrestart

Sekiranya tiada sebarang masalah, paparan arahan tadi akan kelihatan seperti berikut.

Pemasangan Nginx dan Konfigurasi Joomla

H a l a m a n | 22