Siam博客

【常见问题】宝塔面板如何安装最新版本的php扩展swoole

SWOOLE

写在前面

大家都知道,宝塔是一个面向小白的服务器运维面板,内置了非常丰富的问题。 我们可以快速安装各个版本的语言、软件、扩展等等 当笔者在使用过程中,学习php先进的技术swoole,swoole比较有名的easyswoole框架时,需要比较新的swoole版本。 而通过宝塔自动安装的是稍微旧一点的版本,那么如何安装自定义版本、最新版本呢?

编译安装swoole

其他php扩展其实也是一样的原理, 我们可以自行编译。 在另一篇文章中,我有比较详细的编译安装过程,可以参考一下。 宝塔面板多PHP版本编译安装swoole

总结

宝塔面板能提高我们非运维专业人员的管理效率,但是也会损失一些灵活性,要根据需求灵活使用工具。

Read more

Mysql误删,恢复数据,binlog闪回,宝塔面板

数据库
写在前面 DBA或开发人员,有时会误删或者误更新数据 你是否有删库经历?删库是否真的无解 如果是线上环境并且影响较大,就需要能快速回滚。 传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据。 此法费时费力,甚至需要停机维护,并不适合快速回滚。 也有团队利用LVM快 ...
Read more

【源码解读】TP5return json_encode ajax自动被加上双引号

PHP

事情起因

在thinkphp5中,return数据才是控制器正确的时候方式,而不是直接echo 然后die 或者exti 因为框架有后置数据的落地处理等等,直接让程序退出并不友好,既然我们选择了框架,就应该遵循框架的设计理念 这样子能让我们避免一些坑爹事件的发生。 此次我在控制器中,并没有使用tp的Json Response对象,而是想通过return json_encode($arr);返回字符串的形式 正常应该输出如下

{"name":"siam", "age":21}

结果却输出为

"{"name":"siam", "age":21}"

这样子就明显乱套了,前端解析直接崩溃。

控制器原理

追寻response后框架的处理,框架会根据控制器return的数据类型做不同的处理

  • 返回Reponse子类,比如Json、Jsonp、Xml、View、重定向等等,则会执行子类的run()
  • 返回不是Reponse子类,则会自动识别响应输出类型
Read more

layui2.0数据表格导出复杂表头EXCEL解决方案,table2excel

前端

layui 数据表格组件

layui是一套面向所有层次的前后端开发者,零门槛开箱即用的前端UI解决方案。很多的后端开发在开发后台系统时候都会选择它。 数据表格组件也是使用非常频繁的,它可以快速从api得到数据并进行处理渲染成表格,并且还有排序、总计、导出表格等等功能。 layui数据表格 在一次的需求中,需要使用复杂表头并且导出EXCEL表格,发现layui并不支持复杂表头的处理,社区之中也还未找到相关的方案。于是使用了table2excel插件协助完成需求。(如果你有更好更方便的方法,希望你能联系我或者留言交流一下,谢谢) 以下简单记一下笔记和步骤,方便自己和他人。

Read more

多Iframe版后台,在一个iframe切换到另一个iframe,同时刷新

前端

当我们使用多标签iframe的后台管理模板时,需要在一个iframe中跳转到另一个iframe,并且对新iframe进行操作,这篇文章记录一下我在开发过程中编写的代码。 有一个标签 #tab 用于储存已经打开的标签页 tab标签说明 存放iframe的标签.tabsbody-item 结构如下

Read more

根据浏览器生成用户标识,实现免登陆用户状态订单储存。

前端

fingerprint2库,在github上有

Read more

layui数据表格checkbox设置部分不可选

前端

问题

在layui数据表格中设置了字段为type:checkbox 但是想要实现部分不显示,不可选的功能。 layui数据表格 layui内置没有该功能,所以只能自己实现。

Read more

讨论 - 为什么要使用docker和docker-compose

Docker

优点总结(后面进行讨论)

更高效的利用系统资源

更快速的启动时间

一致的运行环境

持续交付和部署

更轻松的迁移

更轻松的维护和扩展

讨论 ===== 更高效?


docker是容器型虚拟化,不需要进行硬件虚拟、运行完整操作系统等额外的开销。所以提高了对系统资源的利用率 简单来说:可以在同样配置的机器上虚拟运行更多的应用。

更快速?

因为docker不需要运行完成的操作系统,而是直接运行宿主机的内核,因此可以做到秒级甚至毫秒级的启动关闭。 简单来说:加载1万个文件和100个文件的速度区别

Read more

实战 - docker-compose搭建基本的nginx+php环境

Docker

安装docker-compose

简单说几句,具体可以参照官网的详细教程。

  • 确保已经安装docker

  • 从github拉取docker-compose

Read more

实战 - 多容器,Nginx容器灵活切换PHP版本!同时运行多个PHP容器

Docker

容器link原理 =========== 在前面一章中,我们使用 --link来将php容器和nginx容器关联在一起,并在nginx容器中的配置写下了如下代码,写下的php001就是我们在–link中设置的别名,其实这是通过本地host实现的。

{
    try_files $uri =404;
    fastcgi_pass php001:9000;   #极其重要
    fastcgi_index index.php;
    include /etc/nginx/conf.d/fastcgi_params;  #这里也是需要注意的,之前就是在这里还惨我了,需要绝对路径。不然路径默认从nginx的配置目录开始。
}
Read more
上一页 下一页