群晖web 架设Thinkphp5开启伪静态

一直是在本机开发微信商城,有时候人不在公司,同事又需要访问系统的时候会比较麻烦。因此决定把程序放到NAS上运行,由于群晖上的web环境不是自己装的LNMP环境(本机及云主机都是用的nginx作后端服务),所以修改配置文件也相对麻烦一些。先用root账户SSH后,需要修改的虚拟机配置文件地址是:/var/tmp/nginx/app.d/server.webstation-vhost.conf (/etc/nginx/app.d)
如果修改这里的conf文件,每次重启服务器会恢复,因此不能修改这里的地方。打开server.webstation-vhost.conf
看到这里对应的域名会加载自己的配置文件,如下:

include /usr/local/etc/nginx/conf.d/3391bf64-c8d6-44cd-87ec-eb039c8f4daf/user.conf*;

因此在3391bf64-c8d6-44cd-87ec-eb039c8f4daf下新建一个我们需要的配置文件如:user.conf.tp5 内容如下:

location / { // …..省略部分代码
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=/$1  last;
   break;
    }
 }

保存后,执行命令nginx -s reload重新加载配置文件。

然后到群晖的web station开启对应的扩展:GD、curl、iconv。搞定

群晖+docker+gitlab+外网

最近给公司做的新项目比较保密,所以项目就不打算放在coding上了。正好给公司新配了DS916,正好搭建gitlab作为以后的私有项目存放。
其实对于docker还比较陌生,也可以趁此机会熟悉一下。gitlab前段时间曝漏洞貌似比较严重啊,不过这里也就是内网和家里访问下问题也不大,随时更新就OK了。
对于外网穿透可以参照:用ngrok打开任督二脉(内网穿透)



- 阅读剩余部分 -

Typecho主题开发那些事

最近公司忙于微信公众号开发,因此对于Xone主题的更新也就延后了,确实忙的没时间加新功能。只能抽空周末的时候做了下。
有朋友发消息说要求主题最好带边栏目录,或者双栏页面。其实打算做这个主题的时候就没打算做成双栏或者多栏,我觉得单页更能突出博客的内容。但是少了边栏分类确实也不太方便,不能破坏页面的整体布局。所以不得已我决定用动态panel的形式来容纳常用的边栏及其他功能。

一直想做一个前端简洁的音乐播放器插件,所以就做了全站PJAX无刷新加载,这也就涉及到了评论问题。百度了一下不少人也遇到过同样的问题,解决办法要么是改程序源码,要么就是插件弄。本人也是本着不修改Typecho自身半点源码的前提来制作主题的。官方文档也说的很简单,深入一点的内容根本就没提到。没办法花了周末一整天时间来研究Typecho的源码。

Typecho生成页面时表单带是有Token验证的,后台开启或关闭防垃圾评论会有不同的验证方式。var/Widget/Archive.php类中的header方法就是用来输出头部信息的,在模板文件header.php会调用这个函数 <?php $this->header(); ?>,在Archive.php的1772行如下:


- 阅读剩余部分 -

Xone Theme 简约主题

Xone 主题说明

本主题是一款Typecho风格主题,在默认主题基础上进行修改。加入jQuery插件及一个时间小插件。主题使用字体为Exo,已本地化。添加文章归档页面,归档以时间线风格显示。Chrome,Firefox均正常显示,其他浏览器未作测试。

主题作者:ImxFeng
联系QQ: 314015469
演示地址:https://www.imxfeng.com
下载地址:点击下载 (使用请保留底部版权)


更新说明:

版本:1.0.1 更新日期:2017.7.14
(本次更新为修正更新)

  1. 去掉主页面"阅读剩余部分"超链接样式
  2. 去掉内容页中链接的下划线
  3. 修正归档页面时间线显示过长问题




- 阅读剩余部分 -

jQuery写自己的插件

编写插件的目的是给已经已经有的一些列方法或函数做一个封装,以便可以在其他地方重复使用。方便后期维护和提高开发效率。
我觉得能开发出一个好用且规范的jQuery插件是前端开发必备的技能。

开发插件的基本要点

  • jQuery插件的文件名应该命名为jquery.[插件名].js,以免和其他的Javascript库插件混淆。
  • 所有的对象方法都应该附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身上。
  • 在插件内部,this指向的是当前通过选择器获取的jQuery对象,而不像一般的方法那样,例如click()方法,内部的this指向的是Dom元素。
  • 可以用this.each()来遍历所有的元素。

- 阅读剩余部分 -