awesome-go
这里记录下我是用到或则感觉比较好的 golang 库
mine projects
ssh-auto——管理ssh登陆信息
easygin——基于gin的web开发库
gracefulServer——web server优雅重启的库
gorename——一行命令重命名包名
Web Framewoks
gin——性能极好的web server frameworks
Console
fatih/color——命令行输出颜色库
Database
gorm——一个蜂场友好的ORM库,支持MySQL PostgreSQL splite3 SQL server等
go-
未备案的域名是如何被限制的
国内域名解析限制的方式是由服务器运营商限制的,比如阿里,运营商会检查到服务器的流量的 HTTP 请求的域名信息,对未备案的域名添加限制,比如阿里会限制自己的提示备案的页面。
如何绕过运营商
既然运营商是根据 HTTP 请求里的域名做的限制,那么我如果没有域名呢?我们直接用 IP 访问显然是可以的,那么 HTTPS 呢?HTTPS 也是可以的,HTTPS 会对数据包做加密处理,运营商无法拿到请求的域名自然无法限制了。
BUT
虽然我们使用 HTTPS 绕过服务器运营商,但是有些平台或做自己的校验,比如 微信,你使用 HTTPS 搭建的站点在微信公众号、小程序中需要调用
事情起因
有个同事需要一个管理系统,需要管理一些图片什么的,我就想着让他用我写的这套系统,然后就想着把代码和库复制一份出来给他用就可以了,然后我顺便可以把一些需要写到配置里的东西提炼下,让这套系统成为一个可复制部署的 CMS 系统。
实操删库过程
第一步
很熟练的把代码复制一份,nginx 配置复制并修改一份。
第二步:删库
登陆数据库
新建库、切到新建库
删库:因为我部署这个博客系统的时候有把初始化数据库的 sql 文件放到服务器上,我看了下还在。然后直接source init.sql。
3步完成之后,有种莫名的感觉涌上心头,然后打开我的博客,发现里面数据已经空了。。其实我这里使用了Ph
MySQL修改表的存储引擎有三种方式
alter table
该方式需要执行很长时间
mysql> alter table mytable engine=InnoDB;
导入导出
使用mysqldump导出表,修改导出文件里的create table后面表的名称。
创建新的表。
mysqldump导出的表里会包含drop table,所以要注意!删除该句。防止数据丢失
创建和查询
mysql> create table new_table_name like table_name;
mysql> alter table new_table_name engin
PHP数组合并有两种方式
数组运算符操作:+
The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.
两个数组相加结果为把第二个数组链接在第一个数组之后,如果两个数组有key重复的就
PHP 类型转换一共三种方式
在变量前加圆括号,括号内为目标类型
<?php
$a = (int)\'11\'; // 把\'11\'转化为int型
$b = (float)\'11\'; // 把\'11\'转化为float型
使用intval,floatval,strval函数转换
<?php
$a = intval(\'11\'); // 把\'11\'转化为int型
$b = floatval(\'11\'); // 把\'11\'转化为float型
使用settype函数
<?php
$a = \'11\';
settype($a, \'int\'); // 把\
在了解依赖注入和服务定位器之前先了解以下两种模式的思想基础:依赖倒置原则和控制反转
依赖倒置原则(Dependence Inversion Principle,DIP)
定义
高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。
抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。
问题由来
类A直接依赖于类B,假如要将类A改为依赖类C,则必须修改类A的代码来完成,这种场景下一般A类为业务类,而B、C类为底层模块,假如因此修改了A类代码,会给程序带来不必要的风险。
解决方案
将A类修改为依赖接口D,类B和类C分别实现接口D,类A通过接口D和B、C发生关联,这样会大
前言
专门写这一篇文章来介绍 Phalcon 首先是因为本站的系统就是基于 Phalcon搭建的,第二就是先后两次接触 Phacon 体会差别比较大,第三就是就我现在觉得 Phalcon 其实是挺好的一框架怎么就没火起来呢,很郁闷,所以写这篇文章表达下自己的看法。
Phalcon框架整体介绍
Phalcon 是一个基于 MVC 的 PHP 框架,因为其最终的交付形式是 C 语言编译成的 PHP 扩展,所以其比大多数 PHP 开发的框架速度都要快。Phalcon 提供了对主要关系型数据库、NoSql、缓存、日志、模板引擎、表单构建器、国际语言支持等各类功能的支持。想使用 PHP 构建高性能 RE
正如大家所看本站使用了https,这篇文章就来讲下如何免费为自己的站点添加https支持。
Let's Encrypt是一个提供免费https证书的认证机构,而Certbot是遵循其协议的客户端程序。而本站就是使用的Certbot
Let's Encrypt的维基词条
Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。
Let\'s Encrypt由互联网安全研究小组(缩写ISRG)提供服务。主要赞助商包括电子前哨基金会、Mozilla基金
这里主要介绍下本系统的主要技术及相关页面展示。
依赖框架
后台是 PHP 服务器,框架用的是Phalcon
博客后台管理平台使用Ant Design
博客前端展示界面使用UIkit
系统辅助工具
gitlab 自建gitlab用来代码管理,
jenkins 代码上线管理等
相关页面展示
前端用户界面
这个就不展示了,直接点击站内链接欣赏就行了
后台管理界面
jenkins上线界面
技术标签
PHP phalcon mysql jenkins gitlab webpack react ant design UIkit