phpMyAdmin on FNMP

phpMyAdmin是用PHP语言编写的用于管理MySQL和MariaDB数据库的Web客户端。本文描述如何在FreeBSD 13.2的FNMP环境中安装和配置phpMyAdmin。

硬件环境

Lenovo ThinkPad T14 Gen2 20W1S3H811: Intel i5-1145G7 + DDR4 16GB + NVMe 512GB

虚拟机宿主环境

Win11 x64 Build 22621.2134 英文专业版 + VirtualBox v7.0.8 r156879

虚拟机客户机软件环境

FreeBSD默认安装,pkg已换国内源,pkg update已完成,Screen 4.09.00已安装,openssh-server允许root远程登录,Nginx 1.24.0已安装,PHP php80-8.0.29已安装,Nginx与php-fpm已集成,MariaDB 10.11.4 / MySQL 8.0.32_3已安装,MariaDB/MySQL安全安装已完成,MariaDB/MySQL认证方式已修改为需要密码。

补充说明:截止本文发布时,FreeBSD 13.2可用的PHP版本有php83-8.3.0.a2/php82-8.2.7/php81-8.1.20/php80-8.0.29。但php83-8.3.0.a2 + phpMyAdmin5-php83-5.2.1_1组合在输入MariaDB/MySQL账户密码登录phpMyAdmin时提示”Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin”而无法登录,尚未找到解决办法;php82-8.2.7 + phpMyAdmin5-php82-5.2.1_1 / php81-8.1.20 + phpMyAdmin5-php81-5.2.1_1组合发生错误”Fatal error: Uncaught Error: Call to undefined function filter_var() in /usr/local/www/phpMyAdmin/vendor/slim/psr7/src/Uri.php:271″。故本文使用php80-8.0.29 + phpMyAdmin5-php80-5.2.1_1组合。

安装phpMyAdmin

安装phpMyAdmin
pkg search phpMyAdmin
phpMyAdmin5-php80-5.2.1_1 Set of PHP-scripts to manage MySQL over the web
pkg install -y phpMyAdmin5-php80-5.2.1_1

在Nginx中发布phpMyAdmin站点
phpMyAdmin默认安装在/usr/local/www/phpMyAdmin目录,将其与Nginx默认路径或任一Nginx虚拟站点创建软连接即可访问。以与Nginx默认路径创建软连接为例:
ln -s /usr/local/www/phpMyAdmin /usr/local/www/nginx/phpmyadmin
编辑Nginx配置文件
vi /usr/local/etc/nginx/nginx.conf
在server{}段中增加一段如下:
location /phpMyAdmin {
alias /usr/local/www/phpMyAdmin;
index index.php;
location ~ ^/phpMyAdmin/.+.php$ {
alias /usr/local/www/phpMyAdmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

重启Nginx服务:service nginx restart
在浏览器地址栏输入https://FreeBSD_IP/phpmyadmin,进入phpMyAdmin登录页面,输入MariaDB/MySQL的root账号和密码,登录phpMyAdmin。可以看到MariaDB/MySQL服务TCP/IP端口、服务器版本、PHP版本、phpMyAdmin版本、字符集等信息。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *