{% extends "baseTemplate/index.html" %} {% load static %} {% comment %} CloudPanel does not ship phpMyAdmin. Bundling it would make the panel's security posture depend on a large PHP application with a long CVE history, updated on someone else's schedule. The operator opts in; this page either hands off to the instance the installer provisioned, or explains exactly how to provision it. What it never does is render a button that goes nowhere. {% endcomment %} {% block title %}phpMyAdmin{% endblock %} {% block content %}
{% if pma.installed %} Signed hand-off to the instance installed on this server. {% else %} Not installed on this server. {% endif %}
CloudPanel signs a one-time hand-off token that phpMyAdmin verifies. The token is valid for {{ tokenTTL }} seconds.
CloudPanel stores no plaintext database passwords, so it cannot fill this in for you. The password goes straight from your browser to phpMyAdmin; the panel only signs who you are and which database you asked for.
CloudPanel does not bundle it, and it will not pretend otherwise.
phpMyAdmin is a large PHP application with a long history of security advisories. Shipping it inside the panel would mean every CloudPanel install carries that exposure whether the operator wants it or not, so it is an explicit opt-in instead.
Everything the panel itself needs — create, list, resize, delete, change a password, open remote access — is already on the database pages. phpMyAdmin is for browsing table data.
Run this as root on the server, then reload this page:
cloudpanel install phpmyadmin
The installer:
If you installed it by hand, point the panel at it:
[phpmyadmin]
url = https://{{ CLOUDPANEL.PANEL_HOSTNAME|default:"cp.a1hosting.net" }}:{{ CLOUDPANEL.PANEL_PORT|default:"8090" }}/phpmyadmin/
signon_url = https://{{ CLOUDPANEL.PANEL_HOSTNAME|default:"cp.a1hosting.net" }}:{{ CLOUDPANEL.PANEL_PORT|default:"8090" }}/phpmyadmin/signon.php
path = {{ pma.defaultPath }}
signon_secret = <a long random string, also set in signon.php>
Restart the panel after editing the config so the new section is read: systemctl restart cloudpanel.