bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

基于Laravel6.x構建的博客應用,支持Markd-創新互聯

基于 Laravel6.x 構建的博客應用,支持 Markdown,支持圖片拖拽上傳,基于 RBAC 權限管理系統

首頁

超過十余年行業經驗,技術領先,服務至上的經營模式,全靠網絡和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業務范圍包括了:網站設計、成都網站設計,成都網站推廣,成都網站優化,整體網絡托管,小程序定制開發,微信開發,成都app開發,同時也可以讓客戶的網站和網絡營銷和我們一樣獲得訂單和生意!

基于 Laravel6.x 構建的博客應用,支持 Markd

基于 RBAC 的權限管理后臺,Dashboard 頁面統計了用戶總數、文章發布總數、評論率、評論總數、文章支持按天、按月、按年統計、支持按分類、按標簽統計……

基于 Laravel6.x 構建的博客應用,支持 Markd

登錄頁面

基于 Laravel6.x 構建的博客應用,支持 Markd

注冊頁面

基于 Laravel6.x 構建的博客應用,支持 Markd

支持 GitHub 授權登錄

基于 Laravel6.x 構建的博客應用,支持 Markd

支持郵箱重置密碼

基于 Laravel6.x 構建的博客應用,支持 Markd

同時兼容 HTML 編輯器和 Markdown 編輯器

基于 Laravel6.x 構建的博客應用,支持 Markd

基于 Laravel6.x 構建的博客應用,支持 Markd

Markdown 編輯器:支持拖拽粘貼上傳圖片、預覽、全屏、分屏預覽

基于 Laravel6.x 構建的博客應用,支持 Markd

基于 Laravel6.x 構建的博客應用,支持 Markd

項目概述

  • 項目名稱:larablog
  • 項目簡介:基于 laravel6.x 開發的博客項目
  • 訪問地址:https://www.drling.xin/

功能如下

  • 用戶認證 —— 注冊、登錄、退出;
  • 個人中心 —— 用戶個人中心,編輯資料;
  • 用戶授權 —— 作者才能刪除自己的內容;
  • 上傳圖片 —— 修改頭像和編輯文章時上傳圖片;
  • 表單驗證 —— 使用表單驗證類;
  • 重置密碼 —— 通過郵箱找回密碼
  • 文章支持分類、多標簽;
  • 編輯文章支持 markdown 編輯器 、html 編輯器;
  • markdown 編輯器支持拖拽上傳圖片、語法高亮、預覽、全屏、分屏實時預覽;
  • 文章發布時自動 Slug 翻譯,支持使用隊列方式以提高響應;
  • 站點『活躍用戶』計算,一小時計算一次;
  • 多角色權限管理 —— 允許站長,管理員權限的存在;
  • 后臺管理 —— 基于 RBAC 后臺數據模型管理;
  • 郵件通知 —— 發送新回復郵件通知,隊列發送郵件;
  • 站內通知 —— 文章有新回復;
  • 自定義 Artisan 命令行 —— 自定義活躍用戶計算命令;
  • 自定義 Trait —— 活躍用戶的業務邏輯實現;
  • 自定義中間件 —— 記錄用戶的最后登錄時間;
  • XSS 安全防御;
  • 第三方授權登錄,目前支持 GitHub,兼容 Facebook,Twitter,LinkedIn,Google,GitHub,GitLab 和 Bitbucket 的身份驗證;
  • 支持自定義 meta title、description、keywords;
  • 支持友鏈

運行環境要求

  • Nginx 1.8+
  • PHP 7.0+
  • Mysql 5.7+
  • Redis 3.0+

開發環境部署和安裝

本項目代碼使用 PHP 框架 laravel6.x 開發,本地開發環境使用 Laravel Homestead。

基礎安裝

  1. 克隆源代碼

克隆 larablog 源代碼到本地:

// gitee
git clone git@gitee.com:pudongping/larablog.git

// GitHub
git clone git@github.com:pudongping/larablog.git
  1. 安裝擴展包依賴
// 先切換到 larablog 項目根目錄
cd larablog

// 執行安裝命令
composer install
  1. 生成配置文件
cp .env.example .env

你可以根據情況修改 .env 文件里的內容,如數據庫連接、緩存、郵件設置、第三方授權登錄等:


DB_HOST=localhost
DB_DATABASE=larablog
DB_USERNAME=homestead
DB_PASSWORD=secret
  1. 生成數據表及生成測試數據
// 需要生成測試數據則執行:
php artisan migrate --seed

// 不需要生成測試數據則執行:
php artisan migrate
  1. 生成秘鑰

php artisan key:generate
  1. 創建 storage 軟連接

php artisan storage:link
  1. 賦予 storage 相應權限

// 建議在 Linux 系統中新建一個 www 用戶,并設置該用戶不可登錄系統
useradd -s /sbin/nologin www

// 將項目目錄所有權賦予 www 用戶
chown -Rf www:www larablog

// 給 storage 目錄賦權限
chmod -Rf 0755 larablog/storage/
  1. 配置 hosts 文件 (如果直接想部署在線上環境,則跳過此步驟)

如果開發環境沒有采用 Laravel Homestead 則 ip 映射以你實際為主,一般為 127.0.0.1。我這里使用的 Laravel Homestead 虛擬機的 ip 地址為:192.168.10.10

// Linux 或 MacOS 環境

echo "192.168.10.10   larablog.test" | sudo tee -a /etc/hosts

// Windows 環境
需要打開 C:/Windows/System32/Drivers/etc/hosts  文件,然后新增一行

192.168.10.10 larablog.test

前端安裝

  1. 安裝 npm 和 yarn

CentOS / Fedora / RHEL 環境下

文檔地址:https://yarn.bootcss.com/docs/install/#centos-stable

  • 配置相應的 yum 源
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  • 之后執行以下任意一條命令,就可以了
sudo yum install yarn
## OR ##
sudo dnf install yarn

Windows 環境下

  • 安裝 node.js

直接去官網 https://nodejs.org/en 下載安裝最新版本。

  • 安裝 Yarn

請安裝最新版本的 Yarn —— http://yarnpkg.cn/zh-Hans/docs/install

  1. 為 NPM 和 Yarn 配置淘寶鏡像,加速安裝包下載
npm config set registry=https://registry.npm.taobao.org

yarn config set registry https://registry.npm.taobao.org
  1. 使用 Yarn 安裝前端依賴包
yarn install

或者

npm install
  • 監控 resources 文件夾下的資源文件是否有發生改變。在 watch-poll 命令運行的情況下,一旦資源文件發生變化,Webpack 會自動重新編譯。
npm run watch-poll

// 如果遇到報錯,嘗試先執行以下命令更新 npm 到最新版本,之后再次執行監控命令
npm install -g npm
  • 編譯前端內容
// 運行所有 Mix 任務...
npm run dev

// 運行所有 Mix 任務并縮小輸出..
npm run production

訪問入口

  • 首頁地址: http://larablog.test
  • 后臺管理:http://larablog.test/admin

管理員賬號密碼如下:

username: 1414818093@qq.com
password: 123456

默認網站第一位用戶為站長角色,第二位用戶為管理員角色。如果填充了測試數據,則默認所有用戶的密碼為:123456

==至此,安裝完成^_^。enjoy yourself……==

后端擴展包使用情況

擴展包 簡介描述 本項目應用場景
laravel/uilaravel 6.x UI 腳手架前端頁面框架
barryvdh/laravel-ide-helper能讓你的 IDE (PHPStorm, Sublime) 實現自動補全、代碼智能提示和代碼跟蹤等功能代碼補全和智能提示
barryvdh/laravel-debugbar頁面調試工具欄 (對 phpdebugbar 的封裝)開發環境中的 DEBUG
overtrue/laravel-lang支持 52 個國家的語言包翻譯 Laravel 自帶模板
mews/captcha圖片驗證碼注冊頁面圖片驗證碼
intervention/image圖片處理功能庫用于圖片裁剪
summerblue/laravel-active方便設置 active 類文章排序添加 active 類
mews/purifier用戶提交的 Html 白名單過濾文章內容的 Html 安全過濾,防止 XSS ***
guzzlehttp/guzzleHTTP 請求套件請求百度翻譯 API,翻譯文章標題,做 SEO 優化
overtrue/pinyin基于 CC-CEDICT 詞典的中文轉拼音工具翻譯文章標題的備用方案
predis/predisRedis 官方首推的 PHP 客戶端開發包緩存驅動 Redis 基礎擴展包
laravel/horizon隊列監控隊列監控命令與頁面控制臺 /horizon
spatie/laravel-permission角色權限管理角色和權限控制
viacreative/sudo-su用戶切換調試環境中快速切換登錄賬號
erusev/parsedownmarkdown 轉換 html 工具文章模塊解析 markdown 語法
thephpleague/html-to-markdownhtml 轉換成 markdown 工具文章編輯采用 markdown 編輯器時
laravel/socialitelaravel 官方推薦社會化登錄Github 登錄

前端擴展包使用情況

擴展包 簡介描述 本項目應用場景
yarn add @fortawesome/fontawesome-freeFont Awesome 提供了可縮放的矢量圖標字體圖標庫
npm i startbootstrap-sb-admin-2界面簡潔美觀的皮膚cms 后臺模板
npm install simplemdemarkdown 編輯器文章編輯器
npm install highlight.js語法高亮工具markdown 編輯器代碼語法高亮
npm install inline-attachment文本框拖動上傳圖片工具markdown 文本框圖片拖動上傳
multiselect.js多選下拉框文章多選標簽
chartjs圖表插件后臺管理界面圖表

郵箱認證

  • 開發環境時將 .ENV 文件設置為如下所示,將郵箱認證郵件發送至當前日志中,以便調試
    MAIL_DRIVER=log
  • 生產環境時,建議將 .ENV 文件中相關郵件設置為自己所需配置,以下為默認配置
    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=null
    MAIL_PASSWORD=null
    MAIL_ENCRYPTION=null

翻譯隊列

  • 修改 .ENV 文件設置為

# 如果是開發環境的話,就把隊列驅動改回 sync 同步模式,也就是說不使用任何隊列,實時執行:
QUEUE_CONNECTION=redis
REDIS_CLIENT=predis
  • 啟動隊列系統,隊列在啟動完成后會進入監聽狀態
php artisan queue:listen

或者使用

php artisan horizon

文章標題翻譯

使用了百度翻譯 api,請將 .ENV中的百度 api 相關信息換成你自己的開發者信息

如果不采用百度翻譯翻譯文章標題的話,那么不用配置 .ENV 文件中以下配置項


# 百度翻譯 APP ID
BAIDU_TRANSLATE_APPID=
# 百度翻譯密鑰 KEY
BAIDU_TRANSLATE_KEY=

并且也不需要更改


QUEUE_CONNECTION=redis

默認保持為


QUEUE_CONNECTION=sync

這樣將會每發一篇文章時,將文章標題直接翻譯成拼音達到 slug 的效果。

郵件通知

如果不想要,發表文章評論時有郵件通知,可以不用配置,直接忽略,功能上沒有任何影響

  1. 需要先開啟 QQ 郵箱的 SMTP 支持

如何打開 POP3/SMTP/IMAP 功能?

  1. 郵箱發送配置 (請將以下配置換成你自己的郵箱配置)

如果你是使用的阿里云 ECS,那么一定要注意,阿里云的 ECS 默認禁用了 25 端口,需要單獨申請解封25端口,點我解封阿里云 ECS 25端口,如果你不知道如何解封,請查看 解封步驟。當然替代方案,你可以采用 465 端口,如果你打算采用 465 端口,那么需要將以下配置中的 MAIL_PORT 修改為 465,并且也需要將加密類型 MAIL_ENCRYPTION 修改為 ssl 即可,這里我才用的是 qq 郵箱,可能其他的郵箱服務有差異,視情況而定吧。

# 使用支持 ESMTP 的 SMTP 服務器發送郵件
MAIL_DRIVER=smtp
# QQ 郵箱的 SMTP 服務器地址,必須為此值
MAIL_HOST=smtp.qq.com
# QQ 郵箱的 SMTP 服務器端口,必須為此值
MAIL_PORT=25
# 請將此值換為你的 QQ + @qq.com
MAIL_USERNAME=xxxxxxxxxxxxxx@qq.com
# 密碼是我們第一步拿到的授權碼
MAIL_PASSWORD=xxxxxxxxx
# 加密類型,選項 null 表示不使用任何加密,其他選項還有 ssl,這里我們使用 tls 即可,如果出現報錯的話,多半是因為這個 smtp 主機不支持 TLS,那么只需要將此項設置為 null 即可。
MAIL_ENCRYPTION=tls
# 此值必須同 MAIL_USERNAME 一致
MAIL_FROM_ADDRESS=xxxxxxxxxxxxxx@qq.com
# 用來作為郵件的發送者名稱
MAIL_FROM_NAME=番茄燉土豆的個人博客
  1. 如果需要支持隊列,請將 .ENV 配置文件中,設置成

QUEUE_CONNECTION=redis

用戶切換調試

默認只在調試模式 .ENV 文件中


APP_DEBUG=true

時啟用,且 config/sudosu.php 文件中


// 允許使用的頂級域名
'allowed_tlds' => ['dev', 'local', 'test'],

頂級域名(Top Level Domain)加入你域名的頂級域名

第三方授權登錄

目前項目中只支持 github 授權登錄,因為只申請了 GitHub 的 OAuth application,如果你也需要使用 GitHub 作為第三方授權登錄,那么需要按照以下步驟進行:

  1. 在 GitHub 上注冊一個 OAuth application
  • Application name:你可以填寫你自己的應用名稱,比如:myWebBlog
  • Homepage URL:首頁連接地址需要添加你自己的,比如:http://larablog.test
  • Application description:應用描述可以隨便填寫,比如:自己的博客
  • Authorization callback URL:授權回調地址,一定要填寫成: <Your domain>/login/github/callback ,比如,我這里則需要填寫成:http://larablog.test/login/github/callback
  1. 注冊成功之后,需要在 .ENV 配置文件中填寫申請成功的 Client ID 和 Client Secret。填寫好之后,直接訪問 http://larablog.test/login/github 即可支持 GitHub 第三方授權登錄,如果不設置 .ENV 配置文件,則登錄、注冊頁面不會顯示 GitHub 第三方授權登錄入口。
# Github Client ID
GITHUB_CLIENT_ID=
# Github Client Secret
GITHUB_CLIENT_SECRET=
  1. 擴展其它第三方授權登錄。

    Socialite 目前支持 Facebook,Twitter,LinkedIn,Google,GitHub,GitLab 和 Bitbucket 的身份驗證。本項目已經對以上支持的第三方登錄做了兼容性處理,如果我們需要支持以上除 GitHub 以外的應用(因為目前已經設置好了 GitHub 相關的配置),那么我們只需要按照以下的步驟配置即可。這里以 Google 為例子。

  • 第一步:申請 google 的 Client ID 和 Client Secret。
  • 第二步:將申請的 Client ID 和 Client Secret 填寫入 .ENV 配置文件中
GOOGLE_CLIENT_ID="your google client id"
GOOGLE_CLIENT_SECRET="your google client secret"
  • 第三步:配置 app/services.php
'google' => [
    'client_id' => env('GOOGLE_CLIENT_ID'),  // google 客戶端授權 ID
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),  // google 客戶端授權密鑰
    'redirect' => '/login/google/callback',  // 授權回調鏈接 如果 redirect 配置項包含的是相對路徑,系統會自動將其轉化為完整 URL
],
  • 第四步:將第三方服務添加到 app/Models/Auth/User.php => $allowedProviders 數組中
public static $allowedProviders = ['github', 'google'];
  • 第五步:直接訪問 <your domain>/login/google 即可

自定義 Artisan 命令

命令 說明 Cron
php artisan larablog:calculate-active-user生成活躍用戶一個小時運行一次
php artisan larablog:sync-user-actived-at從 Redis 中同步最后登錄時間到數據庫中每天早上 0 點準時

計劃任務

當前計劃任務主要是計算主頁右側 「活躍用戶」

artisan 命令為:


php artisan larablog:calculate-active-user

和同步 「用戶最后活躍時間」 到數據庫

artisan 命令為:


php artisan larablog:sync-user-actived-at

并且已經在 調度器 中設置好了相關代碼。(調度器在 app/Console/Kernel.php 文件的 schedule 方法中定義)

使用 Linux 系統的 Cron 計劃任務需執行


export EDITOR=vi && crontab -e

然后填入以下內容(注意將項目根目錄換成你自己的)
這里我的項目根目錄為:/home/vagrant/Code/larablog


* * * * * php /home/vagrant/Code/larablog/artisan schedule:run >> /dev/null 2>&1

如果不設定計劃任務的話,直接執行以上 Artisan 命令的話會是如下情況:
「活躍用戶」將每 65 分鐘重新生成一次,設定計劃任務的話,默認一個小時重新生成一次。
「用戶最后活躍時間」將不會同步到數據庫中,將會直接從 Redis 中獲取,如果 Redis 中不存在,則以用戶注冊時間替代。

隊列清單

文件路徑 說明 調用時機
app\Notifications\ArticleReplied.php通知文章作者有新評論回復文章被評論以后 App\Observers\Portal\Article\ReplyObserver@created
app\Jobs\TranslateSlug.php將文章標題翻譯為 Slug文章保存時 App\Observers\Portal\Article\ArticleObserver@saved

代碼規范

遵循 PSR-2 編碼風格規范
遵循 PSR-12 編碼規范擴充

其他

代碼中涵蓋了豐富的注釋,如果仍有不清楚之處,可以給我留言。
如果你覺得還不錯,請幫我點一下 Star,不勝感激 !?(?′艸`?)

GitHub 地址
碼云 地址

License

源代碼基于 MIT 協議發布。

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前名稱:基于Laravel6.x構建的博客應用,支持Markd-創新互聯
URL網址:http://vcdvsql.cn/article14/djjsde.html

成都網站建設公司_創新互聯,為您提供微信公眾號全網營銷推廣ChatGPT小程序開發手機網站建設商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司