Install ODBC in ubuntu22.04.1 ใช้งานสำหรับ php extension มีโปรเจค ที่ผมต้องทำ as400 socket sim เพื่อทดสอบ ต้องใช้การเชื่อมต่อ php มาที่ sql server พยามลองหลายวิธี สรุปมาจบที่ท่านี้ ลองไปใช้กัน...
1.ปรับปรุงรายการแพ็คเกจ
ปรับปรุงรายการแพ็คเกจของระบบ:
sudo apt-get update
ถ้ามี error ลองเริ่มจากขั้นตอนที่ 2
2.แก้ไขปัญหากุญแจ (Key) ของ Repository
คัดลอกและสร้างไฟล์ของ trusted.gpg และอัปเดตแพ็คเกจอีกครั้ง:
cd /etc/apt sudo cp trusted.gpg trusted.gpg.d sudo apt-get update
3.แก้ปัญหาที่เกี่ยวข้องกับ dpkg
การตั้งค่าและแก้ไขปัญหาการติดตั้งที่มีปัญหา:
sudo dpkg --configure --force-overwrite -a sudo apt -o Dpkg::Options::="--force-overwrite" --fix-broken install
4.ติดตั้งแพ็คเกจที่เกี่ยวข้อง
ติดตั้ง libodbc2 และ unixodbc ซึ่งเป็น dependencies สำหรับการเชื่อมต่อ SQL Server:
sudo apt install libodbc2 sudo apt install unixodbc
5.เพิ่ม Repository สำหรับ Microsoft SQL Server ODBC Driver
เพิ่ม key และ repository ของ Microsoft:
sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit sudo apt-get update sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
6.การตั้งค่า Driver ใน odbcinst.ini
ใส่รายละเอียดของ driver ที่คุณต้องการใช้งาน:
sudo nano /etc/odbcinst.ini
แล้วเพิ่มข้อมูล:
[ODBC Driver 17 for SQL Server] Description=Microsoft ODBC Driver 17 for SQL Server Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.4.1
7.การตั้งสิทธิ์ของไฟล์ Driver
ตรวจสอบและให้สิทธิ์การเข้าถึงกับ driver:
ls -l /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.4.1 sudo chmod +x /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.4.1
8.ทดสอบการเชื่อมต่อกับฐานข้อมูลโดยใช้ PHP
ใช้ code PHP เพื่อเชื่อมต่อกับ SQL Server ดังนี้:
$connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=[IP],1433;Database=db_socket;"; $conn = odbc_connect($connection_string, "sa", "password"); if ($conn) { echo "Connected successfully!"; } else { die("Connection failed: " . odbc_errormsg()); } ?>
ถ้าขึ้น Connected successfully! เป็นอันใช้ได้ ลองคิวรี่ดูครับ