基于laravel支持markdown图片上传的博客
# laravel-blog
Vien Blog - 一款基于laravel5.8开发的,支持markdown编辑以及图片拖拽上传的博客系统、SEO友好
博主网站
项目Github地址
Github: laravel-blog ,欢迎Star。
博客亮点
- 界面简洁、适配pc和mobile、有良好的视觉体验
- 支持markdown、并且可以拖拽或者粘贴上传图片、分屏实时预览
- SEO友好:支持自定义文章slug、支持meta title、description、keywords
- 自定义导航、自定义sidebar、随时去掉不需要的模块
- 支持标签、分类、置顶、分享、友链等博客基本属性
- 支持AdSense
- 支持百度自动提交链接和手动提交链接
博客展示
Demo演示地址: 这是一个DEMO
后台管理
文章列表
主要操作有查询、创作、编辑、置顶、删除(软删除)
创作和编辑
创作和编辑页面
Markdown编辑器:支持拖拽粘贴上传图片、预览、全屏、分屏预览
前端展示
参照 这是一个DEMO
看完Demo,如果你觉得还过得去,想要用一用试试呢,赶紧往下看喔。
使用博客
安装
获取源码
git clone git@github.com:luvvien/laravel-blog.git
进入项目目录后,用composer
安装依赖
composer install
生成.env
文件
cp .env.example .env
生成key
php artisan key:generate
创建MySQL数据库vienblog
,字符集采用 utf8mb4
, utf8mb4_general_ci
编辑.env
文件 vim .env
,修改MySQL数据库连接配置,请将DB_HOST
,DB_PORT
,DB_USERNAME
,DB_PASSWORD
改成你的数据库配置。
[...] DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=vienblog DB_USERNAME=root DB_PASSWORD=root [...]
数据迁移和数据填充
php artisan migrate php artisan db:seed
创建storage软连接
php artisan storage:link
设置目录权限
chmod -R 755 storage/ chown -R www-data:www-data storage/
使用
可以选择临时预览,也可以用Nginx部署服务
临时预览
php artisan serv
打开浏览器访问127.0.0.1:8000
使用Nginx
Nginx配置,将root
指向项目的public
目录,请用pwd
查看目录,并且改成你目录,千万不要直接粘贴复制。
root /app/laravel-blog/public;
完整配置
server { listen 8088 default_server; listen [::]:8088 default_server; root /apps/vien_blog/public; index index.php index.html index.htm; server_name _; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; # fpm,因为版本不同路径会有区别,这里请改成你,不知道路径可以执行php-fpm便会显示 # fastcgi_pass 127.0.0.1:9000; # cgi } }
打开浏览器访问127.0.0.1:8088
后台登录
- 地址
/admin
- 默认的admin管理账号是
vien@byteinf.com
密码是vienblog
,进入控制台后可以修改管理员信息
使用百度自动推送和主动推送
请先在config/vienblog.php
中按照注释配置相关的信息,自动推送是在网页访问时推送,主动推送执行以下代码会将未提交过的链接提交到百度
php artisan push:baidu
讨论群
QQ群号:149347741 (欢迎开发者,技术爱好者,站长加入)
联系我
Email: support@vienblog.com
License
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JAVA线程及简单同步实现的原理解析
JAVA线程及简单同步实现的原理解析线程一、内容简介:本文主要讲述计算机中有关线程的相关内容,以及JAVA中关于线程的基础知识点,为以后的深入学习做铺垫。如果你已经是高手了,那么这篇文章并不适合你。 二、随笔正文:1、计算机系统组成计算机系统由计算机硬件系统和软件系统组成。我们今天要说的线程和硬件系统中的cpu中央处理器,及软件系统中的操作系统,进程等有比较紧密的联系。操作系统是软件中比较特殊的存在,与硬件系统直接交互,其他程序(软件)运行在操作系统之上。 2、cpu简单说明硬件系统中特别重要的一项就是处理器CPU,与我们所说的线程有非常紧密的联系。cpu中有几项参数,以及如何查看该信息,在下文逐一说明: 块数:民用pc机,基本都是一块物理cpu,每块主板上只能装一块cpu。 核心数:也就是单块物理cpu是由几组处理芯片组,组成的。4核心 8核心等。 线程数:老款cpu都是单线程的,及一组芯片组只能运行一个线程。现款因特尔cpu大多支持超线程技术可支持多个逻辑线程。但是需要操作系统及相关编程语言的支持,JAVA相较C++在多线程方面能表现的更出色。 主频:单位GHZ(hz赫兹 每秒的周...
- 下一篇
JavaScript 创建对象的方式
对象直接量 对象直接量是由若干 名/值 对的映射表,名值对中间用冒号分隔,名值对之间用逗号分隔,整个映射表用花括号括起来。属性名可以是JavaScript标识符也可以是字符串直接量(也可以是空字符串),属性的值可以是任意类型的JavaScript表达式,表达式的值即是改属性的值,该值可以是原始值,也可以是对象值。 const obj = { name:"ysw", age:18, sex:"男" }; 通过new关键字 new运算符创建并初始化一个新对象,关键字new后跟随一个函数调用,这个函数即是构造函数,用于初始化一个新创建的对象 function F1() { this.name = "ysw"; this.age = 18; this.sex = "男"; } var obj = new F1(); 通过ES5中Object.create()静态函数方式 函数Object.create()创建一个对象,该函数提供两个参数,第一个参数是这个对象的原型,第二个是可选参数,是对对象属性的描述 var obj = Object.create({ name:"ysw", age:18, ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果