22日 2016年06月
By Leo

[置顶]Yii2博客实战教程

Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。它是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应用,如门户网站、社区、内容管理系统(CMS)、电子商务项目和 RESTful Web 服务等。 接下来我将通过一个系列教材,为大家介绍Yii开发的相关知识点,具体目录如下:Yii2博客实战系列教程目录 Yii2博客实战教程——框架的... [继续阅读]

6076 浏览 评论
19日 2016年12月
By Leo

[置顶]跟我一起学Threejs Web3D系列

国际惯例 Hello World! 基础概念 光线与阴影 贴图与材质 模型加载 简单动画 交互 鼠标事件 碰撞检测 HUD标签的实现 其他demo 地址 [继续阅读]

5363 浏览 评论 Threejs , web3d , webgl
28日 2018年06月
By Leo

acme.sh 安装 Let’ s Encrypt 通配符证书

export Ali_Key="xxxxxxx" export Ali_Secret="xxxxxxx" curl https://get.acme.sh | sh source ~/.bashrc ~/.acme.sh/acme.sh --issue --dns dns_ali -d linhongxu.com -d *.linhongxu.com 生成好的文件 Your cert is in /root/.acme.sh/linhongxu.com/linhongxu.com.cer Your cert key is in /root/.acme.sh/linhongxu.com/linhongxu.com.key The intermediate CA cert is in /root/.acme.sh/linhongxu.com/ca.cer And the full chain certs is there: /root/.acme.sh/linhongxu.com/fullchain.ce... [继续阅读]

3362 浏览 评论 Linux , Nginx , 运维
11日 2017年07月
By Leo

php环境使用webhooks自动部署git源码

本文主要记录在不使用持续集成工具的情况下,简单的使用php完成git源码的拉取更新。1.确保环境正常且可以使用a)如果源码的运行账户不是root,是其他的账户,那么请确保在此账户下可以直接在命令行执行git pull例如网站运行账户是www,那么在root下最好su www切换到www用户,然后cd到网站目录,执行git pull 看看在命令行下会不会有问题一般问题无非是权限问题,git配置问题,参考本博客里面管理git配置的相关内容 为git添加账户,在home下创建用户目录执行以下代码,测试看看su wwwcd /www/wwwroot/yoursitegit pullb)记得开启php的禁... [继续阅读]

3803 浏览 评论 Linux , Git , 自动部署
11日 2017年07月
By Leo

Linux操作拾遗——为用户添加Home目录

最近想搞个webhook,由于网站用户是www,而执行git需要在home/www下有.ssh文件夹里面放git的rsa密钥对,结果发现home下面没有www用户,并且使用mkdir也无法创建。具体解决办法如下: (1)先进入root vi /etc/passwd 查看是否指定了家目录 如:username:1002:1002::/home/username:/bin/bash如果没有添加 (一般情况下是有的) (2)cp -a /etc/skel /home/username (3)指定权限: #chown -R username:groupname /home/username参考链接 http://bbs.chinaunix.net/thread-87268-2-1.html [继续阅读]

3369 浏览 评论 Linux , 运维
11日 2017年07月
By Leo

Linux操作拾遗——为git添加多个账户

如果你有多个git账户 比如一个github、一个开源中国、一个coding账号,想用ssh方式方便的git管理代码,如何实现呢,其实也比较简单1.先使用ssh-keygen生成各自的公钥和私钥 比如开源中国的oscssh-keygen -t rsa -C "xxxxx@163.com" -f ~/.ssh/osc_id-rsa继续生成coding.net的密钥对ssh-keygen -t rsa -C "lhx880619@163.com" -f ~/.ssh/coding_id-rsa完成后再~/.ssh目录中新建一个config文件touch ~/.ssh/config使用任意编辑器编辑内容如下:# osc Host git.oschina.net HostName git.oschina.net PreferredAuthentications... [继续阅读]

3621 浏览 评论 Linux
18日 2017年01月
By Leo

Mysql 建表错误1071 - Specified key was too long; max key length is 767 bytes

今天遇到了一个Mysql建表问题,报错1071 - Specified key was too long; max key length is 767 bytes。仔细查看建表sql语句,没有发现什么特别的地方,最后找到原因,这里记录下。起因:我在表中设置某个字段为varchar(255) unique,执行建表语句就报错。经过各方查找,我发现了这个问题和数据库字符集有关。具体的情况stackoverflow上大家的讨论:一个utf8字符占3个byte,一个utf8mb4的字符占4个byte,而mysql的innodb有限制索引长度不得超过767,简而言之就是一个公式。utf8: 255*3 = 765 767 256*3 = 768 utf8mb4: 191*4 = 764 7... [继续阅读]

11375 浏览 评论 MySql , utf8 , utf8mb4 , 字符集 , 索引长度
11日 2017年01月
By Leo

Threejs 沿非中心点旋转

最近想在3D场景中做一个开门动画效果,非常简单,效果如下: 实现起来非常简单一个cube的3D物体贴图加上一个动画旋转就可以完成,可是木有想到,第一次运行的结果确实这样滴:原因也非常简单,就是因为3D物体的旋转是按照几何中心点旋转的门的几个中心点是立方体的中间,所以就变成了这个效果,那么如何实现预期效果呢,其实也非常的容易,就是手动对几何体做一个平移。让集合体的一边落在中心点上。 var cubeGeometry = new THREE.BoxBufferGeometry(10, 20, 1, 1, 1, 1); cubeGeometry.translate(-5, 0, 0); var cube... [继续阅读]

10606 浏览 评论 Threejs , 非中心点旋转
09日 2017年01月
By Leo

Threejs教程——HUD做标注跟随效果

我们在很多场景需要使用类似HUD的效果,比如游戏的小地图啊,瞄准啊,标注啊,地图上的定点啊等等都是HUD层的效果。(神马,你还不知道啥叫HUD,好吧,哥来给你个链接,赶快去看看https://en.wikipedia.org/wiki/Head-up_display)这篇,我们来讲讲怎么制作一个包含3D场景的HUD显示效果。 废话不多说,先上一个显示效果图。 图上可以看出一个红色的警告标识会一直跟随着下面的方块一起运动。这个时候你肯定会说,神马,就这么简单一个效果?直接在3d场景中加入一个三位的object不就ok了么。其实仔细想想并不是这么简单,比如大家可... [继续阅读]

8756 浏览 评论 Threejs , webgl , HUD
30日 2016年12月
By Leo

Threejs教程——交互

Threejs是一个非常棒的图形库,可是对于一些交互逻辑,实现起来就没有那么容易了,这篇我们来讲解下如何实现一些常见的交互操作,比如点击、mouseover等效果。首先来看看Threejs是如何实现交互的。在3d的世界中,我们选取一个物体不像2d平面立面那么简单,因为我们所对应的是一个3维的世界,而鼠标所在的屏幕是一个2d的世界。这个时候Threejs会为我们提供一个叫做Raycaster的类,为我们提供的是一个射线,然后我们可以根据不同的方向去发射射线,根据射线是否被阻挡,来判断我们是否碰到了物体。我们来看看如何使用Raycaster类来实现鼠... [继续阅读]

9373 浏览 评论 Threejs , webgl , Raycaster