Cara Install Driver SQL Server untuk PHP di Ubuntu
SQL Server adalah perangkat lunak relational database management system (RDBMS) yang dikembangkan oleh Microsoft. Bagi para software developer yang menggunakan PHP di Ubuntu, mengintegrasikan SQL Server dengan aplikasi mereka menjadi hal yang penting. Untuk mencapai ini, Microsoft menyediakan driver SQL Server khusus untuk PHP, yang memungkinkan komunikasi yang antara PHP dan database SQL Server. Pada artikel ini, kita akan belajar bagaimana cara menginstal dan menggunakan driver Microsoft SQL Server untuk PHP di Ubuntu.
Menginstal Driver SQL Server
Beralih menjadi root:
1 | sudo su - |
Menambahkan repositori ondrej/php:
1 | add-apt-repository ppa:ondrej/php -y |
Menginstal Apache, PHP 8.2, dan module yang dibutuhkan:
1 | apt install apache2 libapache2-mod-php8.2 php8.2 php8.2-xml php8.2-dev unixodbc-dev -y |
Memasang repositori Microsoft:
1 2 | curl https://packages.microsoft.com/keys/microsoft.asc > /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list |
Memperbarui repositori:
1 | apt update |
Menginstal ODBC SQL Server:
1 | ACCEPT_EULA=Y apt install msodbcsql18 -y |
Menginstal PHP module sqlsrv via pecl:
1 | pecl install sqlsrv |
Menginstal PHP module pdo_sqlsrv via pecl:
1 | pecl install pdo_sqlsrv |
Membuat file konfigurasi module sqlsrv:
1 | printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.2/mods-available/sqlsrv.ini |
Membuat file konfigurasi module pdo_sqlsrv:
1 | printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.2/mods-available/pdo_sqlsrv.ini |
Mengaktifkan module sqlsrv dan pdo_sqlsrv untuk PHP 8.2:
1 | phpenmod -v 8.2 sqlsrv pdo_sqlsrv |
Me-restart service Apache web server:
1 | systemctl restart apache2 |
Menguji Driver SQL Server
Setelah instalasi selesai, selanjutnya melakukan pengujian untuk mengetahui apakah driver SQL Server untuk PHP sudah berjalan dengan baik.
Uji sqlsrv
Membuat file sqlsrv.php untuk menguji module sqlsrv:
1 | nano /var/www/html/sqlsrv.php |
Masukkan script PHP untuk pengujian module sqlsrv:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <?php $serverName = "IP_SERVER_NAME"; $connectionOptions = array( "database" => "NAMA_DATABASE", "uid" => "USER_DATABASE", "pwd" => "PASSWORD_DATABASE", "encrypt" => 1, "trustservercertificate" => 1 ); function exception_handler($exception) { echo "<h1>Failure</h1>"; echo "Uncaught exception: " , $exception->getMessage(); echo "<h1>PHP Info for troubleshooting</h1>"; phpinfo(); } set_exception_handler('exception_handler'); // Establishes the connection $conn = sqlsrv_connect($serverName, $connectionOptions); if ($conn === false) { die(formatErrors(sqlsrv_errors())); } // Select Query $tsql = "SELECT @@Version AS SQL_VERSION"; // Executes the query $stmt = sqlsrv_query($conn, $tsql); // Error handling if ($stmt === false) { die(formatErrors(sqlsrv_errors())); } ?> <h1> Success Results : </h1> <?php while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { echo $row['SQL_VERSION'] . PHP_EOL; } sqlsrv_free_stmt($stmt); sqlsrv_close($conn); function formatErrors($errors) { // Display errors echo "<h1>SQL Error:</h1>"; echo "Error information: <br/>"; foreach ($errors as $error) { echo "SQLSTATE: ". $error['SQLSTATE'] . "<br/>"; echo "Code: ". $error['code'] . "<br/>"; echo "Message: ". $error['message'] . "<br/>"; } } ?> |
Sesuaikan serverName, database, uid, dan pwd.
Lalu, akses http://IP-Server/sqlsrv.php.
Uji pdo_sqlsrv
Membuat file pdo_sqlsrv.php untuk menguji module pdo_sqlsrv:
1 | nano /var/www/html/pdo_sqlsrv.php |
Masukkan script PHP untuk pengujian module sqlsrv:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?php try { $serverName = "IP_SERVER_NAME"; $databaseName = "NAMA_DATABASE"; $uid = "USER_DATABASE"; $pwd = "PASSWORD_DATABASE"; $conn = new PDO("sqlsrv:server = $serverName; Database = $databaseName; Encrypt = true; TrustServerCertificate = true", $uid, $pwd); // Select Query $tsql = "SELECT @@Version AS SQL_VERSION"; // Executes the query $stmt = $conn->query($tsql); } catch (PDOException $exception1) { echo "<h1>Caught PDO exception:</h1>"; echo $exception1->getMessage() . PHP_EOL; echo "<h1>PHP Info for troubleshooting</h1>"; phpinfo(); } ?> <h1> Success Results : </h1> <?php try { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $row['SQL_VERSION'] . PHP_EOL; } } catch (PDOException $exception2) { // Display errors echo "<h1>Caught PDO exception:</h1>"; echo $exception2->getMessage() . PHP_EOL; } unset($stmt); unset($conn); ?> |
Sesuaikan serverName, databaseName, uid, dan pwd.
Lalu, akses http://IP-Server/pdo_sqlsrv.php.
Jika pengujian berhasil, menampilkan pesan seperti berikut ini:
Selamat mencoba 🙂
sya sdh mengikuti tutorial diatas dan berhasil. tetapi aplikasi web saya tidak support php8. apakah bisa jika saya pakai php5 dan bagaimana caranya? terima kasih
saya belum pernah coba di PHP5. silakan dicoba saja untuk PHP5.