{% 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 %}

phpMyAdmin

{% if pma.installed %} Signed hand-off to the instance installed on this server. {% else %} Not installed on this server. {% endif %}

{% if pma.installed %}

Open a database

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.

{# Submitted programmatically to the provisioned signon endpoint. #}
{% else %}

phpMyAdmin is not installed

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.

Install it

Run this as root on the server, then reload this page:

cloudpanel install phpmyadmin

The installer:

  • downloads the current phpMyAdmin release and verifies its signature;
  • unpacks it into {{ pma.defaultPath }};
  • configures signon authentication so this page can hand off a signed token instead of a shared password;
  • writes the location and the shared secret into /etc/cloudpanel/cloudpanel.conf.

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.

{% endif %}
{% endblock %} {% block scripts %} {% endblock %}