LEMP

LEMP = Linux EngineX MySQL PHP ūüėÄ

Ya, itu mungkin sebuah singkatan yang jarang kita dengar, walau sebenarnya tidaklah terlalu asing di telinga. Tentunya selama ini kita selalu mendengar atau membaca tentang LAMP (Linux Apache MySQL PHP). Yang membedakannya adalah fungsi server web Apache di LAMP kita ganti dengan EngineX atau Nginx di LEMP.

Saya tidak tahu apakah sebagian besar pengguna Internet di Indonesia sudah mengetahui keberadaan Nginx sebelumnya. Bagi anda yang kebetulan belum tahu apa itu Nginx, mungkin sejumlah situs di bawah ini dapat membantu menambah wawasan anda.

Dalam kesempatan ini saya akan mencoba menulis sebuah tutorial singkat dan praktis bagaimana cara menginstalasi LEMP dengan di Ubuntu 8.04 LTS. Tutorial in merupakan kompilasi dari tutorial yang ditemukan di sini, di sini, dan sedikit di sini. Tutorial tersebut kemudian saya sesuaikan dengan kondisi laptop tua yang saya miliki. Jadi perlu ditekankan tidak ada garansi sama sekali dari saya. Jika tutorial ini belum berhasil di tempat anda, monggo dicari sumber yang lain atau mengedit sendiri. ūüôā

Komponen LEMP yang akan kita instal adalah sebagai berikut:

  • Linux: Ubuntu 8.04 LTS (Asumsi sudah diinstal dan berjalan dengan baik)
  • Server Web: Nginx 0.6.32 (Paket Universe Intrepid. Paket di repository Hardy sudah terlalu tua (0.5.33))
  • Database: MySQL 5
  • Bahasa Pemrograman: PHP 5

OK, mari kita mulai langkah-langkah instalasinya. Mudah-mudahan tidak ribet ya.

1. Pastikan sistem Ubuntu anda dalam kondisi OK

#sudo aptitude update
#sudo aptitude upgrade

2. Instal Build Essential, PHP 5, MySQL 5 dan libraries yang berkaitan

a. Instal Build-Essential

#sudo aptitude -y install build-essential

b. Instal PHP

#sudo aptitude -y install php5-common php5-dev php5-mysql php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-cgi php5-mcrypt php5-curl php5-gd php5-memcache php5-mhash php5-pspell php5-snmp php5-sqlite libmagick9-dev php5-cli

Untuk memperbaiki isu dengan Imagick

#sudo aptitude -y install make php-pear
#sudo pecl install imagick

Tekan Enter pada waktu prompt.

Setelah itu, buka php.ini untuk menambahkan

extension=imagick.so

di akhir file.

#sudo nano /etc/php5/cgi/php.ini

Simpan.

c. Instal MySQL

#sudo aptitude -y install mysql-server mysql-client libmysqlclient15-dev

– Amankan server MySQL.

#mysql_secure_installation

3. Instal Postfix agar aplikasi web anda nanti dapat mengirimkan e-mail

#sudo aptitude -y install postfix telnet mailx

General type of configuration? <– Internet Site
Mail name? <– yourdomain.com

– Lalu semua e-mail untuk root kita alihkan ke akun user yang saat ini digunakan. Contoh: kemas.

#sudo nano /etc/aliases

– Tambahkan ini di akhir file

root: kemas

– Perbaharui database aliases dengan

#sudo newaliases

– Konfigurasi Postfix.

#dpkg-reconfigure postfix

General type of configuration? <– Internet Site
Where should mail for root go <– kemas
Mail name? <– yourdomain.com
Other destinations to accept mail for? (blank for none) <– yourdomain.com, localhost.yourdomain.com, localhost.localdomain, localhost
Force synchronous updates on mail queue? <– No
Local networks? <– 127.0.0.0/8
Use procmail for local delivery? <– No
Mailbox size limit <– 0
Local address extension character? <– +
Internet protocols to use? <– all

– Restart postfix.

#sudo /etc/init.d/postfix restart

– Tes kirim e-mail dengan menggunakan PHP. Gunakan alamat e-mail anda sebenarnya. Contoh: kemas@e-mail.com

#php -a
mail (‚Äôkemas@email.com‚Äô, “Halo!”, “Anda sedang membaca e-mail saya.”);
exit ();

Jika anda menerima e-mail yang baru saja dikirim ke alamat e-mail anda yang sebenarnya, berarti instalasi dasar Postfix sudah berhasil. Tentunya kemampuan kirim dan terima e-mail ini dapat ditingkatkan. Silakan mencari dan membaca tutorial lanjutan yang terdapat di Internet.

4. Instal dan konfigurasi Nginx

Sekarang kita sampai pada pekerjaan yang sesungguhnya mengganti Apache dengan Nginx. Ada beberapa cara untuk menginstalasinya. Cara pertama melalui source. Silakan baca tutorial ini untuk langkah-langkah yang harus diikuti. Cara kedua, yang lebih gampang, adalah melalui paket yang telah tersedia di server repository Ubuntu. Cara ini yang akan kita tempuh saat ini. Karena di repository Hardy paket yang tersedia sudah terlalu tua, maka kita menggunakan paket yang terdapat di repository Intrepid. Perbedaan lsb-base yang dipakai, mengharuskan kita memperbaharui lsb-base di Hardy. Sebelumnya penuhi dulu sejumlah dependensi.

#sudo aptitude -y install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

#wget http://kambing.vlsm.org/ubuntu/pool/main/l/lsb/lsb-base_3.2-14ubuntu1_all.deb

#sudo dpkg -i lsb-base_3.2-14ubuntu1_all.deb

Kemudian download paket Ubuntu 0.6.32.

#wget http://kambing.vlsm.org/ubuntu/pool/universe/n/nginx/nginx_0.6.32-1ubuntu1_i386.deb

#sudo dpkg -i nginx_0.6.32-1ubuntu1_i386.deb

Selesai. Langkah selanjutnya mengkonfigurasi Nginx.

#sudo nano /etc/nginx/nginx.conf

Sesuaikan dengan konfigurasi di bawah ini.

user www-data;
worker_processes  2;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
worker_connections  1024;
}

http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

access_log    /var/log/nginx/access.log;

sendfile        on;
tcp_nopush     on;

keepalive_timeout  5;
tcp_nodelay    on;

gzip  on;
gzip_comp_level 2;
gzip_proxied any;
gzip_types      text/plain text/html text/css application/x-javascript text/xml application/xml
application/xml+rss text/javascript;

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

}

Setelah itu, buka dan edit file default yang terdapat di direktori /etc/nginx/sites-available. Sesuaikan kembali dengan konfigurasi di bawah ini.

server {
listen   80;
server_name  localhost;

access_log  /var/log/nginx/localhost.access.log;

location / {
root   /var/www/nginx-default;
index  index.html index.htm;
}

location /doc {
root   /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}

location /images {
root   /usr/share;
autoindex on;
}

#error_page  404  /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /var/www/nginx-default;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass   http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
}

}

Agar Nginx secara default dapat menjalankan PHP, maka kita perlu mengaktifkan FastCGI. Dari tutorial ini diperoleh cara yang paling cepat.

#sudo aptitude -y install libfcgi0
#cd /etc/default/
#sudo wget -O php-fastcgi http://zhware.net/files/nginx/php-fastcgi.txt
#cd /etc/init.d/
#sudo wget -O php-fastcgi http://zhware.net/files/nginx/php-fastcgi.rc.txt
#sudo chmod +x php-fastcgi
#sudo /usr/sbin/update-rc.d -f php-fastcgi defaults
#sudo /etc/init.d/php-fastcgi start

Setelah semua langkah di atas dilakukan, sekarang saatnya menambahkan Nginx ke default run levels dan me-restart Nginx.

#sudo /usr/sbin/update-rc.d -f nginx defaults

#sudo /etc/init.d/nginx restart

5. Tes LEMP

Buka browser favorit anda dan ketikkan, http://localhost/ di URL bar-nya. Jika anda melihat tampilan “Welcome to nginx” berarti LEMP berhasil diinstal. Untuk menguji coba PHP, silakan buat sebuah file info.php yang berisikan kode berikut:

<?php echo phpinfo(); ?>

dan tempatkan di /var/www/nginx-default. Kembali arahkan browser anda ke file tersebut, contoh: http://localhost/info.php. Lihat apa yang terjadi. ūüôā

6. Selamat anda berhasil menginstalasi LEMP!

Silakan mencoba tutorial ini, mudah-mudahan bermanfaat.

Update 25/08/2008:

Jika anda tidak ingin repot menginstalasi Nginx seperti metode yang ditulis di atas, anda dapat menggunakan skrip ini. Sebelum anda menjalankan skrip tersebut, disarankan untuk menyesuaikan terlebih dahulu sejumlah parameter yang terdapat di skrip dengan kondisi LEMP anda. Atau, jalankan saja dan kemudian ikuti konfigurasi yang ada. Pilihan ada pada anda.  (Tips: Mariuz)

#sudo php nginx-build.php

Advertisements