Setup web server pada CentOS


Akhirnya aku ketemu lagi dengan CentOS. Kali ini tugas yang kuemban adalah mencoba script PHP di Server CentOS tersebut. Hal yang tidak kuduga adalah ternyata HTTP server , Mysql-server, dan PHP belum terinstal di server tersebut. Ini adalah pekerjaan tambahan yang harus dilalui.

CentOS ketat pada Firewallnya. Tidak seperti Ubuntu, install HTTP Server di Centos perlu pemahaman iptables, jika ingin mengaksesnya dari remote.

Install HTTPD, Mysql-server, dan PHP

Instalasi HTTPD, Mysql-server, dan PHP dapat dilakukan dalam satu perintah sebagai berikut:

[root@gedhang-ghoreng ~]#yum install httpd mysql-server php-mysql

mysql-server harus di set password nya saat pertama kali pemakaian:

[root@gedhang-ghoreng ~]#/usr/bin/mysqladmin -u root password ‘gedhang-ghoreng’

dengan gedhang-ghoreng adalah passwordnya.

Menjalankan HTTPD

Menjalankan HTTPD dilakukan dengan perintah sbb:

[root@gedhang-ghoreng ~]#service httpd start

Cara memeriksa apakah Web Server ini sudah jalan apa tidak ada beberapa macam, bisa dengan perintah ps, netstat, atau dari browser.

Ps adalah aplikasi untuk melaporkan status proses (ps : process status). Aku biasanya menggunakan parameter ax untuk menampilkan proses yang dijalankan di server dengan filter grep.

[root@gedhang-ghoreng ~]#ps -ax|grep httpd

jika perintah di atas menghasilkan output berupa daftar aplikasi yang jalan maka, itulah aplikasi yang jalan di server. Contoh :

6235 ? Ss 0:00 /usr/sbin/httpd

……

Namun tampilan output berikut menandakan aplikasi tidak jalan:

Warning: bad ps syntax, perhaps a bogus ‘-‘? See http://procps.sf.net/faq.html

14284 pts/3 S+ 0:00 grep –color=auto httpd

sedangkan netstat dipergunakan untuk mencetak koneksi jaringan, tabel routing, statistik interface, koneksi masquerade dan keanggotaan multicast di layar.

[root@gedhang-ghoreng ~]#netstat -pl

akan menampilkan aplikasi yang jalan dan port/service yang di listen nya

tcp 0 0 *:mysql *:* LISTEN 5993/mysqld

tcp 0 0 *:ssh *:* LISTEN 22697/sshd

tcp 0 0 *:http *:* LISTEN 6235/httpd

tcp 0 0 *:ssh *:* LISTEN 22697/sshd

tcp 0 0 *:https *:* LISTEN 6235/httpd

……

Jadi baik netstat maupun ps menandakan bahwa aplikasi httpd jalan.

Ternyata web tidak dapat diakses oleh browser dari komputer klien.

 

Firewall

Secara default CentOS tidak memperbolehkan akses ke server dari klien (CMIIW). Itulah sebabnya aplikasi web tidak dapat di akses dari browser klien.

[root@gedhang-ghoreng ~]# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

RH-Firewall-1-INPUT all — anywhere anywhere

Chain FORWARD (policy ACCEPT)

target prot opt source destination

RH-Firewall-1-INPUT all — anywhere anywhere

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)

target prot opt source destination

ACCEPT all — anywhere anywhere

ACCEPT icmp — anywhere anywhere icmp any

ACCEPT esp — anywhere anywhere

ACCEPT ah — anywhere anywhere

ACCEPT udp — anywhere 224.0.0.251 udp dpt:mdns

ACCEPT udp — anywhere anywhere udp dpt:ipp

ACCEPT tcp — anywhere anywhere tcp dpt:ipp

ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED

ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh

REJECT all — anywhere anywhere reject-with icmp-host-prohibited

untuk itu perlu disisipkan rule agar server ini menerima request dari port 80, 443. rule ini harus diletakkan sebelum baris

RH-Firewall-1-INPUT all — anywhere anywhere

jadi menggunakan parameter I (Insert) , bukan A (Append), karena Append akan menambahkan di belakang baris terakhir.

[root@gedhang-ghoreng ~]# iptables -I INPUT -p tcp -m tcp –dport 443 -j ACCEPT

[root@gedhang-ghoreng ~]# iptables -I INPUT -p tcp -m tcp –dport 80 -j ACCEPT

[root@gedhang-ghoreng ~]# iptables -I INPUT -p tcp -m tcp –dport domain -j ACCEPT

[root@gedhang-ghoreng ~]# iptables -I INPUT -p tcp –dport 8080 -j ACCEPT

[root@gedhang-ghoreng ~]# iptables -I INPUT -p udp -m udp –dport domain -j ACCEPT

sehingga hasil akhirnya akan menjadi sbb:

[root@gedhang-ghoreng ~]# i iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT tcp — anywhere anywhere tcp dpt:https

ACCEPT tcp — anywhere anywhere tcp dpt:http

ACCEPT tcp — anywhere anywhere tcp dpt:domain

ACCEPT tcp — anywhere anywhere tcp dpt:webcache

ACCEPT udp — anywhere anywhere udp dpt:domain

RH-Firewall-1-INPUT all — anywhere anywhere

Chain FORWARD (policy ACCEPT)

target prot opt source destination

RH-Firewall-1-INPUT all — anywhere anywhere

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)

target prot opt source destination

ACCEPT all — anywhere anywhere

ACCEPT icmp — anywhere anywhere icmp any

ACCEPT esp — anywhere anywhere

ACCEPT ah — anywhere anywhere

ACCEPT udp — anywhere 224.0.0.251 udp dpt:mdns

ACCEPT udp — anywhere anywhere udp dpt:ipp

ACCEPT tcp — anywhere anywhere tcp dpt:ipp

ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED

ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh

REJECT all — anywhere anywhere reject-with icmp-host-prohibited

[root@gedhang-ghoreng ~]#

Kini web server sudah bisa diakses oleh klien.

About abunajiyah
A Programmer

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: