#laravel #docker
Вопрос:
Я установил докер с nginx mysql laravel с php7.4
но он возвращает 404 не найденных, на домашней странице laravel (и на всех маршрутах)
Вот мой докер-compose.yml
Я использовал установку composer, запуск npm и т. Д. все это было установлено с успехом.
https://github.com/jjuanrivvera99/laravel-nginx-mysql-docker это URL-адрес, который я использую.
version: '3.7'
services:
app:
build:
context: docker/php
dockerfile: Dockerfile
container_name: app
image: jjuanrivvera99/laravel:mysql-alpine
restart: always
depends_on:
- redis
volumes:
- ./:/var/www
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- app-network
web:
image: nginx:alpine
restart: always
depends_on:
- app
ports:
- "80:80"
- "443:443"
volumes:
- ./:/var/www
- ./docker/nginx/:/etc/nginx/conf.d/
networks:
- app-network
queue:
restart: always
depends_on:
- redis
image: jjuanrivvera99/laravel:mysql-alpine
environment:
CONTAINER_ROLE: "queue"
volumes:
- "./:/var/www/"
networks:
- app-network
scheduler:
restart: always
depends_on:
- redis
image: jjuanrivvera99/laravel:mysql-alpine
environment:
CONTAINER_ROLE: "scheduler"
volumes:
- "./:/var/www/"
networks:
- app-network
node:
image: jjuanrivvera99/node:alpine
restart: always
build:
context: docker/node
dockerfile: Dockerfile
container_name: node
volumes:
- ./:/var/www
mysql:
image: mysql:5.7.22
restart: always
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: mdpocr
MYSQL_ROOT_PASSWORD: Bugbytes13**
volumes:
- mysql-data:/var/lib/mysql/
- ./docker/mysql/my.cnf:/etc/mysql/my.cnf
networks:
- app-network
redis:
image: redis
restart: always
ports:
- 6379:6379
volumes:
- redis-data:/data
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
mysql-data:
driver: local
redis-data:
driver: local
И вот мой докер/nginx/app.conf
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ .php$ {
fastcgi_split_path_info ^(. .php)(/. )$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
server_tokens off;
}
Комментарии:
1. Ты пробовал
php artisan cache:clear
илиphp artisan optimize:clear
?2. да, я это сделал, но не сработало. Отправлен HTTP-запрос, ожидает ответа… 404 Не найден 2021-05-19 07:02:26 ОШИБКА 404: Не найден.
3. возможно, создать новый маршрут, который использует
function
вместо контроллера для возврата простой строки, что-то вроде «/test» в web.php в папке «Маршруты». если он проходит, это означает, что в маршруте главной страницы чего-то не хватает. 404 в laravel может означать, что aModel
отсутствует или aroute
отсутствует. так что проверьте это, чтобы убедиться, что он пропустил маршрут. и, кстати, всегда полезно включить в вопрос то, что вы пробовали.