Yaf博客系统
由最快的PHP框架--Yaf打造而成的更快的----程序喵的博客
本项目适合新手学习Yaf框架。老鸟请轻喷
项目架构
Linux+Nginx+PHP+MySQL+Redis涉及的插件、扩展
代码高亮插件--Prism 为Prism改造Ueditor ajaxform 全站搜索Sphinx-coreseek PHP框架--Yaf为什么要写这个项目?
起先,我的博客放在CSDN上,那里面技术博客众多,可是后来感觉CSDN的服务器太卡,有时候打开一个博客要半分钟。 简直不能忍啊。于是改投博客园,博客园服务器还算稳定,但是在博客园上写博客,感觉他后台的功能用着不顺手,比较反人类,遂决定自己搭一个博客系统。为什么不用WordPress?
太卡(里面很多地方调google的文件,要 一 一 替换掉,不然卡死你),然后太大太臃肿,很多功能我都用不到,这不符合我喜欢DIY的性格。为什么选择Yaf框架?
到底是用最近火热的Laravel或者Symfony,亦或是鸟哥的Yaf,还是用我最熟悉的CodeIgniter,前三者都有学习成本,最后想了想,这次追求的是快,那就用最快的PHP框架-----Yaf,来搭建一个更快的Blog系统。开始用Yaf以后,才发现,它就是我要的那个框架!他不喜欢慢!他快如闪电。他没有臃肿的类库与功能,他简约而不简单。Yaf,简直就是为本博客量身打造的。更多Yaf优点详见请点击。
第一次学习Yaf框架,很多功能都是摸索着来的,所以此项目必有纰漏。 第一次用Github提交(之前都是浏览别人的项目),所以Github的功能也是摸索着来的。
项目特色
快如闪电和安全。
Yaf和Redis,为我们提供了快如闪电的访问体验,我前台也是能少加载文件,就少加载文件,能用CDN(比如jquery),就用CDN
用户add的地方有两处,发表评论和添加友链,都做了防XSS和防SQL注入。 全站搜索,用了sphinx也进一步加快了速度,并确保了防止sql注入。 评论做了基于Redis的IP时间限制,每60秒同一个IP的用户只能说两句话。 管理员登陆入口隐藏,并对登陆接口做了基于Redis的IP错误次数限制。每10分钟错3次禁止此IP登陆。
快速开始
1.请确保你的机器已经安装了PHP、Nginx、Mysql、Redis、Coreseek 2.导入sql文件blog.sql,替换Coreseek的配置文件csft.conf并修改数据库配置,替换虚拟主机文件vhost.conf并修改配置, 3.重启webserver 4.后台登陆地址为【点击首页顶部的白色猫头,会弹出登录窗口,默认登陆密码123456】 5.TODO 新加入安装模块:初次进入项目,会直接跳转到安装模块,自动化建表,并给博客管理员注册账号
目录结构
- index.php //入口文件 定义常量BASE_URL - favicon.ico + public //公共静态资源 |- css |- images |- js |- ueditor + conf |- application.ini //配置文件 + application |+ controllers |- Index.php //默认控制器 |- Blog.php |- Blogtype.php |- Cat.php //综合信息控制器 |- Comment.php |- Error.php //错误处理控制器 |- Admin.php //后台控制器 |- Link.php |- Say.php |- Tag.php |- Test.php //测试专用控制器 |+ views |+ index ...... |+ test |+ public |- 404.php |- foot.php |- head.php |- right.php |+ models ....... |- Search.php //搜索引擎类 |+ library |- Db.php //数据库类 我网上找的然后改造的mysqli |- Function.php //方法类,里面继承了一些可以全局调用的方法 |- Imagecompress.php //图片压缩类 压缩说说里上传的图片 |- Rdb.php //Redis类 |- Bootstrap.php //项目的全局启动文件,里面启动了redis mysql 加载方法类 - csft.conf //Sphinx-coreseek配置文件 - vhost.conf //nginx虚拟主机配置文件 - blog.sql //数据库文件
TODO
为了使它更快,我后期还要做3件事 首页和详情页做nginx的proxy_cache缓存 首页和详情页,生成静态html页面 URL重写,现在用的yaf的简单路由,回头把详情页的url简化下 优先:安装模块(自动化建表和注册管理员)【不做了,这个项目就当作大家学习用的,没必要商业化】 (已完工)前台页面全部bootstrap,全面支持移动端----【2017.5.6 前台页面全部替换为bootstrap,已经全面支持了移动端】Last
感谢Yaf群里的群友在我用Yaf遇到问题时为我指点迷津
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。