AppServ 8.6 กับ php 5.2.x

หลังจากที่ลง AppServ 8.6 ไปเรียบร้อยแล้ว แต่ดันมีงานที่ต้องไปยุ่งกับ php 5.2.x จะลง appserv ตัวเก่าก็ลงซ้อนกันไม่ได้ เลยต้องไปหา apache เก่าๆ เพื่อให้มันรัน php 5.2 ได้

Apache 2.2 VC10 Windows 64 bits

Apache 2.2 VC10 Windows 32 bits

ส่วน php 5.2 ก็ไปหามาจาก PHP Windows Archives
php-5.2.17-Win32-VC6-x86.zip
  1. แตกไฟล์ apache กับ php ออกมา เอาไปไว้ในที่ชอบๆ เช่น D: หรืออะไรก็ได้
  2. เข้าไปแก้ไฟล์ httpd.conf อยู่ใน conf/
  3. ตั้งค่า ในไฟล์ httpd.conf
    ServerRoot เป็นที่อยู่ของ apache เช่น ServerRoot "D:/Apache2"
    Listen ตั้งค่า port ของ apache ในเมื่อ appserv มันใช้ 80 ไปแล้วเราก็จะใช้ตัวอื่นแทน เช่น Listen 8080
    DocumentRoot ที่อยู่ของ www หรือ htdocs ที่เราจะเขียนโค้ดนั่นล่ะ เช่น DocumentRoot "D:/www"
    <Directory> tag ที่คุม DocumentRoot ก็จะใส่เป็น <Directory "D:/www">
    DirectoryIndex เพิ่ม index.php จะได้หน้าตาเป็น
    <IfModule dir_module>
        DirectoryIndex index.html index.htm index.php
    </IfModule>
  4. เพิ่ม LoadModule php5_module เช่น LoadModule php5_module "D:/php52/php5apache2_2.dll"
  5. เพิ่ม PHPIniDir เช่น PHPIniDir "D:/php5217/"
  6. แล้วก็
    <IfModule php5_module>
        AddType application/x-httpd-php .php
    </IfModule>
  7. จบการตั้งค่าไฟล์ httpd.conf ในตอนนี้สามารถทดสอบว่า httpd.conf เขียนถูกหรือไม่ได้โดยการเปิด cmd ขึ้นมา cd เข้าไปใน apache > bin แล้วสั่ง httpd.exe -t ถ้าขึ้น Syntax OK แสดงว่าไม่มีปัญหาอะไร
  8. จากนั้นมาตั้งค่าไฟล์ php.ini ที่สำคัญๆ อย่างเช่น
    short_open_tag = On
    register_globals = On
    extension_dir = "D:/php52/ext"
    date.timezone = "Asia/Bangkok"
    เพราะโค้ดเก่าๆ มักจะเปิด globals แน่นอน
  9. ในโฟเดอร์ php ที่เราแตกออกมาจะมีไฟล์ libmysql.dll ให้ copy ไปไว้ใน apache > bin ให้เรียบร้อย จะได้ไม่มีปัญหาเวลาเขียน connect กับ mysql
  10. ถ้าจะลองทดสอบรัน apache ก็เปิด cmd แล้วไปที่ apache > bin แล้วสั่ง httpd.exe เพื่อดูว่า apache เราทำงานได้โอเคหรือเปล่า
  11. ถ้าจะให้มันรันเป็น Windows Service ใน apache > bin ให้สั่ง httpd.exe -k install ผ่าน cmd
  12. ถ้าเปิดเบราเซอร์แล้วรัน localhost:8080 ยังเปิดไม่ได้ลองไปเช็ค service จากใน Control Panel > Administrative Tools > Services ลองดูว่า Apache2.2 มัน start แล้วรึยัง

Comments