Installs phpMyAdmin and serves it through PHP's built-in web server, managed as a phpmyadmin-php-server systemd unit running as www-data. The plugin writes config.inc.php itself — including a freshly generated blowfish and SSO secret — and exposes actions to start, stop and restart the PHP server, regenerate the config, and change the listening port. Changing the port is handled end to end: the systemd unit is rewritten (bound to localhost when proxied, to all interfaces when exposed directly), systemd is reloaded, and either the reverse-proxy config is rewritten or the UFW rule is moved to the new port.
Access normally goes through a reverse proxy at /phpmyadmin/, and the plugin can write that proxy config for nginx, Apache2 or OpenLiteSpeed; a web_server_changed hook re-applies it after a web server swap so the path does not start 404ing. A separate action serves /phpmyadmin/ over trusted HTTPS by reusing the panel host's Let's Encrypt certificate — on nginx it writes a dedicated 443 vhost, validates it with nginx -t, rolls back on failure, and refuses to run if the panel host is also a hosted website. Panel users can reach phpMyAdmin through signon (SSO) links scoped to databases they own; non-admin tenants only get a read-only status view, with server control, config and port settings left to admins.
Every privileged step — config writes, systemd files, service control, firewall rules — goes through the root agent rather than sudo. The plugin manages the phpMyAdmin installation and its proxy; the actual database work happens inside phpMyAdmin itself, and it requires a working MySQL or MariaDB server and a PHP CLI binary on the host.
Use VinzaPanel's REST API to download and install this app programmatically.
POST /plugins/api/download/phpmyadmin/ Content-Type: application/json { "panel_version": "1.0.0" }
{
"success": true,
"plugin_id": "phpmyadmin",
"version": "1.0.17",
"download_url": "..."
}