nginx 上的 Laravel 对除索引之外的所有路由显示 404

2024-03-27

我已经在 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']

站点文件夹中的默认配置

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 文件夹中的默认配置


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

索引页面工作正常,但是当我添加新路由时,它显示来自 nginx 的 404。 我对 docker 没有太多经验,我一直在遵循几个教程来设置它。

Thanks


我找到了解决方法。 我改变了根并且它起作用了。

root /var/www/public
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx 上的 Laravel 对除索引之外的所有路由显示 404 的相关文章

随机推荐

  • 测试互联网连接的最快方法

    C 2008 SP1 我正在使用此代码连接到我们的客户网站 这是针对软件电话应用程序的 在用户拨打电话之前 软件电话必须测试是否存在有效的互联网连接 因此 我要做的就是使用 httpWebRequest 类连接到我们的客户网站 如果响应正常
  • iPhone 电子邮件应用程序启动 URL

    在 iPhone 上启动电子邮件和开始新电子邮件的 URL 是 mailto 电子邮件受保护 cdn cgi l email protection 我只想启动电子邮件应用程序 将用户放在主菜单或收件箱中 mailto 开始撰写新的空白电子邮
  • 在谷歌应用程序脚本中解析 html 的最佳方法是什么

    var page UrlFetchApp fetch contestURL var doc XmlService parse page 上面的代码在使用时会出现解析错误 但是如果我用已弃用的 Xml 类替换 XmlService 类 并设置
  • 跟踪文件(Windows 终端)的硬链接(重新分析点?)?

    如何跟踪文件的硬链接 重新分析点 管道传输到格式列表不会显示目标 至少在 powershell 7 中 你会得到一个小 ascii 箭头 该文件夹位于 env path 中 如果您没有 Windows 终端 则 MicrosoftEdge
  • 权限是不可更改的权限类型

    背景 我正在尝试新的 Tiles 和 TileService 并决定重新创建 USB Tethering 磁贴CyanogenMod https github com CyanogenMod android frameworks base
  • 现在N层架构意味着什么?

    从传统意义上讲 N 层意味着将应用程序分成 层 并将每个 层 放在不同的服务器上 这样做至少有 3 个原因 维护 a 代码维护 更容易进行错误修复和功能添加 b 硬件维护 关闭一台服务器不会中断其他层的服务 性能 一台服务器的速度通常不够快
  • Python - 在这种情况下列表理解是否有效?

    这是Python中的输入 脏 列表 input list n data1 n data2 n n data3 n 每个列表元素包含带有换行符的空格或带有换行符的数据 使用下面的代码清理它 cleaned up list data strip
  • 在 Archlinux 上通过 Pyenv 编译 Python 但缺少 OpenSSL

    我正在尝试在新安装的 ArchLinux 上通过 pyenv 安装 python pyenv install 3 5 1Downloading Python 3 5 1 tar xz gt https www python org ftp
  • Javascript 字符串替换为计算

    有没有办法解决javascript中字符串中的数学表达式 例如 假设我想生成字符串 Tom has 2 apples Lucy has 3 apples Together they have 5 apples 但我希望能够替换变量 我可以通
  • 基于属性之一的 JSON 模式 anyOf 验证

    我很难弄清楚如何根据其中一个属性的值验证对象数组 所以我有一个 JSON 对象 例如 items name foo otherProperty bar name foo2 otherProperty2 baz otherProperty3
  • initWithNibName 没有被调用

    我需要将一些自定义逻辑放入我的 iPhone 应用程序中 以便根据您运行的 iOS 版本 选择不同的 XIB 文件 即 iPhone 或 iPad 将显示不同的 XIB 文件 我从第一天起就构建了整个 iPhone 应用程序 一切都很好 在
  • 使用构建器模式最多设置一次值

    Java 中是否有标准做法 在使用构建器模式时 确保成员变量最多设置一次 我需要确保 setter 被调用 0 或 1 次 但绝不会更多 我想扔一个RuntimeException某种类型的问题 但我担心同步问题以及该领域的最佳实践 什么也
  • unordered_set::find 的复杂性可以预测吗?

    在寻找适合我正在构建的应用程序的容器时 我浏览了以下文档unordered set 鉴于我的应用程序通常只需要insert and find函数 这个类看起来相当有吸引力 然而 我有点推迟了 因为find是 O 1 摊销 但最坏情况是 O
  • 页面刷新和带有 url 重写的角度路由后,cookie 计数为零

    我正在使用带有 net core 2 0 和 Angular 4 的 Angular Spa 模板 页面刷新后 我得到的 cookie 数量为零 事实上 页面刷新后我没有在 HttpContext 中得到任何内容 Here is my co
  • 在应用程序内将“精简版应用程序”转换为“专业应用程序”

    我在 App Store 中有两个应用程序 一种是免费版本 另一种是付费版本 我需要在应用程序本身中有一个名为 升级 的按钮 每当用户单击该按钮时 我们是否可以为会员提供使用应用内购买从精简版升级到专业版的功能 我们有直接在 iOS 6 中
  • 使用 BufferedReader 读取行并检查文件末尾

    如果我的代码中有这样的东西 String line r readLine Where r is a bufferedReader 如果下一行是文件末尾 如何避免崩溃 即空 我需要阅读下一行 因为那里可能有一些我需要处理的东西 但如果没有 代
  • Git 中的文件限制是多少(数量和大小)?

    有谁知道Git对文件数量和文件大小的限制是多少 此消息来自可以帮助您解决一些其他限制 CVS 即它实际上最终几乎面向 一个文件 一次 模型 这很好 因为你可以拥有一百万个文件 然后只检查 其中一些 你甚至永远不会see对方的影响 999 9
  • 如何将时间序列中的列除以 R 中的第一个值?

    我有下面的代码工作 但一定有更好的方法 file lt http s3 amazonaws com assets datacamp com production course 1127 datasets tmp file csv x lt
  • 如何重写Scheme中的“begin”?

    As the 维基百科 http en wikipedia org wiki Scheme programming language Standard forms文章解释说 begin在Scheme中是一种库形式 可以使用更基本的形式重写
  • nginx 上的 Laravel 对除索引之外的所有路由显示 404

    我已经在 Docker 上使用 nginx php 7 4 fpm 和 mysql 8 设置了 Laravel 我是 Docker 新手 我一直在学习几个教程 并以某种方式设法在单独的容器中运行每个服务 并在不同的目录中运行代码 只有索引页