在實際應用中我們為了節省伺服器開支都會部署cdn,本文圍繞七牛雲cdn 來展開說明。
一. 安裝 overtrue 的七牛cdn 擴充套件包 laravel-filesystem-qiniu :
安裝:
$ composer require "overtrue/laravel-filesystem-qiniu" -vvv
配置cdn :
1.註冊
在 config/app.php
中新增Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider
'providers' => [
// Other service providers...
Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider::class,
],
- 新增七牛磁碟配置到
config/filesystems.php
:
<?php
return [
'disks' => [
//...
'qiniu' => [
'driver' => 'qiniu',
'access_key' => env('QINIU_ACCESS_KEY', 'xxxxxxxxxxxxxxxx'),
'secret_key' => env('QINIU_SECRET_KEY', 'xxxxxxxxxxxxxxxx'),
'bucket' => env('QINIU_BUCKET', 'test'),
'domain' => env('QINIU_DOMAIN', 'xxx.clouddn.com'), // or host: https://xxxx.clouddn.com
],
//...
]
];
二.安裝 asset-cdn :
$ composer require arubacao/asset-cdn
僅對於Laravel必需<=5.4
,因為啟用了Laravel >=5.5
自動發現。
// config/app.php
'providers' => [
// Other Service Providers
\Arubacao\AssetCdn\AssetCdnServiceProvider::class,
],
配置:
asset-cdn 提供了asset-cdn:push
, asset-cdn:sync
, asset-cdn:empty
三個命令具體可以檢視文件
如果要使用必須進行相應的配置
釋出配置檔案
$ php artisan vendor:publish --provider="Arubacao\AssetCdn\AssetCdnServiceProvider"
應為我我們使用的是七年雲,所以這裡有變動不能安裝說明來配置
// config/asset-cdn.php
[
'cdn_url' =>env('CDN_URL','xxxx'),//新增配置方便動態更改
'filesystem' => [
'disk' => 'qiniu',//注意這裡要和config/filesystems.php 新增qiniu配置一樣
],
]
.env.example
中新增
#cdn
USE_CDN=
CDN_URL=
三.任務排程
使用排程器時,我們需要修改系統的 Cron 計劃任務配置資訊,執行以下命令:
export EDITOR=vi && crontab -e
複製下面這一行:
* * * * * php /home/vagrant/Code/larabbs/artisan schedule:run >> /dev/null 2>&1
此時進入 VI 編輯器介面 儲存退出
註冊排程任務
在app/Console/Kernel.php
中新增(可自行設定)
<?php
.
.
.
class Kernel extends ConsoleKernel
{
.
.
.
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
// 每隔一個小時執行一遍
$schedule->command('asset-cdn:sync')->hourly();
}
.
.
.
}
即可實現cdn 的同步
本作品採用《CC 協議》,轉載必須註明作者和本文連結