php 后台配置系统,使用 laravel-admin 配置后台管理系统
內(nèi)容有點(diǎn)多,就不說(shuō)別的了。。
需要一個(gè)簡(jiǎn)單的后臺(tái)管理系統(tǒng),對(duì)接數(shù)據(jù)庫(kù)中的用戶信息表,完成基本的增刪改查操作。
最好支持權(quán)限管理;有便捷的接口可供調(diào)用(不需要深度定制);前端界面和交互美觀簡(jiǎn)潔,足夠“現(xiàn)代化”;架構(gòu)明晰,配置簡(jiǎn)單,可快速成型等等。
幾經(jīng)查找,感覺(jué) laravel-admin 這個(gè)框架還不錯(cuò)。雖說(shuō)文檔算不上完善,小踩幾坑,沒(méi)怎么太費(fèi)事就構(gòu)建好了。值得記錄一下。
后臺(tái)管理系統(tǒng)
一、安裝 Laravel 環(huán)境
laravel-admin 需要 PHP 7+ 和 Lavavel 5.5+ ,我當(dāng)前使用的是 VirtualBox 虛擬機(jī)里的 Ubuntu 19.04 系統(tǒng),配置起來(lái)還是比較方便的。
Laravel 官方的定義是 The PHP Framework For Web Artisans ,優(yōu)雅和快速成型。依賴(lài)于 PHP >= 7.1.3 和一些 PHP 擴(kuò)展組件。可以使用 Linux 系統(tǒng)自帶的包管理器進(jìn)行安裝,命令如下:
$ sudo apt-get install php7.2 php7.2-bcmath php7.2-json php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip php7.2-common
安裝 composer 并配置國(guó)內(nèi)鏡像
Composer 是 PHP 語(yǔ)言的依賴(lài)管理工具,類(lèi)似于 Node.js 下的 npm 。后面需要用到的 Laravel 、laravel-admin 及其相關(guān)的依賴(lài)項(xiàng)都可以通過(guò) composer 命令安裝。
$ sudo apt-get install composer
為了提高訪問(wèn)速度,可以把 composer 的鏡像源改為國(guó)內(nèi)版本,命令如下(全局配置):
$ composer config -g repo.packagist composer https://packagist.laravel-china.org
安裝 Laravel 并初始化項(xiàng)目
使用 composer 命令安裝 Laravel :
composer global require laravel/installer
將 Laravel 安裝路徑添加到 PATH 環(huán)境變量:
$ echo export PATH="$PATH:~/.config/composer/vendor/bin" >> ~/.zshrc && source ~/.zshrc
初始化 Laravel 項(xiàng)目:
$ laravel new admin
以上步驟完成后,進(jìn)入 admin 項(xiàng)目目錄,運(yùn)行 $ php artisan serve 命令即可開(kāi)啟一個(gè)最基本的 Laravel 站點(diǎn)。
配置數(shù)據(jù)庫(kù)
安裝 mysql 數(shù)據(jù)庫(kù):
$ sudo apt-get install mysql-server
創(chuàng)建數(shù)據(jù)庫(kù) admin 并授權(quán)給測(cè)試賬戶(用戶名 test_user ,密碼 test_password):
mysql> CREATE DATABASE admin;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON admin.* to test_user IDENTIFIED BY 'test_password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
修改數(shù)據(jù)庫(kù)配置文件
編輯 config/database.php 文件(已經(jīng)默認(rèn)使用 mysql 數(shù)據(jù)庫(kù)),修改 mysql 配置部分,將 url 改為如下形式:
'url' => env('DATABASE_URL', 'mysql://test_user:test_password@127.0.0.1/admin'),
(數(shù)據(jù)庫(kù) URL 的格式為 mysql://用戶名:密碼@IP地址/數(shù)據(jù)庫(kù)名)
二、安裝 laravel-admin
數(shù)據(jù)庫(kù)配置完成后,即可按照以下步驟安裝配置 laravel-admin 。
在 admin 目錄下,使用 composer 命令安裝 laravel-admin :
$ composer require encore/laravel-admin
發(fā)布資源:
$ php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
使用以下命令完成安裝:
$ php artisan admin:install
運(yùn)行服務(wù)查看效果:
$ php artisan serve
訪問(wèn) http://127.0.0.1:8000/admin ,使用用戶名 admin 和密碼 admin 登錄,效果如下:
laravel-admin
安裝完成后,laravel-admin 所有的配置都在 config/admin.php 文件中(如站點(diǎn)名稱(chēng)、logo、登錄界面的背景等),而項(xiàng)目文件的安裝目錄為 app/Admin ,目錄結(jié)構(gòu)如下:
app/Admin
├── Controllers
│ ├── ExampleController.php
│ └── HomeController.php
├── bootstrap.php
└── routes.php
其中 app/Admin/routes.php 文件用來(lái)配置后臺(tái)路由;
app/Admin/bootstrap.php 是 laravel-admin 的啟動(dòng)文件;
app/Admin/Controllers 目錄用來(lái)存放后臺(tái)控制器文件,該目錄下的HomeController.php 文件是后臺(tái)首頁(yè)的顯示控制器。
三、一些必要的配置
項(xiàng)目進(jìn)行到這里,已經(jīng)具備了一個(gè)后臺(tái)管理系統(tǒng)的所有基本要素,只是在添加或者修改用戶時(shí),會(huì)報(bào)出下圖所示的 Config error ,需要添加一個(gè) Disk 配置:
Disk error
編輯 config/filesystems.php 文件,在 'disks' 配置下添加如下內(nèi)容:
'admin' => [
'driver' => 'local',
'root' => public_path('upload'),
'visibility' => 'public',
'url' => env('APP_URL').'/public/puload/',
],
disk config
中文配置
配置界面語(yǔ)言為中文可以修改 config/app.php 文件,將其中的 locale => en 改為 locale => zh-CN 即可。
其他常用的配置如站點(diǎn)名稱(chēng)、頁(yè)面布局等可以編輯 config/admin.php 文件,文件中的注釋信息非常詳細(xì),根據(jù)需求直接修改即可。
四、綁定自己的數(shù)據(jù)庫(kù)
前面生成的算是演示用的示例頁(yè)面,如果需要綁定和管理自己的數(shù)據(jù)庫(kù)表格,操作也是比較簡(jiǎn)單的。
創(chuàng)建數(shù)據(jù)庫(kù)表格
在之前創(chuàng)建的 admin 數(shù)據(jù)庫(kù)中添加名為 employee 的表格:
mysql> CREATE TABLE employee (
-> id int(6) unsigned AUTO_INCREMENT PRIMARY KEY,
-> number int(6) unsigned NOT NULL UNIQUE,
-> name varchar(10) NOT NULL,
-> mail varchar(60) UNIQUE,
-> password varchar(30),
-> department varchar(40) NOT NULL DEFAULT ''
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
創(chuàng)建模型文件
$ php artisan make:model Employee
上述命令會(huì)創(chuàng)建 app/Employee.php 模型文件,將該文件改為如下內(nèi)容:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Employee extends Model
{
protected $table = 'employee';
public $timestamps = false;
}
PS:關(guān)于模型的使用可以參考 Laravel 官方文檔
添加控制器
通過(guò)以下命令創(chuàng)建一個(gè)對(duì)接 app/employee 模型的控制器:
$ php artisan admin:make EmployeeController --model=App\\Employee
App\Admin\Controllers\EmployeeController created successfully.
添加路由
編輯路由配置文件 app/Admin/routers.php ,在根 URL 的路由下添加如下一行內(nèi)容:
$router->resource('employee', EmployeeController::class);
添加網(wǎng)頁(yè)菜單
訪問(wèn) http://127.0.0.1:8000/admin/auth/menu ,添加頁(yè)面左側(cè)的菜單項(xiàng),用于指向前面創(chuàng)建的后臺(tái)數(shù)據(jù)。
menu
上述步驟完成后,訪問(wèn) http://127.0.0.1:8000/admin/employee ,最終效果如下:
employee
五、優(yōu)化篩選和密碼顯示
上面完成的項(xiàng)目中,篩選按鈕只支持通過(guò) ID 搜索,密碼也是直接顯示。這些和表格相關(guān)的行為都可以通過(guò)修改 app/Admin/Controllers/EmployeeController.php 文件進(jìn)行控制。
修改 EmployeeController.php 文件中對(duì)表格相關(guān)行為的定義:
protected function grid()
{
$grid = new Grid(new Employee);
// 不顯示 ID 列
//$grid->id('ID');^M
$grid->number('工號(hào)');^M
$grid->name('姓名');^M
$grid->mail('郵箱');^M
// 隱藏密碼列
//$grid->password('Password');^M
$grid->department('部門(mén)');
$grid->filter(function($filter){
// 去掉默認(rèn)的 id 過(guò)濾器
$filter->disableIdFilter();
// 添加新的字段過(guò)濾器(通過(guò)工號(hào)過(guò)濾)
$filter->like('number', '工號(hào)');
});
return $grid;
}
實(shí)際效果如下:
自定義表格和篩選
六、nginx 服務(wù)器配置
首先需要終止默認(rèn)安裝的 Apache2 服務(wù)并安裝 nginx 和 php-fpm:
$ sudo systemctl stop apache2
$ sudo systemctl disable apache2
$ sudo apt-get install nginx php7.2-fpm
創(chuàng)建新的站點(diǎn)配置文件(/etc/nginx/sites-available/admin.conf)并寫(xiě)入以下內(nèi)容:
server {
listen 80;
server_name 127.0.0.1;
root /public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
使用以下命令啟用新的站點(diǎn)配置并重啟 nginx 服務(wù):
$ sudo ln -s /etc/nginx/sites-available/admin.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx
需要注意的是,app/storage 目錄的屬主應(yīng)該與運(yùn)行 nginx 服務(wù)的用戶(默認(rèn)為 www-data)一致,可通過(guò)以下命令修改:
$ sudo chown -R www-data storage
參考資料
總結(jié)
以上是生活随笔為你收集整理的php 后台配置系统,使用 laravel-admin 配置后台管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 购物车清除的php,php-如何清除废弃
- 下一篇: 重定向index.php,使用htacc