【问题标题】:Laravel 8 404 api routes in productionLaravel 8 404 api 路线在生产中
【发布时间】:2021-08-23 05:00:41
【问题描述】:

我以前从未遇到过这个问题,它运行良好,在我重新安装服务器后,当我打电话给我的0.0.0.0/api/students/show 时,我现在得到了一个404

我在 SSH 上调用了composer production 来创建最新的自动加载器。清除了 php artisan 的缓存,这是设置 Laravel 生产应用程序的正常步骤。但是当我调用 API 端点时,我仍然得到404

也许问题出在chmod 权限上?存储等已经做好了……

【问题讨论】:

  • stackoverflow.com/questions/62750155/…你检查过apache设置了吗?
  • @keizah7 我已经这样做了。没用
  • 其他路由正常吗?请运行php artisan route:list 以检查您是否有此 api 路由
  • 如果答案有效,请单击其左侧的灰色复选标记。
  • @peterhillie 我创建了一个答案,您可以将其标记为最佳

标签: php laravel


【解决方案1】:

在你的apache2.conf 中确保你有AllowOverride All 而不是AllowOverride none

示例

<Directory /var/www/html/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Original Answer

【讨论】:

  • 别忘了提到你有多个目录路径。您的基本路径和直接路径。
【解决方案2】:

您根本不需要写Directory

这是我在sites-available 文件夹中自定义的.conf 工作页面文件:

<VirtualHost *:80>
    ServerName matiaslauriti.dev
    ServerAlias www.matiaslauriti.dev

    Redirect 301 / https://matiaslauriti.dev
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName matiaslauriti.dev
        ServerAlias www.matiaslauriti.dev

        DocumentRoot /var/www/html/public

        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateFile /etc/letsencrypt/live/matiaslauriti.dev/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/matiaslauriti.dev/privkey.pem
    </VirtualHost>
</IfModule>

我的apache2.conf 上的内容是默认的,我没有更改任何内容:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options +FollowSymLinks -Indexes
    AllowOverride All
    Require all granted
</Directory>

【讨论】:

  • 为什么这是你的解决方案,而不是仅仅改变 .conf ?
  • 因为如果您安装apache2 并且不更改apache2.conf 中的任何内容,则该配置是默认配置,并且您想要添加到您的apache 的任何.conf,您必须添加它在sites-available 中,然后使用命令a2ensite NAME_OF_FILE 启用该conf 或将该文件的符号链接到sites-enabled 并重新启动或重新加载apache ......这是正常的方式......永远不要在@ 987654333 中添加站点@ 因为这不是正确的方法,即使你能做到,你也不应该......这是基本的apache2 配置......
猜你喜欢
  • 2021-09-14
  • 2016-06-01
  • 2021-11-06
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 2018-12-07
相关资源
最近更新 更多