การทำ Web Server

1.) ตรวจสอบว่ามี โปรแกรม Apache ติดตั้งอยู่หรือไม่ version ไหน
[root@test root]# rpm -q httpd
httpd-2.0.40-8

2.) File Web ต่าง ๆ ปกติ จะอยู่ที่ /var/www/html

3.) ปรับแต่ง file ที่ /etc/httpd/conf

ServerName www.company.com:80
DocumentRoot "/var/www/htm"


[root@server1 root]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]

[root@server1 root]#

เท่านี้ก็สามารถทำ web server ได้แล้ว



4.) การปรับแต่งให้ User มีเวปเป็นของตนเอง เช่น http://www.company.com/~admin

ที่ /etc/httpd/conf เอาเครื่องหมาย # หน้า UserDir public_html ออก และใส่ที่ UserDir disable แทน

<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
# UserDir disable
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#
UserDir public_html
#
</IfModule>



กำหนดให้ User admin ทำเวปได้
[root]# chmod -R 755 /home/admin

แล้วให้ User สร้าง folder ชื่อ public_html เพื่อเก็บ file web ไว้ในนั้น



5.) ให้ถาม User & Password ก่อนเข้าชมเวป

ที่ /etc/httpd/conf

ภายใน <Directory "/var/www/html"> แก้ดังนี้
Options None
AllowOverride All


และ สร้าง file ไว้ภายใน /var/www/html

[root@server1 html]# htpasswd -c .htpasswd staff
New password:
Re-type new password:
Adding password for user staff

[root@server1 html]#

[root@server1 html]# vi .htaccess

AuthName "welcome www.company.com"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
Require user staff


[root@server1 html]#

หากใส่ User แล้วเข้าไม่ได้

[root@server1 html]# chmod +r .htpasswd




ุ6.) มีหลาย Domain ให้ชี้มา IP เครื่องเดียว (Virtual Host )

เช่น จด Domain Name มา 2 ชื่อ คือ
company.com
siam.com
แต่มีเครื่องเดียว, IP เดียว


1.) สร้างที่เก็บเวปไว้คนล่ะที่

[root@server1 root]# mkdir /var/www/html/company.com
[root@server1 root]# mkdir /var/www/html/siam.com

แล้วแยกเก็บข้อมูลของแต่ละเวปและ DNS ต้องเพิ่ม zone siam.com ด้วย


ที่ /etc/httpd/conf/httpd.conf ปรับแต่งตามนี้

NameVirtualHost 192.168.1.2

<VirtualHost 192.168.1.2 >
ServerAdmin webmaster@company.com
DocumentRoot /var/www/html/company.com
ServerName www.company.com
ErrorLog /var/log/httpd/company.com-error_log
CustomLog /var/log/httpd/company.com-access_log common
</VirtualHost>

<VirtualHost 192.168.1.2 >
ServerAdmin webmaster@siam.com
DocumentRoot /var/www/html/siam.com
ServerName www.siam.com
ErrorLog /var/log/httpd/siam.com-error_log
CustomLog /var/log/httpd/siam.com-access_log common
</VirtualHost>


[root@server1 root]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]

[root@server1 root]#

 



7.) อนุญาตบาง ip เข้าดูเวปได้

กรณีที่ 1 ห้ามทุก ip เข้าดูได้ ยกเว้น 192.168.1.222

ที่ /etc/httpd/conf/httpd.conf ปรับแต่งตามนี้

<Directory "/var/www/html">


Order allow,deny
Allow from 192.168.1.222

</Directory>



กรณีที่ 2 อนุญาตทุก ip เข้าดูได้ ยกเว้น 192.168.1.222

ที่ /etc/httpd/conf/httpd.conf ปรับแต่งตามนี้

<Directory "/var/www/html">

Order deny,allow
Deny from 192.168.1.222

</Directory>



*** ในกรณีที่ ip ที่ไม่อนุญาต เข้ามาจะเด้งไปที่หน้า /error/noindex.html
สามารถปรับเปลี่ยน หน้าตาหรือข้อความได้ตามชอบใจ

<LocationMatch "^/$>
Options -Indexes
ErrorDocument 403 /error/noindex.html
</LocationMatch>




แก้ไขเสร็จแล้ว ก็ อย่าลืม...

[root@server1 root]# service httpd restart
Stopping httpd: [OK]
Starting httpd: [ OK ]

[root@server1 root]#

 



8.) แสดงรายชื่อ file หรือ ไม่ แสดง ถ้าไม่ที fine index.html


ที่ /etc/httpd/conf/httpd.conf ปรับแต่งตามนี้

<Directory "/var/www/html">


Options None <--- ไม่แสดง file
Options All <--- แสดง file

</Directory>


หรือถ้่าเป็น xampp ในส่วน Options ให้เอา Indexes ออก

แก้ไขเสร็จแล้ว ก็ อย่าลืม...

[root@server1 root]# service httpd restart
Stopping httpd: [OK]
Starting httpd: [ OK ]

[root@server1 root]#



9.) ไม่แสดงภาษาไทย ต้องเปลี่ยนทุกครั้ง


ที่ /etc/httpd/conf/httpd.conf ปรับแต่งตามนี้

ต้อง Remark บรรทัด

# AddDefaultCharset ISO-8859-1

แก้ไขเสร็จแล้ว ก็ อย่าลืม...

[root@server1 root]# service httpd restart
Stopping httpd: [OK]
Starting httpd: [ OK ]

[root@server1 root]#