Am văzut deja alte postări aici despre o problemă similară, dar cred că a mea are nevoie de o soluție diferită pentru că celelalte postări nu au ajutat.
Rulez două containere separate cu Docker: Pentru php-fpm
si pentru nginx
.
Când încerc să afișez text folosind index.html
fișierul e totul în regulă, dar când schimb numele fișierului în index.php
în schimb, descarcă un fișier „descărcare”.
Nu sunt sigur dacă este doar din cauza mea implicit.conf
fișier sau din cauza modului în care îmi configurez containerele.
Acesta este al meu docker-compose.yml
:
retele:
laravel:
Servicii:
nginx:
imagine: nginx:stable-alpine
container_name: nginx
porturi:
- „8088:80”
volume:
- ./src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depinde de:
- php
- mysql
retele:
- laravel
mysql:
imagine: mysql
container_name: mysql
tty: adevărat
porturi:
- „4306:3306”
volume:
- ./src:/var/lib/mysql
mediu inconjurator:
MYSQL_DATABASE: laravel
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: secret
SERVICE_TAGS: dev
SERVICE_NAME: mysql
retele:
- laravel
php:
construi:
context: .
dockerfile: Dockerfile
nume_container: php
volume:
- ./src:/var/www/html
porturi:
- „9000:9000”
retele:
- laravel
Acesta este al meu implicit.conf
:
Server {
asculta 80;
index index.php index.html;
nume_server gazdă locală;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
Locație / {
try_files $uri $uri/ /index.php?$query_string;
}
locație ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}