lnmp1.5 环境下部署 Laravel 项目的问题总结
4

一、服务器运行环境

  • centos7.4 64位
  • lnmp1.5(php 7.2.6 ,mysql5.7)

二、Laravel项目

  • laravel5.5
  • 支付宝手机网站支付SDK
  • 验证码类(gregwar/captcha": "1.*)
  • ......

三、问题点

利用lnmp vhost add 创建虚拟主机并配置路径和域名信息后,访问项目,显示500

  1. Laravel项目需要对目录 storage/, bootstrap/cache, public/赋予读写权限
    //赋予三个目录读写权限
    chmod o+rwx storage/ -R
    chmod o+rwx bootstrap/cache/ -R
    chmod o+rwx public/ -R

    2.用 lnmp vhost add 命令 添加的虚拟域名会在根目录生成 .user.ini,这个.user.ini不删除会一直报500错误

    //在虚拟主机指定的目录里执行
    chattr -i .user.ini    //去掉文件保护
    rm .user.ini    //删除文件
    //注释掉fastcgi.conf文件的最后一行
    # fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

项目只有首页才能访问

  1. nginx接到请求后先判断是否是静态资源文件或目录,如果不是默认处理是指向404,需要改成返回动态处理
    //该域名下的配置文件或虚拟主机配置文件添加
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

支付宝SDK和验证码扩展包纷纷报错

  1. PHP升级到7.2的版本更新问题,参见: https://mp.weixin.qq.com/s/60pohj2n7Pxba3G9vY92yg
    //each函数已被废弃(支付宝SDK的apoClient文件343行用了each,改成foreach即可)
    while (list ($key, $val) = each ($para_temp)) {
    //修改成
    foreach($para_temp){
    //当传递一个无效参数时,count()函数将抛出warning警告:(验证码扩展用的版本比较低,很多这种写法)
    //更新到最新版本(引出composer的两个问题)
    composer install gregwar/captcha": "dev-master
    ...

lnmp1.5自带composer1.7.2,但是执行composer require的时候显示报错

  1. 执行 composer require 报错[ErrorException]proc_get_status() has been disabled for security reasons
    //从报错可以看出是关闭了PHP的   proc_get_status()函数
    //打开php.ini文件,搜索 proc_get_status(),删除该函数,关闭禁用
    disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,proc_open,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
    //二次报错[Symfony\Component\Process\Exception\RuntimeException] The Process class relies on proc_open,同理.搜索proc_open,删除该函数,关闭禁用
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 1

都用7.2了

5天前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!