Рейтинг:0

Загрузка файлов PHP при использовании php-fpm и nginx с Docker

флаг in

Я уже видел здесь другие сообщения о подобной проблеме, но я думаю, что моему нужно другое решение, потому что другие сообщения не помогли.

Я запускаю два отдельных контейнера с Docker: для php-fpm и для нгинкс. Когда я пытаюсь отобразить текст, используя index.html файл все в порядке, но когда я меняю имя файла на index.php вместо этого он загружает «загрузочный» файл.

Я не уверен, что это только из-за моего default.conf файл или из-за того, как я настраиваю свои контейнеры.

Это мое докер-compose.yml:

сети:
    Ларавель:


Сервисы:
    нгинкс:
        изображение: nginx: стабильный-альпийский
        имя_контейнера: nginx
        порты:
            - "8088:80"
        тома:
            - ./src:/var/www/html 
            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
        
        зависит от:
            - пхп
            - mysql
            
        сети:
            - ларавель
        
    
    MySQL:
        изображение: mysql
        имя_контейнера: mysql

        телетайп: правда
        порты:
            - "4306:3306"
        тома:
            - ./src:/var/lib/mysql
        среда:
            MYSQL_DATABASE: ларавель
            MYSQL_ROOT_USER: корень
            MYSQL_ROOT_PASSWORD: секрет
            SERVICE_TAGS: разработка
            ИМЯ_СЛУЖБЫ: mysql            
        
        сети:
            - ларавель
          
    
    php:
        строить:
            контекст: .
            докерфайл: Докерфайл
        имя_контейнера: php
        тома:
            - ./src:/var/www/html
        порты:
            - "9000:9000"
        сети:
            - ларавель
       

Это мое default.conf:

сервер {
    слушать 80;
    индекс index.php index.html;
    имя_сервера локальный хост;
    журнал_ошибок /var/log/nginx/error.log;
    журнал_доступа /var/log/nginx/access.log;
    корень /var/www/html/public;
    
    место расположения / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    расположение ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        включить fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    
}
Рейтинг:1
флаг cn

Вы, кажется, упускаете основную часть: fastcgi_pass директива для фактической пересылки запроса в FPM. Добавьте это под расположение ~ \.php$ раздел:

fastcgi_pass PHP: 9000;

Смотрите также пример в документации Nginx.

Stackerito avatar
флаг in
Спасибо! это сработало

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.