WordPress のデータベースへの接続は wp-config.php で定義されます。
その接続情報でデータベースに接続できるか判定する方法です。
wp-config.php は、wordpress 以下にあるものをコピーします。
wp-settings.php は空の PHP です。
フォルダー構造
$ tree
.
├── connect_check.php
├── wp-config.php
└── wp-settings.php
connect_check.php
#! /usr/bin/php
<?php
/*
connect_check.php
May/24/2020
*/
// --------------------------------------------------------------------
include_once ("wp-config.php");
// --------------------------------------------------------------------
$host = DB_HOST;
$user = DB_USER;
$password = DB_PASSWORD;
$db = DB_NAME;
$dsn = 'mysql:dbname=' . $db . ';host=' . $host . ';charset=utf8';
fputs (STDERR,"*** 開始 ***\n");
print DB_USER . "\n";
try
{
$dbcon = new PDO ($dsn, $user,$password);
$sql = "show schemas";
$sql = "select version()";
foreach ($dbcon->query($sql) as $row)
{
$str_json = json_encode($row);
print $str_json . "\n";
}
$dbcon = null;
}
catch (PDOException $e)
{
print('Error:'.$e->getMessage());
}
fputs (STDERR,"*** 終了 ***\n");
// --------------------------------------------------------------------
?>
wp-settings.php
<?php
?>
実行結果
データベースが MariaDB の時
$ ./connect_check.php
*** 開始 ***
wordpress
{"version()":"10.4.13-MariaDB","0":"10.4.13-MariaDB"}
*** 終了 ***
データベースが MySQL の時
$ ./connect_check.php
*** 開始 ***
wordpress
{"version()":"5.7.28-log","0":"5.7.28-log"}
*** 終了 ***
接続が出来ない時
$ ./connect_check.php
*** 開始 ***
wordpress
Error:SQLSTATE[HY000] [1045] Access denied for user 'wordpress'@'localhost' (using password: YES)*** 終了 ***
バリデーションでオーケーになっても、まだ WordPress で接続できない時は、次を試して下さい。
sudo setenforce 0