xampp部署laravel-admin爬坑记录

由于工作需要,要用php快速开发一个后台,最快捷的方法就是使用成熟的框架去“复制”不同业务,基础框架选定比较流行的laravel后,在开源社区找到最火的框架laravel-admin,然后就开干。

首先是开发环境,laravel官方推荐的是homestead,一个很不错的虚拟机集成环境,要用vagant和virtualbox(或者其他虚拟机管理软件,如vmware)还有homestead,作者的设计理念很好,兼顾开发和部署运维,但是对我来讲还是有点啰嗦,在网上找了个口碑好一点的php集成开发环境xampp,一路next就OK了,比较符合我把复杂问题简单化的风格,研究了一下他的配置,试成功了就开始安装laravel。

安装laravel需要提前安装Composer,类似于npm的一个php库包管理工具,装好之后用命令安装laravel安装器,命令如下:

composer global require “laravel/installer”

安装完后进入xampp下面的htdocs目录下,这里是这个集成环境中的apache部署项目的位置,输入命令新建laravel项目:

laravel new laravel-admin

由于已经安装了laravel安装器,所以我们可以直接只用laravel命令,新建的项目名叫laravel-admin,等下载过程完毕之后,进入到laravel-admin目录下:

cd laravel-admin

修改.evn文件中的数据库配置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_admin
DB_USERNAME=root
DB_PASSWORD=123456

前提是你要创建一个名叫laravel_admin的数据库,注意他的字符集要设为utf8,脚本如下:

CREATE DATABASE laravel_admin DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

这里有个坑,后面会提到。

再开始下载laravel-admin:

composer require encore/laravel-admin “1.5.*”

后面的版本号不带就会下载最新版的,下载完后执行命令来发布资源:

php artisan vendor:publish –provider=”EncoreAdminAdminServiceProvider”

在下一步安装之前,会有一个大坑,涉及到数据迁移,如果直接安装,会出现以下错误:

[IlluminateDatabaseQueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQ
L: alter table `users` add unique `users_email_unique`(`email`))

在这里卡了一下,找了很多资料,有的说数据库要升级什么的,都不是根本原因,有些说对了解决办法也不对,多番尝试之后发现根本原因是laravel5.5以后默认数据库字符集是utf8mb4,而数据库版本小于mysql5.6或mariadb10.2的字符集只支持utf8,我尝试升级xampp中的mariadb,因为他是10.1的,失败了,所以就去查怎么修改字符集,果然有,在laravel-adminconfig下的database.php文件中将mysql部分修改如下:

‘mysql’ => [
            ‘driver’ => ‘mysql’,
            ‘host’ => env(‘DB_HOST’, ‘127.0.0.1’),
            ‘port’ => env(‘DB_PORT’, ‘3306’),
            ‘database’ => env(‘DB_DATABASE’, ‘forge’),
            ‘username’ => env(‘DB_USERNAME’, ‘forge’),
            ‘password’ => env(‘DB_PASSWORD’, ”),
            ‘unix_socket’ => env(‘DB_SOCKET’, ”),
           
‘charset’ => ‘utf8’,
            ‘collation’ => ‘utf8_unicode_ci’,
            ‘prefix’ => ”,
            ‘prefix_indexes’ => true,
            ‘strict’ => true,
            ‘engine’ => ‘InnoDB’,
        ],

只修改红色部分就好,这也是用xampp间数据库为什么把字符集设为utf8的原因,再执行安装命令就会成功:

php artisan admin:install

主流安装流程就是这样,但是你直接启动还是有问题,官网写的太模糊了,就说直接访问http://localhost/admin/就可以了,怎么可能,官方文档写的这么好我就不写爬坑日志了,找了一圈资料是说url要指向项目的public目录,我把项目名加上public插到url的admin之前,能看到登录页面了,然而输入密码后报错404,我觉得应该是配置的问题,应该是所有的访问路径的项目名和public都应该被忽略掉了,研究一番后,在xamppapacheconfextra的httpd-vhosts.conf文件中加上以下配置:

<VirtualHost *:80>
    DocumentRoot “D:xampphtdocslaravel-adminpublic”
    ServerName localhost
</VirtualHost>

它的作用是把localhost:80访问指向到laravel-admin下的public目录,此时再访问http://localhost/admin/后输入账号密码都是admin,登陆成功,但是页面上有配置错误提示:

Disk [admin] not configured, please add a disk config in `config/filesystems.php`.

找到相应文件,在disk中加上以下配置:

‘admin’ => [
            ‘driver’     => ‘local’,
            ‘root’       => public_path(‘upload’),
            ‘visibility’ => ‘public’,
            ‘url’ => env(‘APP_URL’).’/public/upload/’,
        ],

刷新页面,所有错误提示都消失了,接下来就可以安心开发了。

来源:躺在床上打饱嗝

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月10日
下一篇 2018年11月10日

相关推荐