Skip to main content

Install Web Server

Install Web Server Hemat Resource menggunakan Nginx+PHP+MySQL+Debian Mau share tutor cupu nih, biar saya gak lupa.

Ehmm... temen2 mungkin udh gak asing lg ama Apache, apalg yg terbiasa pake web server instant (XAMPP). Tp tau gak, klo Apache itu sangat boros resource!. Buat yg punya budget gede sih gak masalah bisa beli server dng spek tingging, tp gmn dng yg budgetnya pas2an seperti saya ini? mau gak mau harus cari akal. Salah satunya adalah menggunakan Nginx. Berikut tutornya.

NOTE: Saya menggunakan Debian utk OS nya, utk OS/distro lain belum coba.

Warna merah: adalah error yg mungkin terjadi saat installasi
Warna biru: adalah file2 penting atau lokasi penting yg harus di edit/tambah

Code:
code spoiler : adalah perintah2 yg saya ketikan

FAQ
QUESTION: Kenapa gak pake XAMPP aja yg praktis???
ANSWER: Klo mau yg instant terus, kapan belajarnya... jng manja :)


Bismillah...

******************************************************************************** ​**************************************************

1. Edit repositori di /etc/apt/source.list
Code:
# nano /etc/apt/sources.list

2. Tambahkan 2 baris berikut,
Quote:deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
lalu save!

3. update hasil perubahan repo
Code:
# apt-get update

4. Install Nginx, PHP dan semua modul yg di butuhkan

Code:
# aptitude install nginx php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

5. Coba Nginx yg baru di install

Code:
# /etc/init.d/nginx start

Spoiler: hide
[Image: startnginx.png]

lalu buka browser dan ketik http://localhost. Harusnya seperti ini,
Spoiler: hide
[Image: nginxworks.png]

5. Edit file /etc/php5/cgi/php.ini , cari baris cgi.fix_pathinfo = 0, lalu ubah angka 0 jadi 1. lalu tambahkan juga baris berikut di akhir file,
cgi.fix_pathinfo = 1


save!

6. Install MySQL
Code:
# apt-get install mysql-server mysql-client

7. Install lighttpd web server,
Code:
# apt-get install lighttpd
(Penjelasan: karna nginx tidak memiliki modul FastCGI sendiri, dia butuh modul dari web server lain. Tapi hanya 1 modul saja yg di butuhkan yaitu spawn-fcgi. Setelah modul di ambil, lighttpd harus di matikan. karna tidak mungkin 2 web server jalan sekaligus dlm port yg sama)

kalo muncul error seperti ini, "Starting web server: lighttpd2009-03-19 15:58:09: (network.c.300) can't bind to port: 80 Address already in use failed!" itu berarti port 80 sudah di gunakan Nginx. Cara mengatasinya adalah, hentikan dlu nginx

Code:
# /etc/init.d/ningx stop

Lalu install ulang lighttpd

Code:
# apt-get install lighttpd

8. Setelah di install, hentikan proses lighttpd, karna yg akan kita gunakan ada Nginx, bukan lighttpd. Kita hanya butuh 1 modul nya saja seperti yg sudah saya jelaskan di atas.

Code:
# /etc/init.d/lighttpd stop

9. Atur agar lighttpd tidak otomatis aktif saat boot

Code:
# update-rc.d -f lighttpd remove
# rm /usr/sbin/lighttpd

10. Buat file /etc/init.d/php-fastcgi utk meng-handle proses dari PHP/FastCGI.

Code:
# nano /etc/init.d/php-fastcgi

Lalu isikan kode berikut

Code:
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-fastcgi
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop php-cgi in external FASTCGI mode
# Description:       Start and stop php-cgi in external FASTCGI mode
### END INIT INFO

# Author: Kurt Zankl

# Do NOT "set -e"

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="php-cgi in external FASTCGI mode"
NAME=php-fastcgi
DAEMON=/usr/bin/php-cgi
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
PHP_CONFIG_FILE=/etc/php5/cgi/php.ini

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

# If the daemon is not enabled, give the user a warning and then exit,
# unless we are stopping the daemon
if [ "$START" != "yes" -a "$1" != "stop" ]; then
log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes"
exit 0
fi

# Process configuration
export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT -c $PHP_CONFIG_FILE"

do_start()
{
# Return
#   0 if daemon has been started
#   1 if daemon was already running
#   2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON \
--background --make-pidfile --chuid $EXEC_AS_USER --startas $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}

do_stop()
{
# Return
#   0 if daemon has been stopped
#   1 if daemon was already stopped
#   2 if daemon could not be stopped
#   other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE > /dev/null # --name $DAEMON
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently.  A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac

Save!

Buat agar dapat di eksekusi

Code:
# chmod +x /etc/init.d/php-fastcgi

11. Buat file konfigurasi spawn-fcgi

Code:
# nano /etc/default/php-fastcgi

Lalu isikan kode berikut

Code:
START=yes

# Which user runs PHP? (default: www-data)

EXEC_AS_USER=www-data

# Host and TCP port for FASTCGI-Listener (default: localhost:9000)

FCGI_HOST=localhost
FCGI_PORT=9000

# Environment variables, which are processed by PHP

PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000

12. Atur agar spawn-fcgi start saat boot

Code:
# update-rc.d php-fastcgi defaults
# /etc/init.d/php-fastcgi restart


14. sekarang kita konfigurasi default virtual host nya

Code:
# nano /etc/nginx/sites-available/default

lalu isikan kode berikut

Code:
server {
        listen          80;
        server_name     localhost;

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

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

(NOTE: Yang harus di sesuaikan adalah baris "fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;". Sesuaikan dng lokasi document root server kamu. Contoh di atas adalah lokasi defaultnya saja. Juga baris "server_name _;" di sesuaikan dng nama server kamu, misal hacker-newbie.org, dll)

15. edit file Nginx.conf

Code:
# nano /etc/nginx/nginx.conf

Cari baris berikut dan udah angkanya

worker_processes 5;
keepalive_timeout 2;


16. untuk memulai PHP FastCGI daemon pada localhost port 9000, ketik command berikut

Code:
# /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Spoiler: hide
[Image: settlighttpd.png]

Nah, agar command tsb langsung aktif saat boot, edit file /etc/rc.local, lalu tambahkan kode berikut sebelum tulisan EXIT:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Save!

17. Restart Nginx

Code:
# /etc/init.d/nginx restart

18. Coba tes menggunakan coding PHP sederhana

Code:
# nano /var/www/nginx-default/info.php

PHP Code:
<? phpinfo(); ?>

19. Buka browser, dan ketik http://localhost/info.php... liat hasilnya.

Spoiler: hide
[Image: phpinfo.png]


20. Untuk memulai Nginx saat boot, ketik command berikut,

Code:
# update-rc.d nginx defaults

********************************************************************************​***********************************************



fiuhhh... selesai bkin Web server sendiri... semoga bermanfaat :)

Comments

Popular posts from this blog

DOXING, TEKNIK LAIN UNTUK HACKING PASSWORD

Doxing adalah proses mendapatkan informasi tentang seseorang dengan menggunakan sumber-sumber di Internet menggunakan skill lainya. Doxing berasal dari kata "Dokumen" yang di singkat yakni pengambilan "Dokumen" pada seseorang atau perusahaan. Ada beberapa cara untuk mendapatkan informasi pribadi secara online. Metode yang paling populer adalah melalui website yang disebut Pipl . Pipl memungkinkan Anda untuk mencari nama lengkap, email, nama pengguna dan bahkan nomor telepon sekalipun. Sehingga membuat Pipl menjadi alat yang sangat berguna untuk hacker. Sumber lain hacker dapat digunakan adalah melalui situs jejaring sosial Facebook . Tetapi kebanyakan hacker tidak menggunakan Facebook untuk pencarian nama, mereka hanya menggunakannya untuk pencarian alamat email-nya, karena nama sering di singkat atau di palsukan. Tujuan utama Doxing adalah untuk menemukan alamat email target. Sebab, Email pada dasarnya berfungsi sebagai paspor saat mendaftar di s

cara menginstall Video Controller (VGA Compatible) tanpa harus beli baru

cara menginstall Video Controller (VGA Compatible) tanpa harus beli baru ... gw teringat pas gw lagi instal ulang laptop,, pas abis instal gw check semua device2 yg ada...!! ternyata "Video Controller (VGA Compatible) n' Video Controller" gw itu g ada graphics controller na... gara2 saking kesel na mau main game online dan g ada VGA na,, akhir na gw browsing ja buat DL device/driver na,, akhir na gw nemuin juga deh tuh yg buat Win XP...!! gw DL device na,, dan ternyata g harus beli baru...!! ok mau tau kan gmn cara na...?? langsung ja deh....^^ 1. kita browsing dlo lewat google dengan kata kunci: free download VGA compatible for Windows XP/Vista/windows 7 <--- pilih deh tuh salah 1 windows yg dpake ma kalian... nah klo dah ketemu cari yg mau kalian DL,, klo gw sih langsung ambil dr browser download yg dr intel yg muncul lewat google... XP link na: DOWNLOAD CENTER INTEL 2. klo dah ketemu,, kita ambil dan download yg memang untuk windows yg