Sto cercando di configurare una webapp php usando la finestra mobile. L'idea è di eseguire l'app utilizzando php-fpmun contenitore autonomo e disporre di un altro contenitore che eseguirà nginx. L'idea per questa configurazione è quella di utilizzare lo stesso contenitore nginx per inoltrare richieste ad altre webapp che stanno già lavorando sullo stesso computer. Il problema è che non riesco nginxa elaborare correttamente i file statici (js, css, ecc.), Poiché le richieste a quelli continuano fpm.
Ecco come appare il filesystem:
/
├── Makefile
├── config
│ └── webapp.config
└── webapp
└── web
├── index.php
└── static.js
Sto eseguendo il tutto usando un Makefileche assomiglia a questo (non interessato a docker-composequesto):
PWD:=$(shell pwd)
CONFIG:='/config'
WEBAPP:='/webapp'
run: | run-network run-webapp run-nginx
run-network:
docker network create internal-net
run-webapp:
docker run --rm \
--name=webapp \
--net=internal-net \
--volume=$(PWD)$(WEBAPP):/var/www/webapp:ro \
-p 9000:9000 \
php:5.6.22-fpm-alpine
run-nginx:
docker run --rm \
--name=nginx \
--net=internal-net \
--volume=$(PWD)$(CONFIG)/webapp.conf:/etc/nginx/conf.d/webapp.domain.com.conf:ro \
-p 80:80 \
nginx:1.11.0-alpine
Ecco config/webapp.confcome appare il mio .
server {
listen 80;
server_name webapp.domain.com;
# This is where the index.php file is located in the webapp container
# This folder will contain an index.php file and some static files that should be accessed directly
root /var/www/webapp/web;
location / {
try_files $uri $uri/ @webapp;
}
location @webapp {
rewrite ^(.*)$ /index.php$1 last;
}
location ~ ^/index\.php(/|$) {
include fastcgi_params;
fastcgi_pass webapp:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
Qualsiasi azione che deve essere elaborata utilizzando quel index.phpfile funzionerà. Tuttavia, i file statici non verranno offerti, con conseguenti 404errori negativi (poiché la webapp php non ha percorsi configurati per quelli). Credo che nginx tenti di caricare quelli dal proprio filesystem contenitore, quando sono effettivamente nel webappcontenitore, fallendo nuovamente @webapp.
C'è un modo che posso configurare nginxper servire quei file che risiedono in un altro contenitore?
nginxfile di richiesta all'interno dell'applicazione php, sto facendo il proxy fpmper farlo e ho bisogno nginxdi accedere a file statici non php.
webappcontenitore, non in nginxquello.