Я наткнулся на этот вопрос, пытаясь достичь этого в среде Kubernetes.
Вопрос, стиль docker здесь открыт https://github.com/phpmyadmin/docker/issues/253.
I прочитай это. Работает с чистым docker, но не на 100% применимо к k8s.
С k8s $document_root
не может быть установлен внутри контейнера nginx, так как он находится строго внутри контейнера phpmyadmin ( /var/www/html
).
Таким образом, nginx не может обслуживать стати c частей.
PHP Код хорошо обслуживается FPM, никаких проблем с этим, я получаю 200 OK
GET /index.php HTTP/1.1" 200 3600
Но все остальные ресурсы заканчиваются на 404, так как они не обслуживаются ни FPM (не его работой), ни nginx (у них их нет локально).
Мой вопрос будет таким:
Как добиться этого варианта использования [nginx] -> [phpmyadmin:fpm]
в среде Kubernetes
Следственный вопрос:
Есть ли что-то не так в моем подходе или в мой конф?
Для справки:
nginx .conf
server {
listen 80;
server_name pma.exemple.com;
location ~ /.*\.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass backend-phpmyadmin-service:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
deploy-pma.yaml
[...]
containers:
- name: backend-phpmyadmin
image: phpmyadmin/phpmyadmin:fpm-alpine
env:
- name: PMA_HOST
value: backend-mariadb
- name: PMA_PORT
value: '3306'
- name: PMA_ABSOLUTE_URI
value: 'http://pma.exemple.com/'
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: backend-mariadb-secret
key: pass
service-pma.yaml
apiVersion: v1
kind: Service
metadata:
name: backend-phpmyadmin-service
[...]
ports:
- protocol: TCP
port: 9000