最近有个个人项目筹备的时候准备用下laravel框架,之前都是支持的ThinkPHP框架的;但是感觉ThinkPHP框架的变动有点大,而且最新的6和5还有3的跨度有点大,升级成本有点高,未来如果需要升级更高版本的话有点小担心,所以新项目选型使用laravel。然后网上看了下,laravel-admin的使用用户比较多,所以考虑使用下。安装的时候有些点,还有影响到了安装,所以记录下,希望看到的各位不要再踩坑
准备的链接:
laravel官网安装文档:
https://docs.golaravel.com/docs/5.5/installation
laravel-admin安装文档:
https://github.com/z-song/laravel-admin
环境准备:
使用composer安装laravel
- composer global require "laravel/installer"
安装好后使用laravel添加新的项目 【blog就是要新建的项目的名称】
- laravel new blog
进入到项目文件夹【这步网站文档没有提,但是如果不键入的话我的都是报错的】
- cd blog
然后配置下项目【其中“5.5.*”是安装特定版本加的,如果需要安装最新的话就是去除这个】
- composer create-project --prefer-dist laravel/laravel blog "5.5.*"
使用artisan运行下代码看下
- php artisan serve
按照提示在浏览器打开链接就可以看到我们的laravel安装好了。
下面进行laravel-admin的安装:
还是使用composer安装
- composer require encore/laravel-admin
配置项目
- php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
安装【或者叫编译吧】项目
- php artisan admin:install
使用浏览器打开链接http://localhost/admin/就可以访问到laravel-admin了账号密码都是admin
安装过程中的问题
首先是需要准备好需要的环境,然后因为大家都知道的原因,可以切换到国内镜像
问题一:
安装laravel一直报错各种的证书或者网络错误。在确认了开启openssl后,其他的不用看,切换下源镜像位置
问题二:
到最后一步的时候一直提示数据库错误;
第一种:没有配置数据库
在项目目录文件夹找到 .env文件修改数据库配置
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
第二种:数据库比较久或者支持的字符类型不足或者设置的不对
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
修改文件 config.php\databases.php
替换原来的
‘charset’ => ‘utf8mb4’,
和
‘collation’ => ‘utf8mb4_unicode_ci’,
变成
‘charset’ => ‘utf8’,
和
‘collation’ => ‘utf8_unicode_ci’,
最终的配置如下
- 'mysql' => [
- 'driver' => 'mysql',
- 'url' => env('DATABASE_URL'),
- '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' => null,
- PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
- ]) : [],
- ],
伪静态设置的记录:
- Options +FollowSymLinks
- RewriteEngine On
-
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^ index.php [L]
- location / {
- try_files $uri $uri/ /index.php?$query_string;
- }