Rumah > Artikel > pangkalan data > Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh melalui SSL dalam PHP?
Menyambung ke Pelayan MySQL Jauh dengan SSL daripada PHP
Apabila cuba mewujudkan sambungan ke pelayan MySQL jauh dengan SSL menggunakan MySQL lama sambungan (mysql_connect), pengguna mungkin menghadapi ralat yang menunjukkan "ralat sambungan SSL." Walaupun mengkonfigurasi parameter SSL yang sesuai dalam my.cnf untuk mendayakan sambungan terminal selamat, sambungan PHP tetap tidak berjaya.
Pertimbangan Versi PHP
Kod yang disediakan menggunakan sambungan MySQL yang sudah lapuk , yang tidak lagi aktif dibangunkan. Sebaliknya, disyorkan untuk menggunakan sambungan MySQLi (Sambungan Peningkatan MySQL) yang menawarkan set ciri yang dipertingkatkan, termasuk:
Ketersambungan yang Dipertingkatkan dengan MySQLi
Kod contoh berikut mempamerkan cara menggunakan MySQLi untuk sambungan SSL yang selamat:
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);
Alternatif PDO_MYSQL
Walaupun tidak sesuai kerana sokongan SSL terhad dalam versi PHP lama, PDO_MYSQL boleh digunakan untuk sambungan SSL:
$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);
Adalah penting untuk ambil perhatian bahawa sokongan SSL dalam PDO untuk versi PHP sebelum 5.3.8 mungkin tidak berfungsi sebagai dijangka.
Sekiranya anda menghadapi isu lanjut, sila rujuk sumber berikut untuk mendapatkan panduan:
Atas ialah kandungan terperinci Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh melalui SSL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!