Puncte:0

Se descarcă fișiere PHP când se utilizează php-fpm și nginx cu Docker

drapel in

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;
    }
    
}
Puncte:1
drapel cn

Se pare că îți lipsește partea principală: cea fastcgi_pass directivă de a transmite efectiv cererea către FPM. Adăugați acest lucru sub locație ~ \.php$ secțiune:

fastcgi_pass php:9000;

Vezi si exemplul din documentația Nginx.

Stackerito avatar
drapel in
Mulțumesc! a mers

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.