Linux宝塔上部署laravel项目报错403/404/500 - 小众知识

Linux宝塔上部署laravel项目报错403/404/500

2022-08-18 06:13:14 苏内容
  标签: laravel/Linux/宝塔
阅读:7183

写这篇文章记录一下我在宝塔上部署laravel项目遇到过的一些问题,以及最后解决办法。

  1. 打开报403错误
    在这里插入图片描述
    最大可能是你的网站根目录没有设置为public
    在网站配置设置一下就好
    在这里插入图片描述
  2. 报404错误
    在这里插入图片描述
    伪静态,没有配置,选择laravel5模板
    在这里插入图片描述
    或者输入以下代码保存
location / {  
	try_files $uri $uri/ /index.php$is_args$query_string;  }123
  1. 500错误。上面都是nginx报的错,这个500是laravel自己报的错
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/29cca35e5af34eaf92ad7c520ced10a6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQW1iZXJfMjg=,size_20,color_FFFFFF,t_70,g_se,x_16
    首先看debug打开没有,因为这个500错误是比较笼统的,没有打开调试显示详细信息。config/app.php
    在这里插入图片描述
    修改成true,根据显示的错误详细信息,进一步解决
  2. No application encryption key has been specified. 我的debug打开后就出现了这样的错误
    在这里插入图片描述
    可能是.env文件加载出错。最后我找到的方法是打开php配置,禁用函数putenv,删除掉,重启php
    在这里插入图片描述
    再次访问就就可以打开了
    在这里插入图片描述
  3. 进入后台管理系统时,报了以下这个错,就是一些需要的php扩展没有安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    安装好以上扩展,然后再次打开 就可以访问
    在这里插入图片描述

laravel集成测试出现接口报500错误

laravel初学者,昨天在捣鼓自己博客时,一直刷新页面发现有的接口没有返回数据,F12发现报500 Internal Server Error错误,而且是随机出现,这下我一脸懵逼。这是什么情况
在这里插入图片描述
经过有经验的前辈提醒,查看错误日志。错误日志在项目下的storage/logs/laravel.log文件中,打开一下结果发现出现了下图的错误
在这里插入图片描述
No application encryption key has been specified 这句话的意思大概是 未指定应用程序加密密钥。然后查看抛出异常文件的位置,发现抛出异常的方法所在的文件在vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php

 protected function key(array $config)
    {
        file_put_contents('a.txt',serialize($config).PHP_EOL, FILE_APPEND);//序列化写入到文本中
        return tap($config['key'], function ($key) {
            if (empty($key)) {
                throw new RuntimeException(
                    'No application encryption key has been specified.'
                );
            }
        });
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在上述代码中把配置文件中的值写入到文本中,发现有的key值为空,
在这里插入图片描述
为什么会出现这种情况呢,别的值都有,唯独这个key是空的。那么应该是配置文件中的APP_KEY没有读取到,而且.env文件中存在APP_KEY。再看config/app.php文件,key是.env中的APP_KEY。
所以关键就是给key给一个默认值,直接把.env中的APP_KEY值复制下来给key加上个默认值,这个问题就解决了
在这里插入图片描述


以前运行的好好的laravel项目忽然不能启动....php

环境排查:

1.nginx
查看nginx服务器是否启动,命令行输入如下命令nginx

ps aux|grep nginx

或者直接在浏览器里输入127.0.0.1,若是获得下图
laravel

说明nginx是开启状态,若是不是,请重启nginx服务器,命令行输入如下命令,固然个人nginx安装目录在/usr/local/bin/nginx下,若是不知道本身的nginx安装目录能够使用which nginx命令查看浏览器

/usr/local/nginx/sbin/nginx 或者使用sudo nginx命令启动

2.php服务没有开启
检测方法:若是第一步已经成功开启了nginx,但仍是报502错误,能够在浏览器打开任意非laravel的php项目,若是不能正常打开,说明php服务没有开启
解决方案
检查电脑安装的php版本,若是是使用的laravel的valet须要配置php7.1版本,这个比较恶心,还得进行版本切换服务器

brew list

如图
php7

我电脑里有两个版本,一个是php 实际是php7.2这个是升级升上来的,一个是php7.1,输入一下命令php-fpm

brew services start php@7.1 //或者直接sudo php-fpm

laravel项目又能够访问啦


扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1