下面由Laravel教程栏目给大家介绍Laravel项目部署到线上需要注意的问题 ,希望对需要的朋友有所帮助!

准备部署 Laravel 应用到生产环境时,却出现了以下一些问题,你在本地上基本不会出现问题,但是到线上很多问题都出来了。整理了一些问题与bug,希望在你部署laravel项目的时候,如果出现类似问题,可以用得到吧! 部署不出现任何问题,那就再再好不过了。

首先,我们再做调试的时候,请先开启php显示错误,以便做调试

vim /usr/local/php/etc/php.ini

修改

display_errors = Off

改为

display_errors = On

改完后记得要重启服务器。

1 目录权限问题

为了运行 Laravel,我们需要为一些项目目录配置权限.

Laravel 项目需要对目录 storage/, bootstrap/cache, 赋予读写权限

//赋予三个目录读写权限chmod -R 777 bootstrap/chmod -R 777 storage/

如果你用的是一键安装包lnmp,请注意,LNMP 一键安装包中含有.user.ini,权限会被拒绝。

需使用:

chattr -i /{目录}/.user.ini

并删除:

rm .user.ini

2 Nginx的配置文件的问题

假设你的nginx.conf文件的路径是放在这里:/usr/local/nginx/conf/nginx.conf文件,找到 server{}字段中

如下代码

#include enable-php.conf;

你的nginx里存不存在这个文件,请注释,因为这个会导致500错误。原因是:

引入了 php 配置,其中有句 try_files 开启就有报错.

#新增 支持laravel 优雅链接,在laravel 文档里有说明

location / {

try_files $uri $uri/ /index.php?$query_string;}#新增 支持php 的配置

location ~ \.php$ {#不能有下面这句 try_files ,不然报错500# try_files $uri /index.php =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;#这句注意 后面是.sock 不是127.0.0..1fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}

附件:给一个laravel的nginx配置

server{

listen 80;

server_name 网站域名;

index index.php index.html index.htm default.html default.htm default.php;

root /var/www/html/act/public; //网站存放目录,laravel的入口文件在public里

#include rewrite/none.conf;

#error_page 404 /404.html;

# Deny access to PHP files in specific directory

#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

#include enable-php-pathinfo.conf;

#添加以下这句就好了

location / {

try_files $uri $uri/ /index.php?$query_string;

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

location ~ \.php$ {

root /var/www/html/act/public;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}# if (!-e $request_filename){# rewrite ^/(mo_bile|admin|physician|home|seller)/(.*)$ /$1/index.php?$2;# }

location ~ \.php$ {

fastcgi_param PATH_INFO $request_uri;

}

access_log /home/wwwlogs/hd.log;}

3 PHP扩展要记得开启

部署项目之前要先确保php.ini里的扩展已经开启,开启的扩展有:php_fileinfo, php_mbstring, php_openssl,这几个都是laravel需要的。

不管是修改了nginx还是php.ini,修改完后,请记得要重启nginx与php-fpm。

4 laravel项目在git上clone到线上可能会缺少一下核心库,开启php错误显示会看到类似以下的问题

Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/***/bootstrap/autoload.php) is not within the allowed path(s): (/home/wwwroot/***/public/:/tmp/:/proc/) in /home/wwwroot/***/public/index.php on line 22Warning: require(/home/wwwroot/***/bootstrap/autoload.php): failed to open stream: Operation

not permitted in /home/wwwroot/***/public/index.php on line 22Fatal error: require(): Failed opening required

'/home/wwwroot/***/public/../bootstrap/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/***/public/index.php on line 22

此时你需要composer 更新第三方 vendor 组件

在项目目录下执行composer update,请自行更新composer到最新版本。

如果在更新中出错,请网上查找相应的composer错误,这个很好解决的。

5 laravel从git上clone到线上目录出现app_key的错误的话的,请在.env文件里加app_key。

//生成key,在项目根目录下执行命令来获取laravel项目app_key

php artisan key:generate

//或者可以修改配置文件.env中的APP_KEY参数

APP_KEY=base64:akjIOLlieujKw0yEUbwjJdP5lPWHkk3uw39CnAhfdasfsaddfggghssda+

6 laravel上传到线上出现The cipher and / or key length are invalid 的

这个问题很多都是读取.env的时候为null造成的。

首先你应该检查config的app.php里是否有存在key与cipher的配置

'key' => env('APP_KEY'),

'cipher' => 'AES-256-CBC',

有存在也要查找.env里是否有app_key。有存在的话,请操作:

php artisan config:cache

因为是env失效,所以接下来你要做的是清除缓存,重新来过,重要的一步就是要重新启动nginx,php-fpm

7 Laravel 中 seeder 执行失败

当第一次执行完 php artisan db:seed 后,增加新的 seeder 文件时执行会报错。错误信息如下 [ReflectionException] Class ***TableSeeder does not exist

确保新的 seeder 文件和全局 database seeder 是在同一个 seeder 目录下了,仍然会出现这个问题的原因是: 我们需要清理下之前执行生成的 classmap 信息。

在控制台中执行 composer dump-autoload,然后再执行 php artisan db:seed

部署到线上的经常会出现的,我遇到的就这么些问题,也许你会遇到更多的问题,或许你不会遇到问题。或许上面我遇到的问题能给予你一些帮助吧!

php larval 项目部署,Laravel项目部署到线上需要注意的问题相关推荐

  1. 《抖音小店无货源项目玩法特训》线上第九期

    Hi 大家好 我是醒醒, 好久不见,着实让人想念 <抖音小店无货源项目玩法特训>线上第九期 原本计划着三月份安排一部分学员线下来公司坐坐,因为很多小伙伴已经认识一两年了,都是老伙计了,到了 ...

  2. 部署laravel项目

    1 先登录到服务器上,将代码克隆下来 git clone 项目地址 2 避免composer太慢,启用本镜像服务 可以先安装 apt-get install zip,unzip,php7.0-zip ...

  3. linux lnmp1.5 部署laravel项目

    linux version: ubuntu 18.04 lnmp version: 1.5 使用composer创建一个 laravel项目 安装composer: https://www.jians ...

  4. linux lnmp15 部署laravel项目

    使用composer创建一个 laravel项目 安装composer: https://www.jianshu.com/p/ce1d36cbe00f composer create-project ...

  5. 部署Laravel项目到centos服务器上

    部署步骤 git clone git@github.com:FamousMai/laravel02.git cd laravel02 composer install 遇到错误,出师不利呀 搜了一下, ...

  6. 【原创】项目估算-项目管理MSN群线上讨论(2009.6.30)

    今天是项目管理MSN群的第二次集体讨论,话题是有关项目估算.今天的讨论涉及到:估算的参考数据哪里来.代码行估算的前提.企业规模与估算精度.投标前的估算.如何提高新手的估算精度等内容.以下记录讨论完整过 ...

  7. Laravel项目部署到线上需要注意的一些问题

    Laravel项目部署到线上常见问题 1 目录权限问题 2 Nginx的配置文件的问题 3 PHP扩展要记得开启 4 git clone 缺少核心库 5 git clone app_key的错误 6 ...

  8. php项目部署启动不了,Laravel项目部署到线上需要注意的问题

    原标题:Laravel项目部署到线上需要注意的问题 Laravel项目部署到线上需要注意的问题 准备部署 Laravel 应用到生产环境时,却出现了以下一些问题,你在本地上基本不会出现问题,但是到线上 ...

  9. Mac 使用 Valet 部署 PHP 项目

    先安装valet 1.安装 Homebrew 软件包管理工具,如果已经安装,可以跳过此步骤 /usr/bin/ruby -e "$(curl -fsSL https://raw.githu ...

最新文章

  1. PAT (Basic Level) Practise:1012. 数字分类
  2. STM32 基础系列教程 20 - RTC
  3. vsprintf用法解析
  4. 我理解的HBSE应用场景(交流篇)
  5. 【网络基础】 PAUSE帧总结
  6. 计算机网络基础 第4章 龚娟,计算机网络基础 人民邮电 龚娟 第4章习题答案
  7. VC2010 MFC文档类菜单快捷键无法加载问题
  8. Intelli IDEA 快捷键操作,咱来点不一样的
  9. Eclipse启动项目报启动上下文失败问题解决方案总结
  10. yolov3选取正负样本
  11. 电脑的热点手机连接不上怎么办
  12. eslint 无法格式化ts_vscode 使用ESLint 自动检查,保存时自动格式化
  13. WSO2一般使用教程
  14. 图片心理性格测试
  15. 《看不见的森林:林中自然笔记》书摘一
  16. wcdma系统随机接入过程的流程图_WCDMA系统随机接入过程浅析
  17. java xmap_xml和java Bean的直接转换,Xmap
  18. java文件损坏_用java下载文件 - 文件损坏
  19. 使用Tensorboard绘制网络识别准确率和loss曲线
  20. 江苏大学和南邮的计算机专业,江苏这所大学很憋屈,与南京大学同出一脉,认可度高却不是211...

热门文章

  1. Android上传文件至服务器
  2. 1-1-Html技术
  3. sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理
  4. edxposed显示未安装_为什么LED显示屏经常跳闸
  5. matlab控制算法C语言,PID算法Matlab仿真程序和C程序
  6. 设计字体打包_再也不用熬夜设计字体了!525款世界级绝美PS字体包免费送
  7. 中国 人民大学计算机考研分数线,中国人民大学2010年计算机考研复试分数线
  8. 清新淡雅水彩手绘花卉插画素材,psd分层好用!
  9. 难得好图|水墨国画56个民族插画
  10. 极具设计感的专辑分类设计,给你带来不一样的灵感