# yangdx_blog_new **Repository Path**: yangrz/yangdx_blog_new ## Basic Information - **Project Name**: yangdx_blog_new - **Description**: 基于 Lumen 框架开发的单用户博客系统 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-29 - **Last Updated**: 2023-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 杨大侠的博客 使用 Lumen 框架开发的单用户博客系统 ## 介绍 - 后端基于 [Lumen](https://lumen.laravel.com/) 框架开发 - 后台管理页面使用 [Layui](https://www.layui.com/) 框架开发 - 前台页面样式仿 [Compete Themes](https://www.competethemes.com/period/) - 集成代码高亮插件 [Highlight.js v10.7.2](https://highlightjs.org/) - 集成富文本编辑器 [CKEditor v4.16.1](https://ckeditor.com/ckeditor-4/) - 集成文件管理器 [CKFinder v3.6.0](https://ckeditor.com/ckfinder/) ## 安装说明 - PHP 版本 8.1 及以上。 - MySQL 版本 5.6 及以上。 - 目录 **storage** 及 **public/upfiles** 必须设置为可写权限。 - 数据库表结构在 **database/blog.sql** 里,请创建数据库后导入此文件。含有部分文章、分类等测试数据,如不需要可以清空表,但不要清空 settings、users 这两个表。 - 复制 **.env.example** 为 **.env**,并修改相关配置项(后面有说明)。 - 在命令行模式下进入网站根目录,执行 `composer install` 来安装依赖包。 ## 配置文件 .env 说明 ```dotenv # 应用名称 APP_NAME=Blog # 应用环境,生产环境填“production”,测试环境填“local”或其他 APP_ENV=local # 应用密钥,用于加解密,填写32位字符的随机字符串 APP_KEY= # 是否开启调试模式 APP_DEBUG=true # 应用首页地址,末尾不要带“/” APP_URL=http://localhost # PHP时区设置,“Asia/Shanghai”是亚洲上海,即北京时间 APP_TIMEZONE=Asia/Shanghai # 语言包设置,对应“resources/lang”目录下的子目录名称 APP_LOCALE=zh-CN # 数据库连接配置,“+08:00”是东八区,即北京时间 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog DB_USERNAME=root DB_PASSWORD=123456 DB_COLLATION=utf8mb4_general_ci DB_TIMEZONE=+08:00 # Redis连接配置,如没有安装redis扩展可不管 REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_PASSWORD= # 缓存使用Redis,如没有安装redis扩展请注释掉这行 CACHE_DRIVER=redis # 腾讯云验证码:https://cloud.tencent.com/document/product/1110 TENCENT_SECRET_ID= TENCENT_SECRET_KEY= TENCENT_CAPTCHA_ID= TENCENT_CAPTCHA_KEY= # CKFinder 配置,无须修改;上传路径“/upfiles”在“public”目录下,要有可写权限 CKFINDER_LICENSE_NAME=example.com CKFINDER_LICENSE_KEY=*T6V-*1**-A**6-*B**-*S**-E*3*-2**K CKFINDER_UPLOAD_PATH=/upfiles # 百度站长URL推送密钥配置,参考资料:https://ziyuan.baidu.com/college/courseinfo?id=267&page=4 BAIDU_ZZ_TOKEN= ``` ## 腾讯云验证码 获取 API 密钥:https://console.cloud.tencent.com/cam/capi ,并配置到 **TENCENT_SECRET_ID**、**TENCENT_SECRET_KEY**。 开通验证码功能:https://console.cloud.tencent.com/captcha/graphical ,并配置到 **TENCENT_CAPTCHA_ID**、**TENCENT_CAPTCHA_KEY**。 ## 百度站长 URL 推送 如果 **.env** 中配置了 **BAIDU_ZZ_TOKEN**,则结合指令 `php artisan BaiduPushConsole` 可以将新增或更新的文章推送给百度进行收录。 crontab 定时任务配置示例: ``` 15 2 * * * cd /home/www/blog && php artisan BaiduPushConsole >>storage/logs/baidu_zz.log ``` ## 后台账号密码 在命令行模式下,执行 `php artisan ResetPasswordConsole` 将重置后台账号为一个随机密码。 ## 关于 CKEditor 更改了代码高亮插件 codesnippet,即更新其中的 highlight.js 到最新版,且增加了代码行号插件。原始文件见 public/static/ckeditor/ckeditor.js.bak 及 public/static/ckeditor/plugins/codesnippet-bak 目录。 另外统一了编辑模器的 CSS 样式,做到跟前台样式统一,真正的所见即所得。 ## 关于 CKFinder(可忽略) 把 PHP 代码迁移到了 app/Libs/CKFinder 目录,并修改了入口配置,见 public/static/ckfinder/config.js: ``` var config = { connectorPath: '/admin/ckfinder' }; CKFinder.define( config ); ``` ## Nginx 配置示例 ``` server { listen 80; server_name yangdx.com www.yangdx.com; index index.html index.php; root /home/www/blog/public; # 强制走www域名 if ($host != 'www.yangdx.com') { rewrite ^/(.*) http://www.yangdx.com/$1 permanent; } # Lumen框架配置 location / { try_files $uri $uri/ /index.php?$query_string; } # PHP配置 location ~ .+\.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } # 静态资源文件缓存7天,且不记录日志 location ~* \.(gif|jpg|jpeg|png|bmp|ico|swf|svg|eot|ttc|ttf|otf|woff|woff2|js|css)$ { expires 7d; access_log off; } # 禁止访问以“.”开头的资源(除了.well-known) location ~ /\.(?!well-known).* { deny all; } } ``` ## 整站演示 可以访问本人的博客,前台预览:https://www.yangdx.com/