Rumah > Artikel > pangkalan data > Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh Menggunakan SSL dalam PHP?
Sambung ke Pelayan MySQL Jauh dengan SSL daripada PHP
Menyambung ke pelayan MySQL jauh menggunakan SSL daripada PHP boleh mencabar, terutamanya apabila menggunakan fungsi mysql_connect yang sudah lapuk. Untuk mengatasi cabaran ini, adalah disyorkan untuk menggunakan MySQL Improved Extension (MySQLi), yang menawarkan fungsi yang dipertingkatkan dan sokongan SSL.
Menggunakan MySQLi
Kod PHP berikut menunjukkan bagaimana untuk mewujudkan sambungan yang disulitkan SSL menggunakan MySQLi:
ini_set('error_reporting', E_ALL); ini_set('display_errors', '1'); error_reporting(E_ALL|E_STRICT); $db = mysqli_init(); mysqli_options($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL); $link = mysqli_real_connect($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL); if (!$link) { die('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n"); } else { $res = $db->query('SHOW TABLES;'); print_r($res); $db->close(); }
Sokongan SSL PDO_MYSQL
Menggunakan PDO_MYSQL dengan SSL memerlukan versi PHP terbaharu yang menyokong SSL. Untuk versi lebih awal daripada 5.3.8, pilihan SSL diabaikan. Walau bagaimanapun, sampel kod berikut menggambarkan konfigurasi SSL dengan PDO_MYSQL:
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array( PDO::MYSQL_ATTR_SSL_KEY => '/etc/mysql/ssl/client-key.pem', PDO::MYSQL_ATTR_SSL_CERT => '/etc/mysql/ssl/client-cert.pem', PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ssl/ca-cert.pem' )); $statement = $pdo->query("SHOW TABLES;"); $row = $statement->fetch(PDO::FETCH_ASSOC); echo htmlentities($row['_message']);
Dengan mengikuti langkah-langkah ini dan menyesuaikan kod yang diberikan kepada persekitaran khusus anda, anda boleh berjaya mewujudkan sambungan selamat ke pelayan MySQL jauh menggunakan SSL daripada PHP.
Atas ialah kandungan terperinci Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh Menggunakan SSL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!