การตั้งค่าให้ apache และ IIS ทำงาน port 80 ร่วมกัน

การใช้งาน web service ไม่ว่าจะเป็น apache หรือ iis แต่ละตัวมีความสามารถที่จะทำเป็น virtualhost ในรูปแบบต่าง ๆ เช่น

  • virtualhost by port เช่น 80,81 ,82
  • virtualhost by name เช่น www,www2,www3
  • virtualhost by ip เช่น 192.168.1.1 , 192.168.1.2

ถ้าใครพยายามที่จะรัน apache พร้อมรัน IIS ด้วยนั้นจะเกิดปัญหา ตัวที่รันทีหลัง จะไม่สามารถทำงานได้ ดัง Event ในรูปนี้

iisapache01iisapache02

แต่ก็มีปัญหาบางประการเช่นความต้องการใช้ php แต่เครื่องแม่ข่ายเป็น iis ถึงแม้จะติดตั้ง extentions ของ php เข้าไปก็ตาม ยังสู้ใช้งาน php ผ่าน apache ไม่ได้ จึงมีคำถามว่า จะสามารถใช้ apache ร่วมกับ IIS โดยใช้พอร์ต 80 ร่วมกันได้หรือไม่  คำตอบคือ ได้ แต่ต้องมีขั้นตอนปรับแต่งเล็กน้อยครับ

iisapacheความต้องการเบื้องต้นของระบบ

  • ระบบปฏิบัติการวินโดว์ 2003
  • 1 LAN Card (2 IP Address)
  • apache (appserv)
  • ไฟล์ SUPPORT.CAB ในแผ่นวินโดว์ 2003 (ดาวน์โหลดไฟล์ได้จากที่นี่ [download id=”3″])

เมื่อทุกอย่างพร้อมแล้วก็มาเริ่มกันเลยครับ

  • ถ้ามีการ์ดแลน 2 ใบก็ง่ายเลยครับ แต่ถ้าใครมีการ์ดใบเดียว ก็ให้ทำการเพิ่มไอพีให้กับแลนการ์ด ให้สามารถใช้งานได้พร้อมกัน 2 ไอพี (ดูตัวอย่างจากรูปครับ คลิ๊กเพื่อดูขนาดใหญ่)

iisapache00

  • ให้ทำการตั้งค่าของ IIS โดย ซึ่งถ้าเป็นเครื่องที่ยังไม่ได้ทำงานอะไรก็จะมี Default อยู่แล้ว และมันก็รันบนพอร์ต 80 ครับ โดยเราต้องทำการเลือกว่า จะให้เว็บที่รันโดย IIS นี้ ใช้งานไอพีอะไร สามารถเลือกได้ตามรูปครับ

iisapache03iisapache05iisapache04

  • ต่อไปให้ทำการปรับแต่งค่าของ apache โดยค้นหาคำว่า Listen โดยปกติแล้วก็จะรันบนพอร์ต 80 เช่นเดียวกัน

iisapache06

  • คอนเซ็ปของเราคือ (ไอพีไม่เหมือนกับรูปนะครับ เพราะรูปเอามาจากที่ติดตั้งจริง)
    • IIS ให้รันที่ไอพี 192.168.1.1
    • apache ให้รันที่ไอพี 192.168.1.2
  • จากนั้นให้ดาวน์โหลดไฟล์ [download id=”3″] แล้วแตกไฟล์ไว้ที่ไดร์ฟ C:/  (จะเอาไว้ที่ไหนก็ได้ครับ แต่ต้องตามไปให้ถูกตำแหน่งนะครับ)

iisapache091

  • ต่อไปให้ทำตามขั้นตอนดังนี้
    • เปิดคอมมานด์พร็อม ขึ้นมาครับ โดยไปที่    run–> cmd
    • cd c:support
    • httpcfg set iplisten -i 192.168.1.1     ( โดยไอพีนี้คือไอพีที่รันโดย IIS)
    • net stop http /y
    • net start w3svc

iisapache07

  • แล้วทดสอบการใช้งานดูครับ จะพบว่าสามารถใช้งานได้ทั้ง IIS และ Apache แล้วครับผม
    • ทดสอบโดยเปิดเบราเซอร์แล้วเรียก
      • http://192.168.1.1      (IIS)   ** ขออภัย ไม่ได้เอาภาพมาให้ดูครับ
      • http://192.168.1.2     (Apache)

iisapache08




Warning: session_start() [function.session-start]:

Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at C:AppServwwwaaaindex.php:2) in C:AppServwwwaaaindex.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at C:AppServwwwaaaindex.php:2)
in C:AppServwwwaaaindex.php on line 2

upload ขึ้น server แล้วมีปัญหาดังนี้

เพราะบนเครื่อง localhost path เก็บมันจะเป็น

session.save_path = “C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp”

วิธีแก้ไขให้ไปแก้ไข file php.ini ของตัว server ด้วย

session.save_path = “C:/Temp”      *****หรือ temp directory ที่มีอยู่จริง เช่น C:WINDOWSTemp

หลังจากนั้นให้ restart apache ก็จะสามารถใช้งานได้ตามปกติ




เทียบเวลา ให้ตรงตามมาตรฐาน

เดี๋ยวนี้ เมื่อเราต้องการทราบเวลา ต้องล้วงเอาโทรศัพท์ขึ้นมาดู หรือถ้าเป็นช่วงทำงาน ก็ดูที่คอมพิวเตอร์ ซึ่งส่วนมากแล้ว ก็คงจะดูจากที่คอมพิวเตอร์ซะส่วนใหญ่ เพราะไม่ค่อยได้ลุกไปไหน นั่งแต่หน้าคอมฯ นี่แหละ

ดังนั้น ทุกอย่างจึงถูกผูกพันกับเวลาในคอมพิวเตอร์ทั้งหมด ไม่ว่าจะเป็นตารางประชุมใน outlook หรือแม้แต่การแจ้งเตือนต่าง ๆ จะว่าไปแล้ว นาฬิการ้อยสองร้อยบาทแขวนผนัง มันก็มีโอกาสคลาดเคลื่อนได้ ไม่ว่าจะเป็นเพราะเจ้าตัวนาฬิกเองหรือเพราะพลังงานที่จ่ายให้กับมัน แต่คอมพิวเตอร์ละ สำหรับเครื่องลูกข่ายคงไม่มีปัญหามากนัก แต่ถ้าเป็นเครื่องแม่ข่ายละก็ ต้องเทียบเวลาให้ตรงตามมาตรฐาน มีข้อผิดพลาดที่เล็กน้อยมาก ส่วนหนึ่งก็มาจาก พรบ.คอมฯ ที่บังคับให้สามารถตรวจสอบย้อนหลังได้ ดังนั้น เวลาของเครื่องแม่ข่ายต่าง ๆ ต้องตรงกัน และเช่นเดียวกัน เครื่องลูกข่ายก็สมควรที่จะมีเวลาที่ตรงกันด้วย การตรวจสอบถึงจะได้รวดเร็วและมีประสิทธิภาพมากที่สุด

เรามาเริ่มต้นกันเลยดีกว่า

  • ระบบปฏิบัติการ Windows XP , 2003 , vista , windows 7 (เฉพาะเครื่องที่ไม่ได้ Join Domain) ให้คลิ๊กที่ Start –> Settings –> Control Panel

time01

  • ดับเบิลคลิ๊กที่ Date and Time
  • ที่หน้าต่าง Date and Time Properties ให้คลิ๊กเลือกแท็ป Internet Time

time2

สำนักวิทยบริการและเทคโนโลยีสารสนเทศ ได้ทำการติดตั้งเครื่องคอมพิวเตอร์แม่ข่าย สำหรับทำหน้าที่ time server โดยเฉพาะ เพื่อให้เกิดความแม่นยำในการเทียบเวลาให้ตรงตามมาตรฐานสากล โดยตั้งชื่อว่า

time.rmutl.ac.th

ดังนั้นท่านจึงสามารถกรอกชื่อ time.rmutl.ac.th เข้าไปยังช่อง internet time ได้ทันที เมื่อเลือก Server เป็นที่เรียบร้อยแล้ว ให้กดที่ Update Now เพื่อทำการทดสอบ ถ้าใช้งานได้ ต้องขึ้นคำว่า The time has been sussessfully …..
สำหรับ Server อื่น ๆ ที่ท่านสามารถเลือกใช้งาน (ในประเทศไทย) ได้ดังนี้
o กรมอุทกศาสตร์ กองทัพเรือ
time.navy.mi.th
time2.navy.mi.th
time3.navy.mi.th
o ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ
clock.nectec.or.th
clock2.nectec.or.th
o ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย
clock.thaicert.nectec.or.th

คราวนี้ ใครจะมาว่าท่าน เป็นคนไม่ตรงเวลา ไม่ได้แล้วครับ




rpmdb: Lock table is out of available locker entries

linuxเกิดอาการแปลกประหลาดของเซิร์ฟเวอร์ (CentOS 5.2) เมื่อสั่ง yum หรือ rpm จะเกิดเออเรอร์แจ้งว่า

[root@www ~]# rpm -ivh php-mssql-5.1.6-15.el5.centos.1.x86_64.rpm
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: 7bd
error: db4 error(22) from db->close: Invalid argument
error: cannot open Packages index using db3 – Cannot allocate memory (12)
error: cannot open Packages database in /var/lib/rpm
warning: php-mssql-5.1.6-15.el5.centos.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: 7be
error: db4 error(22) from db->close: Invalid argument
error: cannot open Packages database in /var/lib/rpm

ซึ่งเป็นอาการค้างของดาต้าเบสของ rpm เอง ซึ่งจะมีลักษณะดังนี้ __db.00*

[root@www ~]# cd /var/lib/rpm/
[root@www rpm]# ls
Basenames     __db.001  __db.003  Filemd5s  Installtid  Packages     Provideversion  Requirename     Sha1header  Triggername
Conflictname  __db.002  Dirnames  Group     Name        Providename  Pubkeys         Requireversion  Sigmd5

วิธีแก้ไขก็สามารถทำได้ง่าย ๆ คือ

rm /var/lib/rpm/__db.00*
rpm –rebuilddb

เพียงแค่นี้ก็สามารถเรียกใช้งาน rpm และ yum ได้ตามปกติ

[root@www ~]# yum -y install php-mssql.x86_64
Loading “installonlyn” plugin
Loading “fastestmirror” plugin
Loading mirror speeds from cached hostfile
* kbs-CentOS-Extras: centos.karan.org
* base: centosb2.centos.org
* updates: centosq2.centos.org
* addons: centosk2.centos.org
* kbs-CentOS-Testing: centos.karan.org
* extras: centosq2.centos.org
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package php-mssql.x86_64 0:5.1.6-15.el5.centos.1 set to be updated
–> Processing Dependency: libsybdb.so.5()(64bit) for package: php-mssql
–> Running transaction check
—> Package freetds.x86_64 0:0.64-11.el5.centos set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
php-mssql               x86_64     5.1.6-15.el5.centos.1  extras             24 k
Installing for dependencies:
freetds                 x86_64     0.64-11.el5.centos  extras            866 k

Transaction Summary
=============================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 890 k
Downloading Packages:
(1/2): freetds-0.64-11.el 100% |=========================| 866 kB    00:13
(2/2): php-mssql-5.1.6-15 100% |=========================|  24 kB    00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: freetds                      ######################### [1/2]
Installing: php-mssql                    ######################### [2/2]

Installed: php-mssql.x86_64 0:5.1.6-15.el5.centos.1
Dependency Installed: freetds.x86_64 0:0.64-11.el5.centos
Complete!

VN:F [1.1.2_437]