写这篇文章记录一下我在宝塔上部署laravel项目遇到过的一些问题,以及最后解决办法。
location / { try_files $uri $uri/ /index.php$is_args$query_string; }123
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.' ); } }); }
在上述代码中把配置文件中的值写入到文本中,发现有的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项目又能够访问啦