使用composer安装laravel-admin及其过程中遇到的坑

简介: 使用composer安装laravel-admin及其过程中遇到的坑

前提:已安装好laravel(5.5以上版本),并且能够运行,设置好数据库连接并且能成功连接

进入项目目录,使用composer安装报如下错误:

$ composer require encore/laravel-admin
Using version ^1.6 for encore/laravel-admin
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
VirtualAlloc() failed: [0x00000008] ▒洢▒▒▒㣬▒޷▒▒▒▒▒▒▒▒▒
VirtualFree() failed: [0x000001e7] ▒▒ͼ▒▒▒▒▒▒Ч▒ĵ▒ַ▒▒
VirtualAlloc() failed: [0x00000008] ▒洢▒▒▒㣬▒޷▒▒▒▒▒▒▒▒▒
VirtualFree() failed: [0x000001e7] ▒▒ͼ▒▒▒▒▒▒Ч▒ĵ▒ַ▒▒
PHP Fatal error:  Out of memory (allocated 511705088) (tried to allocate 4096 bytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220
Fatal error: Out of memory (allocated 511705088) (tried to allocate 4096 bytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220

看错误内容为内存不足,于是修改php.ini中内存限制参数为-1,即不限制PHP内存

memory_limit = -1

重启服务器,再次安装,还是报相同错误,于是经过一番谷歌百度,无非就是增大内存限制、更新composer等等。具体可以参考以下两篇文章How to solve Composer install/update error: VirtualAlloc() failed: [0x00000008] 和 Composer: PHP Fatal error: Out of memory || Setting memory_limit doesn't work

但是最终的结果都是没有效果,还是一如既往地报内存不足,无奈只能重启电脑再试,结果重启后运行安装命令laravel-admin成功安装

$ composer require encore/laravel-admin
Using version ^1.6 for encore/laravel-admin
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: encore/laravel-admin
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

接下来按照laravel-admin进行资源发布:

$ composer require encore/laravel-admin
Using version ^1.6 for encore/laravel-admin
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: encore/laravel-admin
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

然后运行安装命令,报出如下错误:

$ php artisan admin:install
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
   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 `tb_users` add unique `tb_users_email_unique`(`email`))
  at D:\bd\treasure_box\vendor\laravel\framework\src\Illuminate\Database\Connect
ion.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 th
is exception a
    662|         // lot more helpful to the developer instead of just the databa
se's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|
  Exception trace:
  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42000]: Syntax error or acce
ss violation: 1071 Specified key was too long; max key length is 1000 bytes")
      D:\bd\treasure_box\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOStatem
ent.php:119
  2   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Sp
ecified key was too long; max key length is 1000 bytes")
      D:\bd\treasure_box\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOStatem
ent.php:117
  Please use the argument -v to see more details.

查询资料发现需要修改数据库连接设置config/databases.php如下:

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => 'InnoDB',

设置好后再次运行,成功安装:

$ php artisan admin:install
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
Migrating: 2016_01_04_173148_create_admin_tables
Migrated:  2016_01_04_173148_create_admin_tables
Database seeding completed successfully.
Admin directory was created: \app\Admin
HomeController file was created: \app\Admin/Controllers/HomeController.php
AuthController file was created: \app\Admin/Controllers/AuthController.php
ExampleController file was created: \app\Admin/Controllers/ExampleController.php
Bootstrap file was created: \app\Admin/bootstrap.php
Routes file was created: \app\Admin/routes.php

运行服务:

 $ php artisan serve
 Laravel development server started: <http://127.0.0.1:8000>


目录
相关文章
|
SQL 监控 关系型数据库
ClickHouse快速入门 2
ClickHouse快速入门
686 0
|
JavaScript 前端开发
JS之url进行编码和解码(三种方式)
JS之url进行编码和解码(三种方式)
19877 2
|
11月前
|
存储 SQL 关系型数据库
云端问道20期方案教学-体验RDS通用云盘核心能力
本文整理自杨浩磊(木信)老师在云端问道20期方案教学中的分享,主要介绍了RDS通用云盘的核心能力。内容涵盖四个方面:1) 初识RDS通用云盘,介绍其多级存储架构和工作原理;2) 核心能力,包括IO加速、IO突发和数据归档;3) 方案及应用案例,展示如何通过RDS通用云盘提升性能并降低成本;4) 线上活动与权益,提供免费试用和超值礼包等优惠信息。RDS通用云盘通过缓存层、数据层和冷存层的结合,实现了高性能与低成本的平衡,帮助企业有效应对数据库运维挑战。
157 0
云端问道20期方案教学-体验RDS通用云盘核心能力
|
SQL 安全 算法
BugKu CTF(Crypto):[+-<>] & 把猪困在猪圈里 & 你喜欢下棋吗 & 小山丘的秘密
BugKu CTF(Crypto):[+-<>] & 把猪困在猪圈里 & 你喜欢下棋吗 & 小山丘的秘密
|
11月前
|
存储 关系型数据库 MySQL
MySQL中为什么要使用索引合并(Index Merge)?
通过这些内容的详细介绍和实际案例分析,希望能帮助您深入理解索引合并及其在MySQL中的
582 10
|
安全 网络安全 数据安全/隐私保护
docker服务未启动
【10月更文挑战第2天】
967 3
|
JSON API PHP
如何使用PHP开发API接口?
本文详细介绍了如何使用PHP开发API接口,涵盖从基础概念到实战步骤的全过程。首先解释了API接口的基本原理,包括HTTP协议、REST架构风格、JSON格式和OAuth认证机制。接着介绍了开发环境的设置,包括PHP安装、Web服务器配置、数据库设置等。文章还探讨了API开发的完整流程,从需求确定、框架选择、端点设计到代码编写、测试、安全性考量及性能优化。最后通过一个实战案例演示了如何创建一个简单的API端点,并讨论了部署与监控的方法。
588 0
|
存储 NoSQL 定位技术
如何在Redis中快速推算两地之间的距离?——Geo篇
Redis 3.2 引入Geo类型,支持地理位置数据存储和计算,如距离和范围查询。使用`GEOADD`将城市经纬度添加至`zset`中,通过`GEOPOS`获取坐标,`GEODIST`计算距离,`GEORADIUS`查找指定范围内的城市。Redis的Geo功能适用于快速的地理位置服务,如附近搜索和配送范围分析。利用`ZSET`操作可增删位置数据,简化地理空间应用开发。
368 0
|
安全 Java
Java中的集合类性能比较与选择
Java中的集合类性能比较与选择
|
JSON 搜索推荐 定位技术
地图主题编辑器使用教程
地图主题编辑器使用教程
383 0