Laravel安装及使用中踩的坑

  • 提示没有vender

composer install,如果提示php版本不够安装失败,可以降低laravel版本或升级php版本

  • 打开public/index提示500错误:

  1. .env.example复制更名为.env
  2. 在项目目录下输入php artisan key:generate
  3. 此时.env中会自动生成APP_KEY,重新运行即可
  • 编译器问题:.env文件无法用文本形式打开编辑

  1. Settings -> Editor -> FileTypes
  2. Recognized File Types选中textRegistered Patterns添加.env即可。其它类型文件类推。
  • 项目目录下查看版本

  1. laravel -V查看的是laravel installer的版本
  2. php artisan --version查看的才是框架版本
  • 映射域名到homestead中不生效

  1. 检查共享文件folders映射是否正确
  2. 检查sites中的映射配置是否正确
  3. 是否在hosts文件中配置路由
  • windows下执行./vendor/bin/phpunit提示无该命令

法1:全局安装依赖composer global require phpunit/phpunit
法2:手动将vendor/bin/添加到系统或用户path

  • composer安装组件位置错误

法1:用composer remove移除组件
法2:从composer.json中删除,再进行update

  • npm安装以及换淘宝源

  1. 去node.js下载安装
  2. 换源: npm install -g cnpm --registry=https://registry.npm.taobao.org
  • npm安装警告

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

原因:fsevent是mac系统的依赖项,在win或linux下使用便会出现该警告,可以直接忽略。

  • 数据库迁移执行php artisan migrate错误

PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes")

解决方案:
修改app/Provider/AppServiceProvider.php手动指定长度:

/*引入Schema基类*/
use Illuminate\Support\Facades\Schema;

/*修改函数public function boot()*/
Schema::defaultStringLength(191)    //手动配置迁移生成的默认字符串长度
  • 搭建的博客在本机环境能正常访问,通过hosts中定义的路径访问则会报数据库权限的问题?

原因是.env中的数据库配置为了真机环境中的数据库而不是homestead中的数据库,从而导致homestead中的数据库没有相应的表和数据。当映射到虚拟机时,虚拟机在自己的环境下访问.env中的数据对他而言不存在,乃至于账号本视也不存在。
这个结果也让我…突然反应过来自己用的根本就不是vagrant中的homestead环境,而是真机wamp环境。

  • Homestead的虚拟机登陆密码及mysql登陆密码

虚拟机用户名密码均为homestead,如果在本地控制台打开,直接用vagrant ssh即可免密登陆。
mysql的账户为homestead,密码为secret,在上述虚拟机中可以免密登陆。

  • 依照示例代码打印出来没有上下统计栏

原因:没有安装datatable的依赖

  • virtualboxhomestead中利用npm安装datatable时发现用它安装什么都会失败,甚至给自己升级也会失败,时好时坏,换镜像无用,换版本无用,重装无效

这种问题堪称是最浪费人时间的一种bug,排查了三四个小时,在网上查阅无数个网站,最后发现是虚拟机和npm之间的问题。方案有两种,一种换用yarn,一种直接在windows下用npm安装。
解决步骤1: npm在虚拟机环境下报错
解决步骤2: npm run dev报错

  • nvm安装成功后nvm ls提示没有权限,sudo nvm ls提示没有该命令,切换至root用户时提示没有该命令…

原因:权限问题,把nvm整个安装目录拥有人全部更改为用户,再执行。至于切换root提示没有该命令,应该时没有加入到root的path中。

  • Homestead的管理员账号及密码

sudo passwd root    //重置root用户密码
  • mysql账号没有操作权限

解决方案-使用grant赋权,后续这个问题应该添加到mysql部分。

  • 扫盲

  1. 数据库迁移文件:用于在代码中管理数据库结构的文件,通常配合结构生成器使用(laravel中)
  2. yarn和npm:前端包管理器,后者国内常用的cnpm
  3. SEO:搜索引擎优化

你可能感兴趣的:(PHP使用)