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="Encore\Admin\AdminServiceProvider"

在下一步安裝之前,會有一個大坑,涉及到數據遷移,如果直接安裝,會出現以下錯誤:

[Illuminate\Database\QueryException]
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-admin\config下的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都應該被忽略掉了,研究一番後,在\xampp\apache\conf\extra的httpd-vhosts.conf文件中加上以下配置:

<VirtualHost *:80>
    DocumentRoot "D:\xampp\htdocs\laravel-admin\public"
    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/',
        ],

刷新頁面,所有錯誤提示都消失了,接下來就可以安心開發了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章