网站首页 » PHP

typecho nginx配置部署

nginx 设置重写 if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } php.ini 开启cgi.pathinfocgi.fix_pathinfo=1

网站首页 » PHP

php 安装 protobuf 扩展

下载下载地址:https://github.com/allegro/php-protobuf/releases安装进入解压后的文件夹,依次执行 phpize ./configure make && make install 修改php.ini 文件打开php.ini , 添加 extension=protobuf.so重启apache

网站首页 » PHP

协程编程注意事项

不能存在阻塞代码协程内代码的阻塞会导致协程调度器无法切换到另一个协程继续执行代码,所以我们绝不能在协程内存在阻塞代码,假设我们启动了 4 个 Worker 来处理 HTTP 请求(通常启动的 Worker 数量与 CPU 核心数一致或 2 倍),如果代码中存在阻塞,暂且理论的认为每个请求都会阻塞 1 秒,那么系统的 QPS 也将退化为 4/s ,这[...]

网站首页 » PHP

协程是什么?

协程是什么?我们已经知道了协程可以很好的解决异步非阻塞系统的开发问题,那么协程本身到底是什么呢?从定义上来说,协程是一种轻量级的线程,由用户代码来调度和管理,而不是由操作系统内核来进行调度,也就是在用户态进行。可以直接的理解为就是一个非标准的线程实现,但什么时候切换由用户自己来实现,而不是由操作系统分配 CPU 时间决定。具体来说,Swoole 的[...]

网站首页 » PHP

PHP-FPM的运作模式

在聊协程是什么之前,我们先聊聊传统 PHP-FPM 架构的运作模式,PHP-FPM 是一个多进程的 FastCGI 管理程序,是绝大多数 PHP 应用所使用的运行模式。假设我们使用 Nginx 提供 HTTP 服务(Apache 同理),所有客户端发起的请求最先抵达的都是 Nginx,然后 Nginx 通过 FastCGI 协议将请求转发给 PHP[...]

网站首页 » PHP

mac 更换其他版本PHP,apache无法报错无法启动

mac 自带php版本扩展缺少在使用mac 自带php版本为 7.3 ,自带的gd库并没有 freetype .方法一:在自带7.3版本上安装 freetype这种方法明显行不通,不知道自带php版本的源文件在哪,无法进行安装。方法二:安装其他版本的php, 在新php版本上安装freetype1.安装新版本phpbrew install php@[...]

网站首页 » PHP

php7.2 aes ecb 加密

php7.1 开始弃用mcrypt 加密 改为使用 openssl 加密以下列出 aes ecb 加密 5.* 和 7.2及以上加密方式php5.* $key = 'Op2TlBNJ3drx71rF'; $string = '{"channel":"djqm","productId":&q[...]

网站首页 » PHP

php 静态类是否执行初始化函数

静态类TrackerService.php <?php /** * 时间记录 */ namespace apifrontendservice; class TrackerService { static $start; static $end; static $abc = 111; public [...]