php artisan 错误,Laravel 安装执行php artisan migrate 出现字段过长错误

最近在自己研究Laravel

Laravel版本:5.6

PHP版本:7.1.9

Mysql版本:5.7.19

Apache版本:2.4.27

系统版本:windows10

首先要保证电脑安装了composer,和node.js

执行命令

composer global require "laravel/installer"

打开控制台 ,进入你要创建的目录,安装项目(tests 为你的项目文件夹名称)

laravel new tests

也可以执行命令

composer create-project --prefer-dist laravel/laravel tests

我用的WAMP可自主切换php版本,因为laravel5.6要求PHP最低版本在7.1,所以我从5.6切换到7.1,

phpinfo显示版本已经是7.1,然而安装laravel系统提示我php版本太低,woc。

最后找到了原因,改变了php版本还要配置系统变量。如图。

b0568cad73118613527efd2123939df8.png

在web服务器配置项目根目录在public下,具体不赘述。

配置数据库 在.env文件中配置好数据库。

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=laravels

DB_USERNAME=root

DB_PASSWORD=

laravel自带了后台登录注册功能,不想写代码啊,所以就干脆直接用他们了。

执行命令:

php artisan migrate

居然报错了!

F:\laraveltest\tests>php artisan migrate

Migration table created successfully.

Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

at F:\laraveltest\tests\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664

660|         // If an exception occurs when attempting to run a query, we'll format the error

661|         // message to include the bindings with SQL, which will make this exception a

662|         // lot more helpful to the developer instead of just the database's errors.

663|         catch (Exception $e) {

> 664|             throw new QueryException(

665|                 $query, $this->prepareBindings($bindings), $e

666|             );

667|         }

668|

Exception trace:

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

F:\laraveltest\tests\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

2   PDOStatement::execute()

F:\laraveltest\tests\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

Please use the argument -v to see more details.

纳闷了半天,几番搜索,终于找到了原因。

app\Providers\AppServiceProvider.php

找到这个文件加入下面标红代码即可。

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider

{

public function boot()

{

//

Schema::defaultStringLength(191);

}

}

1e53f823ad92746f64ba9c97a74b6c3a.png

然后重新执行命令就可以看到这样的信息了

F:\laraveltest\tests>php artisan migrate

Migration table created successfully.

Migrating: 2014_10_12_000000_create_users_table

Migrated:  2014_10_12_000000_create_users_table

Migrating: 2014_10_12_100000_create_password_resets_table

Migrated:  2014_10_12_100000_create_password_resets_table

最后执行命令

php artisan make:auth

返回登录界面,可以登录和注册了,忘记密码要发邮件的时候,记得配置.env文件

MAIL_DRIVER=smtp

MAIL_HOST=smtp.exmail.qq.com//自己设置的邮件发送服务器

MAIL_PORT=465//端口号

MAIL_FROM_ADDRESS=maxxxxo@zcidcs.com//自己的邮箱

MAIL_USERNAME=maxxxxo@zcidcs.com//发送者名称

MAIL_PASSWORD=*****************//邮箱密码

MAIL_FROM_NAME=maxxxxo//来源名称

MAIL_ENCRYPTION=ssl//加密方式

在服务器上部署项目时踩的坑

ubuntu16.04+php7.0+mysql5.7+apache2.4

创建项目

cd /var/www/html/

composer create-project --prefer-dist laravel/laravel blog "5.5.*"

cd /var/www/html/blog

cp .evn.example .evn

chmod -R 777 /var/www/html/blog

chown -R www-data:www-data /var/www/html/blog/bootstarp

chown -R www-data:www-data /var/www/html/blog/storage

访问域名出错

Whoops, looks like something went wrong。

打开config/app.php修改

'debug' => env('APP_DEBUG', true),

然后看报错信息

RuntimeException

No application encryption key has been specified.

解决办法

cd /var/www/html/blog

php artisan key:generate

刷新页面,正常了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值