Skip to content

Commit 9154b40

Browse files
authored
Update phpMyAdmin with new ENVs and settings (#2527)
* Update phpMyAdmin with new ENVs and settings * Also add in developer-tools * Use MariaDB 10.11 LTS
1 parent 4f80c2b commit 9154b40

File tree

3 files changed

+62
-4
lines changed

3 files changed

+62
-4
lines changed

phpmyadmin/content.md

+59-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Run phpMyAdmin with Alpine, Apache and PHP FPM.
88

99
# How to use this image
1010

11-
All of the following examples will bring you phpMyAdmin on `http://localhost:8080` where you can enjoy your happy MySQL administration.
11+
All of the following examples will bring you phpMyAdmin on `http://localhost:8080` where you can enjoy your happy MySQL and MariaDB administration.
1212

1313
## Credentials
1414

@@ -62,7 +62,7 @@ You can use arbitrary servers by adding the environment variable `PMA_ARBITRARY=
6262
docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8080:80 %%IMAGE%%
6363
```
6464

65-
## Usage with Docker Compose and arbitrary server
65+
## Usage with `docker compose` and an arbitrary server
6666

6767
This will run phpMyAdmin with the arbitrary server option - allowing you to specify any MySQL/MariaDB server on the login page.
6868

@@ -97,10 +97,40 @@ See the following links for config file information:
9797
- https://docs.phpmyadmin.net/en/latest/config.html#config
9898
- https://docs.phpmyadmin.net/en/latest/setup.html
9999

100+
## Adding custom configuration in `/etc/phpmyadmin/conf.d`
101+
102+
you can also consider storing your custom configuration files in the folder `/etc/phpmyadmin/conf.d`, which is very suitable for managing multiple phpMyAdmin configuration files for different hosts,Then you can create `server-1.php`, `server-2.php`, or any file name you want, and store them in the conf.d directory mounted on the host.
103+
104+
On the `docker run` line like this:
105+
106+
```sh
107+
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/conf.d:/etc/phpmyadmin/conf.d:ro %%IMAGE%%
108+
```
109+
100110
## Usage behind a reverse proxy
101111

102112
Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.example.net/`) where the reverse proxy makes phpMyAdmin available.
103113

114+
## Sessions persistence
115+
116+
In order to keep your sessions active between container updates you will need to mount the `/sessions` folder.
117+
118+
```sh
119+
-v /some/local/directory/sessions:/sessions:rw
120+
```
121+
122+
## Connect to the database over SSL
123+
124+
Set the variable `PMA_SSL` to `1` to enable SSL usage from phpMyAdmin to the MySQL server. The default value is `0`. The variable `PMA_SSLS` can be used as a comma seperated sequence of `0` and `1` where multiple hosts are mentioned. Values order must follow the `PMA_HOSTS` and will be computed accordingly.
125+
126+
```sh
127+
docker run --name phpmyadmin -d -e PMA_HOSTS=sslhost -e PMA_SSL=1 -p 8080:80 %%IMAGE%%
128+
```
129+
130+
```sh
131+
docker run --name phpmyadmin -d -e PMA_HOSTS='sslhost,nosslhost' -e PMA_SSLS='1,0' -p 8080:80 %%IMAGE%%
132+
```
133+
104134
## Environment variables summary
105135

106136
- `PMA_ARBITRARY` - when set to 1 connection to the arbitrary server will be allowed
@@ -110,6 +140,19 @@ Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.ex
110140
- `PMA_HOSTS` - define comma separated list of address/host names of the MySQL servers
111141
- `PMA_VERBOSES` - define comma separated list of verbose names of the MySQL servers
112142
- `PMA_PORTS` - define comma separated list of ports of the MySQL servers
143+
- `PMA_SOCKET` - define socket file for the MySQL connection
144+
- `PMA_SOCKETS` - define comma separated list of socket files for the MySQL connections
145+
- `PMA_SSL_DIR` - define the path used for SSL files generated from environement variables, default value is `/etc/phpmyadmin/ssl`
146+
- `PMA_SSL` - when set to 1, defines SSL usage for the MySQL connection
147+
- `PMA_SSLS` - comma separated list of `0` and `1` defining SSL usage for the corresponding MySQL connections
148+
- `PMA_SSL_VERIFY` - when set to 1, enables SSL certificate verification for the MySQL connection.
149+
- `PMA_SSL_VERIFIES` - comma-separated list of `0` and `1` to enable or disable SSL certificate verification for multiple MySQL connections.
150+
- `PMA_SSL_CA` - in the context of mutual TLS security, allows setting your CA certificate file as a string inside the default `config.inc.php`.
151+
- `PMA_SSL_CAS` - in the context of mutual TLS security, allows setting multiple CA certificate files as a comma-separated list of strings inside the default `config.inc.php`.
152+
- `PMA_SSL_CERT` - in the context of mutual TLS security, allows setting your certificate file as a string inside the default `config.inc.php`.
153+
- `PMA_SSL_CERTS` - in the context of mutual TLS security, allows setting multiple certificate files as a comma-separated list of strings inside the default `config.inc.php`.
154+
- `PMA_SSL_KEY` - in the context of mutual TLS security, allows setting your private key file as a string inside the default `config.inc.php`.
155+
- `PMA_SSL_KEYS` - in the context of mutual TLS security, allows setting multiple private key files as a comma-separated list of strings inside the default `config.inc.php`.
113156
- `PMA_USER` and `PMA_PASSWORD` - define username and password to use only with the `config` authentication method
114157
- `PMA_ABSOLUTE_URI` - the full URL to phpMyAdmin. Sometimes needed when used in a reverse-proxy configuration. Don't set this unless needed. See [documentation](https://docs.phpmyadmin.net/en/latest/config.html#cfg_PmaAbsoluteUri).
115158
- `PMA_CONFIG_BASE64` - if set, this option will override the default `config.inc.php` with the base64 decoded contents of the variable
@@ -126,6 +169,7 @@ Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.ex
126169
- `MAX_EXECUTION_TIME` - if set, will override the maximum execution time in seconds (default 600) for phpMyAdmin ([$cfg['ExecTimeLimit']](https://docs.phpmyadmin.net/en/latest/config.html#cfg_ExecTimeLimit)) and PHP [max_execution_time](https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time) (format as `[0-9+]`)
127170
- `MEMORY_LIMIT` - if set, will override the memory limit (default 512M) for phpMyAdmin ([$cfg['MemoryLimit']](https://docs.phpmyadmin.net/en/latest/config.html#cfg_MemoryLimit)) and PHP [memory_limit](https://www.php.net/manual/en/ini.core.php#ini.memory-limit) (format as `[0-9+](K,M,G)` where K is for Kilobytes, M for Megabytes, G for Gigabytes and 1K = 1024 bytes)
128171
- `UPLOAD_LIMIT` - if set, this option will override the default value for apache and php-fpm (format as `[0-9+](K,M,G)` default value is 2048K, this will change `upload_max_filesize` and `post_max_size` values)
172+
- `TZ` - if defined, this option will change the default PHP `date.timezone` from `UTC`. See [documentation](https://www.php.net/manual/en/timezones.php) for supported values.
129173
- `HIDE_PHP_VERSION` - if defined, this option will hide the PHP version (`expose_php = Off`). Set to any value (such as `HIDE_PHP_VERSION=true`).
130174
- `APACHE_PORT` - if defined, this option will change the default Apache port from `80` in case you want it to run on a different port like an unprivileged port. Set to any port value (such as `APACHE_PORT=8090`)
131175

@@ -135,6 +179,19 @@ For usage with Docker secrets, appending `_FILE` to the `PMA_PASSWORD` environme
135179
docker run --name phpmyadmin -d -e PMA_PASSWORD_FILE=/run/secrets/db_password.txt -p 8080:80 %%IMAGE%%
136180
```
137181

182+
#### Variables that can store the file contents using `_BASE64`
183+
184+
- `PMA_SSL_CA`
185+
- `PMA_SSL_CAS`
186+
- `PMA_SSL_KEY`
187+
- `PMA_SSL_KEYS`
188+
- `PMA_SSL_CERT`
189+
- `PMA_SSL_CERTS`
190+
191+
Also includes: `PMA_CONFIG_BASE64` or `PMA_USER_CONFIG_BASE64`.
192+
193+
For example, the variable would be named `PMA_SSL_CA_BASE64` and the value is the base64 encoded contents of the file.
194+
138195
#### Variables that can be read from a file using `_FILE`
139196

140197
- `MYSQL_ROOT_PASSWORD`

phpmyadmin/metadata.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"hub": {
33
"categories": [
4-
"databases-and-storage"
4+
"databases-and-storage",
5+
"developer-tools"
56
]
67
}
78
}

phpmyadmin/stack.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: '3.1'
22

33
services:
44
db:
5-
image: mariadb:10.6
5+
image: mariadb:10.11
66
restart: always
77
environment:
88
MYSQL_ROOT_PASSWORD: notSecureChangeMe

0 commit comments

Comments
 (0)