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

一、服务器运行环境

  • 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,删除该函数,关闭禁用
本作品采用《CC 协议》,转载必须注明作者和本文链接
hmlSunShine
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!