Server LEMP
Server lemp menjalankan Nginx server web bersama dengan Php dan Mysql atau MariaDB di Linux sistem. Nginx semakin populer karena strukturnya yang ringan dan kemampuannya untuk menangani lalu lintas dalam jumlah besar secara optimal. Mariadb adalah pengganti mysql karena mysql tidak terlalu gratis lagi. Dalam tutorial ini kita akan menyiapkan Nginx dengan Php FPM di CentOS. Petunjuk untuk menginstal MariaDB akan dibahas dalam posting lain.
CentOS adalah os yang sangat populer untuk server web berbasis linux. CentOS (Community Enterprise Operating System) didasarkan pada RHEL (RedHat Enterprice Linux) dan 100% kompatibel dengan biner. Bagi kami itu hanya berarti mirip dengan rhel dalam pekerjaan dan lingkungannya dan bahwa kami memiliki perintah yum yang tersedia untuk menginstal perangkat lunak dengan mudah dari repositori. Dalam contoh ini kita akan mengerjakan CentOS 6.4 yang pada saat posting ini adalah versi terbaru.
Instal Nginx
Langkah pertama adalah menginstal server web Nginx. Nginx tidak tersedia di repositori CentOS default tetapi nginx menyediakan repositori khusus centos agar mudah digunakan.
Tambahkan repositori nginx
Kami membuat file repositori di direktori /etc/yum.repos.d
$ nano /etc/yum.repos.d/nginx.repo
Sekarang buka file dan tambahkan baris berikut. Instruksi ini disediakan oleh Nginx secara langsung.
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Simpan dan tutup. Sekarang nginx dapat diinstal.
$ yum install nginx
Di atas akan mengunduh dan menginstal server web nginx dan membuatnya siap digunakan.
Setelah instalasi selesai, saatnya melakukan beberapa pemeriksaan. Pertama gunakan perintah layanan untuk memeriksa status nginx.
[[email protected] ~]# service nginx status nginx is stopped
Di atas menunjukkan bahwa layanan nginx ada tetapi dihentikan. Selanjutnya periksa konfigurasi menggunakan opsi t dengan perintah nginx.
[[email protected] ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Perintah di atas memberi tahu bahwa konfigurasinya OK dan siap untuk dijalankan. Dan yang terpenting, ia juga memberitahu lokasi file konfigurasi nginx. Untuk membuat host virtual/beberapa domain, penting untuk membuat file konfigurasi terpisah untuk setiap host. Konfigurasi virtual host terletak di /etc/nginx/conf.d/
Oke, sekarang mari kita mulai server nginx.
[[email protected] conf.d]# service nginx start Starting nginx: [ OK ]
Sekarang nginx sudah aktif dan berjalan. Temukan alamat ip server nginx menggunakan ifconfig dan sambungkan ke ip tersebut dari browser untuk mengujinya.
http://192.168.1.4/
Anda mungkin harus membuka port 80 di server centos, jika belum terbuka. Lihat tutorial ini tentang cara membuka port http di centos. Setelah terbuka, alamat ip server nginx akan memuat halaman dengan konten seperti ini
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.
Membuat host virtual
Host virtual atau "Blok Server" seperti yang disebut nginx, memungkinkan nginx untuk melayani beberapa host berdasarkan nama. Misalnya dapat meng-host abc.com dan cde.com bersama-sama. Yang dibutuhkan hanyalah file konfigurasi untuk setiap host yang berisi pengaturan khusus host seperti direktori root dll.
Direktori /etc/nginx/conf.d/ berisi file konfigurasi default.conf yang memiliki pengaturan untuk virtual host yang akan bekerja melalui http://localhost/
Periksa file dan itu akan menunjukkan lokasi file web yang disebut root.
location / { root /usr/share/nginx/html; index index.html index.htm; }
Jadi file web kita (.html, .php dan semuanya) harus diletakkan di dalam /usr/share/nginx/html direktori.
Untuk membuat lebih banyak host virtual, cukup salin file default.conf dan edit pengaturan root path dan server_name agar sesuai dengan domain/host Anda.
$ cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mysite.conf
Sekarang edit mysite.conf dan konfigurasikan pengaturan seperti direktori root dan nama_server.
Kemudian uji konfigurasi nginx Anda dan mulai ulang server. Itu akan membuat virtual host baru.
Izin File
Saat menyiapkan direktori root untuk file web, harus dipastikan bahwa file dan semua direktori induk dapat dibaca oleh "grup" dan "lainnya" pada sistem. Misalnya izin 0755. Nginx tidak akan dapat membaca file, jika direktori induk tidak dapat dibaca.
Misalnya jika Anda memilih untuk menempatkan file web Anda di direktori berikut
/home/joe/public_html
Kemudian pastikan bahwa direktori home dan joe dapat dibaca oleh grup dan lainnya. Jika tidak, bahkan jika file web dapat dibaca oleh orang lain, tetapi bukan direktori induk joe, maka nginx tidak akan dapat membaca file dan log kesalahan akan berisi pesan seperti ini
open() "/home/joe/public_html/index.html" failed (13: Permission denied)
Instal PHP dan FPM
Setelah server nginx aktif dan berjalan, tugas selanjutnya adalah menginstal interpreter php agar file .php dapat diproses oleh nginx.
Karena php-fpm sudah menjadi bagian dari repositori CentOS, kita tidak perlu membuat entri repo lain seperti yang kita lakukan untuk paket nginx. Jadi untuk menginstall php-fpm kita tinggal menggunakan perintah yum.
$ yum install php-fpm
Anda mungkin ingin menggunakan opsi "-C" jika Anda tidak ingin yum memperbarui data repositori sebelum menginstal paket.
Sekarang periksa status layanan php-fpm
# service php-fpm status php-fpm is stopped
Kemudian mulai
# service php-fpm start Starting php-fpm: [ OK ] [[email protected] ~]#
Sekarang saatnya membuat skrip php dan mengujinya. Direktori file web adalah /usr/share/nginx/html
Jadi buat file di direktori itu.
# nano /usr/share/nginx/html/phpinfo.php
Setelah itu kami menambahkan konten ini ke dalamnya.
<?php phpinfo();
Sekarang saatnya membuka file melalui browser kita.
http://192.168.1.4/phpinfo.php
TIDAK, ini belum akan berfungsi, karena kami belum mengonfigurasi nginx untuk mengeksekusi skrip php.
Konfigurasi Nginx untuk menjalankan php
Nginx sudah hadir dengan konfigurasi default untuk menggunakan php fpm. Buka file /etc/nginx/conf.d/default.conf dan batalkan komentar pada baris berikut.
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
SCRIPT_FILENAME sangat penting dan harus menunjuk ke lokasi yang benar, jika tidak, Anda akan terus mendapatkan "File tidak ditemukan." kesalahan.
Simpan file dan tutup. Sekarang uji konfigurasi nginx baru Anda.
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [[email protected] ~]#
Konfigurasi OK. Sekarang restart nginx agar konfigurasi baru diterapkan.
# service nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ] [[email protected] ~]#
Selesai. Sekarang buka skrip php di browser Anda dan itu akan langsung berfungsi.
http://192.168.1.4/phpinfo.php
Instal APC
APC adalah cache php alternatif yang memungkinkan php untuk menyimpan data pengguna dan opcode. Ini membuat eksekusi php lebih cepat dari biasanya. Paket untuk APC tersedia di repositori dasar itu sendiri sehingga kita tidak perlu mengonfigurasi repositori tambahan apa pun.
Instal langsung menggunakan yum.
# yum install php-pecl-apc
Sekarang restart php-fpm agar apc diaktifkan
# service php-fpm restart Stopping php-fpm: [ OK ] Starting php-fpm: [ OK ] [[email protected] php.d]#
File konfigurasi untuk apc terletak di jalur berikut.
/etc/php.d/apc.ini
Jalur yang sama juga disebutkan dalam output fungsi phpinfo() jika Anda ingin memverifikasi.
Bagian Konfigurasi halaman phpinfo.php harus memiliki bagian untuk apc yang menunjukkan nilai dari berbagai arahan apc. Semua arahan tersebut dapat dikonfigurasi dalam file apc.ini.
Catatan
1. Saat mengonfigurasi host virtual, pengujian konfigurasi nginx mungkin gagal dengan kesalahan seperti ini
# nginx -t nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 nginx: configuration file /etc/nginx/nginx.conf test failed
Untuk memperbaiki kesalahan ini, buka file konfigurasi nginx utama yang terletak di /etc/nginx/nginx.conf dan tambahkan baris berikut di blok http.
server_names_hash_bucket_size 64;
Itu akan meningkatkan ukuran keranjang hash dan memperbaiki kesalahan.