1. เตรียมซอฟท์แวร์ที่ต้องเข้าใจความต้องการของแต่ละรุ่น
- AMD 2.11 GHz Ram 1 GB HD 60 GB เคยเป็นเครื่องที่ดี เมื่อหลายปีก่อน
- Apache 2.0.52 ซึ่งผมลงชุด WAMP จาก thaiabc.com
- PHP 5.2.5 มี php_mssql.dll ในห้อง ext แล้ว แต่ขาด ntwdblib.dll ที่ดาวน์โหลดไว้ใน windows/system32
- .NET 2.0 sp2 เพราะ 4.5 ต้อง vista ขึ้นไป ส่วน 4.0 ลงแล้วแต่ SQL Server 2005 เรียกหา 2.0 ขึ้นไป
- SQL Server 2005 น่าจะเหมาะกับเครื่องที่ spec. ต่ำ เพราะ 2012 ลงบน XP Pro ไม่ได้
- SQL Server 2005 Management Studio Express Edition
สรุป software ที่เข้ากันได้ คือ PHP5.2.12 + MSSQL 2008 + IIS on Win7 + .NET 4.0
|
|
2. ติดตั้ง .NET Framework 2.0 sp2
- ดอทเน็ตเฟรมเวิร์ค คือ ซอฟท์แวร์ที่บริษัทไมโครซอฟท์สร้างขึ้นสำหรับพัฒนาซอฟต์แวร์ให้นำไปพัฒนาซอฟท์แวร์ต่าง ๆ โดยง่าย และใช้งานบนระบบปฏิบัติการวินโดว์ รองรับภาษาโปรแกรมกว่า 40 ภาษา เป็นซอฟท์แวร์ที่ดาวน์โหลดได้ฟรี ให้นำไปใช้ประมวลผล และการพัฒนาซอฟท์แวร์
- ผมมีเครื่องคอมพิวเตอร์ 2 เครื่อง เคยติดตั้ง .NET 4.0 แต่ stop service ไว้
มาวันนี้จะใช้ แต่ start ไม่ขึ้นต้อง download จาก microsoft มา repair ก็ทำให้ใช้ได้
แล้ว .NET 4.0 ควรใช้บน Win7 คู่กับ SQL Server 2008 [refer]
+ แหล่งดาวน์โหลด .NET Framework ในไทย
+ Download Microsoft .NET Framework 2.0 Service Pack 2
|
|
4. ติดตั้ง SQL Server 2005 Management Studio Express Edition
- หลังติดตั้งจะพบ SQL Server Management Studio Express ใน program files
- การเชื่อมต่อกำหนด server name = desktop/sqlexpress
- คำว่า desktop คือชื่อเครื่อง ได้จาก DOS> echo %COMPUTERNAME%
- สามารถใช้โปรแกรมนี้สั่งประมวลผล SQL ได้
|
|
5. สร้างฐานข้อมูล ตาราง และรหัสผู้ใช้สำหรับเข้าระบบด้วย PHP
- ถ้า PHP ใน IIS บน WIN7 มักใช้ PHP Manager และมีคำแนะนำที่ PHP.NET
|
5.1 ตัวอย่าง การสร้างฐานข้อมูล และสร้างตาราง
DOS> CD C:\Program Files\Microsoft SQL Server\90\Tools\Binn
DOS>sqlcmd -S.\SQLEXPRESS -E
sp_databases
go
create database dbthai
go
use dbthai
go
create table tbthai(id int,name varchar(10))
go
insert into tbthai values(1,'abc')
insert into tbthai values(2,'def')
go
select * from tbthai
go
select * from sys.tables
go
5.2 ตัวอย่างการสร้างรหัสผู้ใช้ และรหัสผ่าน
DOS>sqlcmd -S.\SQLEXPRESS -E
sp_addLogin 'thai', 'thai2007'
go
sp_addsrvrolemember 'thai', 'sysadmin'
go
sp_password @old = null, @new = '1234', @loginame = 'sa'
go
alter login sa enable
go
|
5.3 แก้ไข register ให้ใช้รหัสที่สร้างในข้อ 5.2
DOS>REGEDIT
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\Microsoft SQL Server\MSSQL.1\MSSQLServer
หรือ
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT
\MICROSOFT SQL SERVER\MSSQL10.MSSQLSERVER
\MSSQLSERVER
LoginMode = 2 (Old value = 1)
ถ้าไม่ reboot จะใช้ User ที่สร้างใหม่ Connect ไม่ได้
ถ้าหาไม่พบก็ใช้ find ดูครับ เพราะต่างรุ่นอาจเปลี่ยนที่เก็บ
ถ้าเป็น 2 แล้วก็จะ authentication ได้ 2 แบบ
1. Windows Authentication
2. SQL Server authentication
|
6. แก้ไข php.ini
ถ้าติดตั้ง php แบบไม่เต็ม ซึ่งส่วนใหญ่ไม่เต็ม
ต้อง download แฟ้ม
php_mssql.dll ไว้ในห้อง ext และ
ntwdblib.dll ไว้ในห้อง system32
6.1 เปิดแฟ้ม php.ini
หาบรรทัด ;extension=php_mssql.dll
แก้ไขเป็น extension=php_mssql.dll
โดยตรวจว่าในห้อง ext มีแฟ้มนี้หรือไม่ ถ้าไม่มีก็ต้องหา download
พบว่า xampp 3.0.12 ไม่มีแฟ้มนี้ จึงใช้ตรวจใน php 5.2.5 พบว่ามี
ถ้าแก้ไข config แต่ไม่มีแฟ้มนี้ ก็จะพบ error message ดังนี้
Fatal error: Call to undefined function mssql_connect()
in C:\thaiabc\apache2\htdocs\x.php on line 2
6.2 ดาวน์โหลดแฟ้ม ntwdblib.dll สนับสนุน php_mssql.dll
ถ้าในห้อง c:\windows\system32 ไม่พบแฟ้มนี้ ก็ต้องหาดาวน์โหลดเพิ่ม
บางเครื่องที่ไม่ได้ใช้ห้องชื่อ windows สามารถตรวจว่าเป็นห้องชื่อใด
ด้วย DOS> echo %SystemROOT%
Download : http://www.dlldll.com/ntwdblib.dll_download.html
|
|
|
7. ปรับแต่ง กรณีพบปัญหา connect ไม่ได้
Warning: mssql_connect() [function.mssql-connect]:
Unable to connect to server: localhost in C:\thaiabc\apache2\htdocs\x.php on line 2
Database Connect Failed.
Warning: mssql_close(): supplied argument is not a valid MS SQL-Link resource
in C:\thaiabc\apache2\htdocs\x.php on line 4
7.1 คำแนะนำที่ http://support.microsoft.com/default.aspx?scid=kb;en-us;839569
- Control panel, Administrative Tools, Local Security Policy, Security Options
Network Access: Allow anonymous SID/Name translation. : enable
- สำหรับคำแนะนำเพื่อเปิด TurnOffAnonymousBlock ใน Regedit ไม่พบใน Windows XP
7.2 คำแนะนำที่ http://php.net/manual/en/ref.mssql.php
Start, Program, Microsoft SQL Server 2005, Configuration Tools
SQL Server Configuration Manager, SQL Server Network Configuration
- Protocols for SQLExpress
Named Pipes = Enabled และ TCP/IP = Enabled
เข้า TCP/IP, IP addresses แล้วกำหนด TCP Dynamic Ports = 1433
แล้ว Restart service
|
|
8. โปรแกรมภาษา PHP สำหรับ connect mssql
$objConnect = mssql_connect("DESKTOP\SQLEXPRESS","thai","thai2007");
if($objConnect) { echo "Database Connected.";
} else { echo "Database Connect Failed."; }
mssql_close($objConnect);
/$objConnect = mssql_connect("172.50.0.7","thai","thai2007");
//$objConnect = mssql_connect("127.0.0.1","thai","thai2007");
//$objConnect = mssql_connect("localhost","thai","thai2007");
$objConnect = mssql_connect("burin","thai","thai2007");
if($objConnect) echo "ok"; else echo "fail";
echo "<br/>";
mssql_close($objConnect);
ปล. แนะนำ MSSQL Manager ของ Toadworld.com
+ http://toadworld.com
|
|
|