Compile Web Server with Nginx via source on ubuntu 9.10

huwi para linuxer yang berbahagia, mo share aja saat ngoprek ubuntu 9.10, awalnnya kurang seneng bagi aku ribet sih, harus repo untuk nglengkapi paket2nya gag kyk Fedora (he he sukaanku), jadi bagi orang yang gag pnya koneksi internet agak susah buwat ngelengkapi paket2nya, tapi memang ada yang repo secara off line dari DVD. Alasan aku ngoprek ubuntu karmic koala (9.10) gara2 mas sugry ngeluh, dia pake karmic koala pengen install web servernya via source tapi gagal terus, akhirnya karena saking judegnya dia pake apt-get buwat ngeinstall web servernya :)), awalnya ok berjalan baik, tp katanya ada maslah trs diganti pake XAMPP sebagi webserver penggantinya tapi ternyata ada konfigurasi php-soap nya konflik ma di syntax php yang mas sugri bwt diaplikasinya…..setelah kompromi ma aku soal masalah itu, tetep gagal akhirnya aku angkat tangan juga gag bisa recompile XAMPP-nya khusus php mendisable-soap (apa aku-nya yang gag ngerti y, tp ak bnr2 gag ngerti……klo da yg tau ak dikasih ngerti y caranya ;))

nah dari permasalahan tersebut membuwat aku penasaran, kok karmic koala gag mau diinstall via source (gagal terus) kan gag mungkin???, trus lenuvo ku tak install karmic koala, dengan sedikit tertawa`an teman2 yang katanya aku penggemar fedora telah beralih ke ubuntu, aku coba tetap tegar menghadapi ujian ini  (halah
di dramatisir banget :D) dan ada yg mengucapkan slamat bergabung di ubuntu (doh). Aku coba compile webserver via source.

Let`s menuju oprekan pertama

install mysql

buat usernya dulu
# useradd mysql
# groupadd mysql

dependency ne
#apt-get install libncurses5-dev
#apt-get install gcc
#apt-get install g++

extrak mysql-xx.xx.tar.gz
#cd mysqlxx.xx
#./configure –prefix=/usr/local/mysql –with-unix-socket-path=/usr/local/mysql/socket/mysql.sock

saat configure gag ada error silahkan dilanjutkan

#make && make install
#cp support-files/my-medium.cnf /etc/my.cnf
#cd /usr/local/mysql
#bin/mysql_install_db –user=mysql
#chown -R root .
#chwon -R mysql var
#chgrp -R mysql .

jalankan mysql
#bin/mysqld_safe –user=mysql &

——————————————————————
install Nginx (Engine-X)

lihat dependncy-nya dulu…
#aptitude show nginx
hasilnya
Depends: libc6 (>= 2.4), libpcre3 (>= 7.7), libssl0.9.8 (>= 0.9.8f-5), zlib1g (>= 1:1.1.4), lsb-base (>= 3.2-14)

install dependency
#apt-get install libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl0.9.8 libssl-dev zlib1g zlib1g-dev lsb-base

extrak nginx
#cd nginx-xx.xx
#./configure –prefix=/usr/local/nginx –without-http_rewrite_module
#make && make install

jalanin service nginx

#/usr/local/nginx/sbin/nginx

——————————————————————–
install php5

lihat dependency yang dibutuhkan bila pake nginx sebagai servisnya

dependency (gunakan sesuai kebutuhan)
php5-cli
php5-cgi
libpng
gd
curl
zlib
note = saat ngoprek php zlib, gd, libpng ak install via source jd donlot dl sourcenya

ekstrak php5-xx.tar.gz
#cd php5-xx
#./configure \
–with-mysql=/usr/local/mysql  \
–with-mysql-sock=/var/lib/mysql5/mysql.sock \
–with-zlib \
–with-bz2 \
–with-gd \
–enable-gd \
–with-curl=/usr/bin/curl \
–enable-mbstring \
–enable-dbase
(path compile disesuaikan dgn kebutuhan, lht di ./configure –help)

saat compile klo ada error libxml2, xml , libcrul3 install aja lewat apt-get (baca dengan seksama errornya)

#make
#make install
#cp php.ini-dist /usr/local/apache2/conf/php.ini

——————————————————————–
install lighttpd

ekstrak lighttpd-xx.xx.tar.gz
#cd lighttpd-xx.xx
#./configure –prefix=/uar/local/lighttpd –without-bzip2

#make && make install

#cp src/spawn-fcgi /usr/bin/spawn-fcgi

note : jika kita pake nginx sebagai web servernya maka harus install lighttpd karena nginx membthkan spawn.fcgi-nya untuk membaca phpnya.

konfigurasi file nginx.conf yg ada di /usr/local/nginx/conf/

tambahkan path documentroot, dan index.php pada index

server {
listen       80;
server_name  localhost;
#charset koi8-r;
#access_log  logs/host.access.log  main;
location / {
root   /usr/local/nginx/html; —> documentroot disesuaikan wkt installasi nginx
index  index.html index.htm index.php; —> tambahkan index.php
}

hilangkan tanda komennya (#) pada baris seperti dibawah ini, dan fastcgi_param sesuakan path documentroot nginx-nya

location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
include        fastcgi_params;
}

jalankan servis spawn.fcgi dengan cara
/usr/bin/spawn.fcgi -f /usr/bin/php5-cgi -p 9000

buat file info.php di /usr/local/nginx/html
<?
phpinfo ();
?>

jalankan browser ketik localhost/info.php tarrraaaaaa….php dah bisa jalan n terinstall baik

masukkan ke /etc/rc.local –> biar sll di load kalo mesin restart 😀

/usr/bin/spawn.fcgi -f /usr/bin/php5-cgi -p 9000
/usr/local/nginx/sbin/nginx

Hasil di atas tidak serta merta langsung jadi, mengalami beberapa kendala dan masalah sehingga berhasil install dan konfig via source. kendala pertama saat konfig atau compile paket via source yaitu :

  1. ada sebagian paket yang versinya harus sesuai dengan paket bawaan ubuntunya, misal ubuntu memiliki nginx bawaan versinya 0.7.16 kita coba compile via source dengan versi nginx.0.5.12.tar.gz nah bila kita menggunakan versi dibawahnya atau diatasnya pasti compile gagal dan tidak akan berhasil,
  2. dependency harus dari ubuntu, klo gag dari ubuntu biasanya gag mau, solusinya gunakan perintah aptitude show nginx, disitu nanti akan menampilkan dependencynya…nah bagi ku ubuntu agak susah en repot  (he he pendapat pribadi).

kesimpulannya klo kita mau install/compile via source harus kolaborasi dengan dependency dari ubuntu dan disesuaikan versinya, dipastikan compile via source dijalankan sukses :D.
semoga tulisan ini bermanfaat bagi pemula (ak juga pemula he he….) dan yang pada pake ubuntu trus meh compile via source.

Kalo ada kesalahan mohon di ralat y

thnks all bwt linuxer segala umur dan semuanya dari master sampai pemula 😀

ref :

aduh aku lali e, pokoknya semua tulisan yang pernah membahas web server aku ucapin terimakasih love u all

7 comments.

Comments are closed.