FreeBSD は 13.1-RELEASE-p3 で postfixadmin は postfixadmin-php81-3.4.d.20211018 。
Apache のエラーログでは
PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /usr/local/www/postfixadmin/functions.inc.php:1740
Stack trace:
#0 /usr/local/www/postfixadmin/functions.inc.php(1740): PDO->__construct('mysql:mysql:hos...', 'XXXXX', 'YYYYY...', Array)
#1 /usr/local/www/postfixadmin/functions.inc.php(1914): db_connect()
#2 /usr/local/www/postfixadmin/functions.inc.php(1875): db_query('SELECT value FR...', Array)
#3 /usr/local/www/postfixadmin/functions.inc.php(2222): db_query_one('SELECT value FR...')
#4 /usr/local/www/postfixadmin/public/login.php(40): check_db_version()
#5 {main}
thrown in /usr/local/www/postfixadmin/functions.inc.php on line 1740
というエラー。DSN が mysql:mysql となってしまっている。Github 上の postfixadmin ではこうなっていない。
/usr/local/www/postfixadmin/functions.inc.php の db_connection_string() 内、
$dsn = 'mysql:';
if ($socket) {
$dsn .= "unix_socket={$socket}";
} else {
$dsn .= "mysql:host={$CONF['database_host']}";
}
でどちらかの「mysql:」を削除すればひとまず回避できる。