Я уже видел здесь другие сообщения о подобной проблеме, но я думаю, что моему нужно другое решение, потому что другие сообщения не помогли.
Я запускаю два отдельных контейнера с 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;
}
}