Thursday, September 18, 2008

ติดตั้ง IIS7/PHP5/MySQL บน Vista

How to install IIS7, PHP5 and MySQL in Vista.

# IIS 7


1. Start->Control Panel->Programs->Turn Windows features on or off
หรือไม่ก็ Comtrol Panle -> Programs -> Uninstall a program

ทางด้านซ้ายมือจะพบ Turn Windows features on or off

2. จะได้ Component ของระบบมองหา Internet Information Services และเลือกมันซะ




3. ที่ "Internet Information Services"->"Web Management Tools"
เลือก "ISAPI Extensions" ด้วยเตรียมไว้สำหรับติดตั้ง PHP เมื่อเลือกครบแล้วก็ OK





4. ตรวจสอบผลการติดตั้ง IIS 7 โดย http://localhost
เป็นอันเสร็จการติดตั้ง IIS 7 บน vista แหละ

# PHP
5

1. ใช้ vista แบบใหนก็โหลดแบบนั้นอันเนี๋ยใช้ 32 บิตก็โหลดแบบปกติแต่ถ้าเป็น 64 บิตก็ต้องโหลด phpx64 นะครับ
64 bit http://www.fusionxlan.com/PHPx64.php
32 bit http://www.php.net/downloads.php

เราจะใช้ zip ห้ามโหลดแบบ installer มา

2. upzip ไปไว้ที่ C:\PHP5 จะพบไฟล์ php.ini-dist หรือ php.ini-recommended

3. php.ini-dist หรือ php.ini-recommended ให้เราคัดลอกเป็นไฟล์ใหม่แล้วใช้ชื่อเป็น php.ini คัดลอกไปไว้ที่ "C:\WINDOWS\php.ini"


4. เปิดไฟล์ "C:\WINDOWS\php.ini" ด้วย notepad ค้นหา ;extension=php_mysql.dll ทำการลบเครื่องมหายเซมิโคลอน ( ; ) หน้าบรรทัดเพื่อเป็นการเอาคอมเม้นออก
extension อื่นๆ ก็แล้วแต่เราจะเลือกใช้แต่ถ้า MySQL ต้องเปิดใช้ตัวนี้ด้วย แต่ไม่ควรเปิดหมดนะ

5. ทำการคัดลอก c:\php5\ext\php_mysql.dll ไปวางไว้ที่ C:\Windows\System32\php_mysql.dll

- เราไม่ต้องคัดลอก
php_mysql.dll ไปวางที่ Windows\System32 ได้เหมือนกัน แต่เราต้องตั้งค่า extension_dir ใน php.ini ให้มาที่ c:\php5\ext แค่นี้อ่ะ แต่คิดว่าเราทำการแก้ค่า extension_dir มาชี้ดีกว่านะ

- ที่สำคัญอีกอย่างสำหรับการจะใช้ php ร่วมกับ mysql ที่ต้องทำ คือ คัดลอกไฟล์ libmysql.dll และ php5ts.dll ซึ่งจะอยู่ใน c:\php5 ไปวางที่ system32 ด้วย หรือถ้าไม่ทำงี้ ให้เราตั้ง path system มาที่ c:\php5 ด้วย ก็น่าจะแทนกันได้

- ยังไม่จบให้เราปรับแก้ session.save_path ซึ่ง php.ini จะคอมเม้นไว้อยู่ให้เราไปเอาคอมเม้นออกและทำการตั้งให้ path ของ session แล้วแต่เราจะตั้งไว้พาธใหนก็น่าจะได้

- เพิ่มสิทธิ์การเข้าถึงให้ iusr ของ php.ini ด้วย ข้อสังเกตคือ ถ้าเราทำการปรับแก้ php.ini แล้ว iisreset แล้วค่าที่จะแสดง phpinfo(); ไม่เปลี่ยนแสดงว่า มีปัญหาเรื่อง permission การเข้าถึง php.ini

6. ทำการคอนฟิก IIS ให้รันสคริป php ได้โดย start->run พิมพ์ InetMgr.exe (IIS Manager).



7. ภายใน IIS Manager คลิกที่ "Handler Mappings"



8. ทางด้านขวาของหน้าต่าง คลิกที่ "Add Script Map..." ที่ไฮไลสีเหลืองในภาพด้านบน



9. ในหน้าต่าง Add Script Map จะมีช่องให้กรอก 3 ช่อง ก็ให้ใส่ประมาณนี้นะ บางครั้ง phpisapi.dll อาจเป็น php5isapi.dll ก็ได้ดูไฟล์ใน path นั้นให้ดีแค่นั้นเอง

Request path: *.php
Executable: C:\PHP5\phpisapi.dll
Name: PHP




10. จะมี popup Add Script Map ขึ้นมาถามเกี่ยวกับ ISAPI ให้เรา Yes ซะ



11. ***แต่ถ้า Yes แล้วขึ้น Error ประมาณมีปัญหากับ ISAPI Module ให้เรากับไปดูการติดตั้ง IIS7 ขั้นตอนที่ 3
"Internet Information Services"->"Web Management Tools"
เลือก "ISAPI Extensions"

เสร็จแล้วก็ OK จะได้ IIS7 ที่รันกับ PHP ได้

# MySQL

1. ดาวน์โหลด MySQL ในเว็บเอาแบบ zip ไม่เอา installer
แตกไฟล์ไปที่ C:\MySQL\

2. เข้าไปที่ C:\MySQL\MySQL Server 5.1\bin

renamed the file libmySQL.dll to libmySQL64.dll and copied the 32bit file into the directory instead. Then i ran the configuration wizard, and this time it worked.

After the configuration process was completed, delete the 32bit file from the directory and rename the file libmySQL64.dll back to libmySQL.dll.

That's it, you are all set with IIS 7+MySQL+PHP.

3. create a file named test.php () inside C:\inetpub\wwwroot\test.php รันทดสอบ php กับ iis7 อีกครั้ง

# ปัญหาอย่างอื่นที่เค้าพบและวิธีแก้ไข

A fix for Sessions Issue: Vista seems to have a permission problem with php's session.

Symptom:
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line

Solution:
In order to solve the issue, inside CMD as administrator (Right click on CMD.exe and "Run as administrator"). write these two commands:

icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)

icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

Note
  • การดูค่าคอนฟิก หรือ เวอร์ชั่น เราสามารถดูได้จาก phpinfo();

More

References :

No comments:

Post a Comment

Popular Posts