gpt4 book ai didi

laravel - Nginx上的Laravel对除索引外的所有路由都说404

转载 作者:行者123 更新时间:2023-12-02 18:27:14 25 4
gpt4 key购买 nike

我已经在Docker上使用nginx,php 7.4 fpm和mysql 8设置了Laravel。
我是Docker的新手,我一直在关注一些教程,并且设法以某种方式在单独的容器中运行每个服务,并在另一个目录中运行代码。

仅索引页有效,而其他任何路线均无效。

docker-compose.yml

version: '3'

services:
nginx:
build:
context: ./nginx
volumes:
- ../laravelproject:/var/www
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/sites/:/etc/nginx/sites-available
- ./nginx/conf.d/:/etc/nginx/conf.d
depends_on:
- php-fpm
ports:
- "80:80"
- "443:443"

php-fpm:
build:
context: ./php-fpm
volumes:
- ../laravelproject:/var/www
- ../laravelproject/serve_config/custom.ini:/usr/local/etc/php/conf.d/custom.ini

database:
build:
context: ./database
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=myuser
- MYSQL_PASSWORD=secret
- MYSQL_ROOT_PASSWORD=docker
volumes:
- ./database/data.sql:/docker-entrypoint-initdb.d/data.sql
command: ['--default-authentication-plugin=mysql_native_password']

站点文件夹中的default-conf
server {

listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

server_name localhost;
root /var/www;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php$is_args$args;
}

location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}

location ~ /\.ht {
deny all;
}

location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
}

conf.d文件夹中的default-conf

upstream php-upstream {
server php-fpm:9000;
}

索引页面工作正常,但是当我添加一条新路由时,它表示来自nginx的404。
我在Docker方面经验不足,并且一直在遵循一些教程进行设置。

谢谢

最佳答案

我找到了解决方法。
我改变了根,它奏效了。

root /var/www/public

关于laravel - Nginx上的Laravel对除索引外的所有路由都说404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59311586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com