php
文章平均质量分 75
Mr_Eiffel
这个作者很懒,什么都没留下…
展开
-
Docker容器之间的通信
情景:本地已经搭建laradock开发环境(php7.3+mysql5.7),现在想用laradock环境来运行同一个已有项目,但是该项目数据在mysql5.6的docker容器里,现在需要连接两个容器,实现数据交互。在网上涉猎了很多与《docker 容器之间通信_docker中容器如何实现通信》的相关资料,最终觉得使用docker新创建一个网络(-d bridge网络驱动器为bridge),把两个容器都连接到该网络下,实现数据交互。方法如下:自己创建一个网络[root@docker ~]#.原创 2021-12-24 17:58:54 · 1747 阅读 · 0 评论 -
php-fpm 三种运行方式 ondemand static dynamic
最近服务器SFTP时特别卡顿,free -m一看,物理内存竟然都用完了,都开始用Swap了,然后看进程列表,我去,满屏幕的php-fpm。看来有必要优化下php-fpm的执行方式了。看了这篇文章,原来php-fpm有3种对子进程的管理方式,从它的配置文档中又可以看出有2种。一种是pm = static,始终保持一个固定数量的子进程,这个数由pm.max_children定义,这种方式很不灵活,也通常不是默认的。另一种是pm = dynamic,他是这样的,启动时,会产生固定数量的子进程(由pm.sta转载 2021-08-13 13:13:50 · 550 阅读 · 0 评论 -
PHP中的SAPI是什么?如何实现?
SAPI,特意去查了一下,它是 Server Application Programming Interface 的首字母缩写,意思是服务器端应用编程接口。这是 PHP 内核提供给外部调用其服务的接口,即外部系统可以通过 SAPI 来调用 PHP 提供的编译脚本、执行脚本的服务。PHP 中实现的 SAPI 有很多,Cli、Fpm 是我们比较常见的。从下图可以较为清晰的理解外部系统是如何通过 SAPI 调用 PHP 服务图片来源于网络接下来主要是讨论下我们常见的 Cli、和 Fpm 是如何工作的。原创 2021-08-13 13:11:05 · 897 阅读 · 0 评论 -
Opcode是啥以及如何使用好Opcache
啥是Opcode?我们在日常的PHP开发过程中,应该经常会听见Opcache这个词,那么啥是Opcode呢?Opcache 的前生是Optimizer+,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件。 Optimizer+ 将PHP代码预编译生成的脚本文件Opcode缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。从而加速PHP的执行。Optimizer+ 于 2013...转载 2021-01-09 00:32:51 · 562 阅读 · 0 评论 -
PHP 开启 Opcache 后的一些坑
众所周知,PHP5.5 以后官方自带了一个组件叫Zend Opcache,具体可以参看官方文档。开启此扩展后可以提高 PHP 的执行效率,具体提升多大我会在最后给一个简简单单的测试,提供给大家参考。Opcache 的执行流程大致如下,Opcache 的目地是避免重复编译,减少 CPU 和内存开销。由于这篇文章的本意是想记录以及备注一下开启 opcache 后出现的一些问题,所以这篇文章不会记录如何安装 opcache 以及如何配置,推荐这篇文章大家参考一下就可以了,配置说的都很明确了。.转载 2021-01-08 23:54:41 · 2497 阅读 · 1 评论 -
让PHP7达到最高性能的几个Tips
PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下.PHP7 VS PHP5.61. Opcache记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:z.转载 2020-12-21 21:55:27 · 115 阅读 · 0 评论 -
PHP7开启opcache打造强悍性能
鸟哥在博客中说,提高PHP 7性能的几个tips,第一条就是开启opcache:记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快,所以之前测试时期就发生了有人一直没有启用Opcache的事情那么什么是Opcache呢?Opcache 的前生是Optimizer+,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件。 Optimizer+ 将PHP代码预编译生成的脚本文件Opcode...转载 2020-12-21 21:43:07 · 180 阅读 · 1 评论 -
在服务器上对 PHP-FPM 和 Nginx 进行安装配置详解
PHP-FPMPHP-FPM(PHP FastCGI Process Manager),是用于管理 PHP 进程池的软件,用于接收和处理来自 Web 服务器(如Nginx)的请求。PHP-FPM会创建一个主进程(通常以操作系统中根用户的身份运行),控制何时以及如何把 HTTP 请求转发给一个或多个子进程处理。PHP-FPM 主进程还控制着什么时候创建和销毁 PHP 子进程。PHP-FPM 进程池中的每个进程存在的时间都比单个 HTTP 请求长,可以处理10、50、100或更多的 HTTP 请求。安装转载 2020-12-19 21:49:58 · 251 阅读 · 1 评论 -
php.ini 配置调优 —— 让 PHP 应用性能维持在更高水平
上一篇我们讨论了如何配置运行 PHP 应用的服务器,接下来我们要讨论的是如何调优服务器,让 PHP 应用的性能维持在更高水平。默认安装的 PHP 就像是在百货商店里购买的普通套装,虽然合身,却不完美。调优的 PHP 就像是定做的套装,完全匹配你的尺寸。不过,需要注意的是,调优 PHP 只是提升 PHP 性能和效率的举措,对拙劣的代码和无响应的 API 调用无计可施。php.ini文件PHP 解释器在php.ini文件中配置和调优,这个文件在不同操作系统中的位置有所不同,而且一般命令行对应的...转载 2020-12-19 21:44:13 · 205 阅读 · 1 评论 -
PHP函数strip_tags的一个bug浅析
PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str去除空字符、HTML 和 PHP 标记后的结果。PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数据被删除。比如下述代码:<div>string&.转载 2020-10-20 17:56:51 · 361 阅读 · 0 评论 -
libzip.so.5: cannot open shared object file: No such file or directory 错误导致安装PHP扩展失败原因
前言:平时都觉得安装Linux 扩展很简单嘛,结果今天没想到居然卡了半天时间。安装PHP扩展总共失败2次,一次是因为PHP 版本是5.6 过低导致,后来重装LNMP环境成功切换PHP版本为7.2。原本以为就此安装成功,没想到遇见如下情况:1,通过命令 查看PHP 扩展确实已经编译成功,可是我添加到配置文件始终就是报错:2,经过网上各类文章的翻阅,最终得知使用如下命令可以完成,拿我的这个案例Linux 指令演示:ln -s /usr/local/php/lib/php/extensions/no-deb转载 2020-09-02 18:11:47 · 1028 阅读 · 0 评论 -
前后端分离与跨域的解决方案(CORS的原理)
前后端分离前后端分离的好处最大的好处就是前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小。后台错误不会直接反映到前台,错误接秒较为友好。由于后台是很难去探知前台页面的分布情况,而这又是JS的强项,而JS又是无法独立和服务器进行通讯的。所以单单用后台去控制整体页面,又或者只靠JS完成效果,都会难度加大,前后台各尽其职可以最大程度的减少开发难度。个人理解上存在两种解释第一种只是单纯的前后端分离,实在物理层面上的,将View层的任务分配给前端,Controller和Model层给后转载 2020-08-24 10:51:10 · 615 阅读 · 0 评论 -
驼峰命名和下划线命名互转php实现
驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dstr = preg_replace_callback('/([A-Z]+)/',function($matchs) { ...转载 2020-04-10 13:16:55 · 304 阅读 · 0 评论 -
徒手用 Docker 构建自己的 PHP 开发环境
1. 前言1.1 为什么要用 Docker ?是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时候如果有了Docker,只需要在机器上装个Docker,放上写好的Dickerfile,一行命令就自动完成这个事,方便又高效,岂不是很爽?1.2 准备接下来,本文介绍如何搭建一个PHP的...转载 2020-04-06 20:30:13 · 299 阅读 · 0 评论 -
Docker 安装nginx+ php + redis扩展
不废话1,创建php容器 (这个版本的php 装 redis扩展比较容易)docker run -d \--name myFpm \-p 9000:9000 \-v /root/www/html:/usr/share/nginx/html \php:5.6-fpm2,创建nginxdocker run -d \--name myNginx \-p 8080:80 \-v ...原创 2020-04-02 22:36:13 · 312 阅读 · 0 评论 -
PHP判断函数,类,方法,属性是否存在
php 判断类里面的某个属性是否已经定义bool property_exists ( mixed $class , string $property )检查类的属性是否存在$directory = new Directory;if (!property_exists($directory,'li')) { echo '未定义li属性!';}php判断系统函数或自己写的函数是否存...原创 2020-03-27 11:36:12 · 287 阅读 · 0 评论 -
php环境搭建(需编译安装)
以下是我遇到坑,又解决的过程借鉴某位大佬,原文:https://www.cnblogs.com/wujuntian/p/8183952.html一、安装前更新系统软件:yum update查看是否已安装wget:rpm -qa wget否则安装:yum install wget查看是否已安装编译器:rpm -qa gcc否则安装:yum install...转载 2020-03-21 12:51:19 · 339 阅读 · 0 评论 -
centos7下编译安装php7.3
1、安装相关依赖yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzi...转载 2020-03-21 10:53:01 · 434 阅读 · 0 评论 -
PDO和Mysqli对比分析与总结归纳
php操作mysql数据库,大家都知道有三种驱动,mysql mysqlipdo,其中mysql在php7之后被废除了。不是本文重点。咱现在来分析一下mysqli和PDO的区别,下面一张表用来说明他们的区别PDOMysqli数据库类型支持很多仅支持mysqlAPIOOPOOP+面向过程命名参数支持不支持连接容易容易对象映射支持...转载 2020-03-11 10:42:12 · 295 阅读 · 0 评论 -
简要谈谈php中mysql,mysqli,mysqlnd,pdo到底是什么
名词解释:最开始的初学者,往往搞不清mysqli,mysqlnd,pdo到底是什么,下面先直接贴出最直观的名字吧。MYSQL:This extension is deprecated as of PHP 5.5.0, and has beenremoved as of PHP 7.0.0. MYSQLI: MySQL Improved Extension MySQLND:MySQL Na...转载 2020-03-11 10:23:19 · 3121 阅读 · 0 评论 -
php编译安装与配置
官网:http://php.net/官网下载:http://php.net/downloads.php一:了解与准备1.1:Apache(httpd) nginx 与 php 连接方式:httpd与php:1:php 作为 httpd 模块2:fastcgi(php-fpm)3:cgi(此处不讲解)nginx与php:1:fastcgi(php-fpm)1.2:PHP安装...转载 2020-03-04 13:54:14 · 612 阅读 · 0 评论 -
浅谈TP5验证器
永远不要相信前端传输的数据,一定要进行验证,TP5有两种验证方式独立验证与验证器独立验证独立验证就是在操作方法中实例Validate对数据进行验证<?phpnamespace app\index\controller;use think\Request;use think\Validate;class Index{ /** * 独立验证 ...转载 2020-02-25 17:54:59 · 312 阅读 · 0 评论 -
docker之安装redis扩展
docker之安装redis扩展1.先进入PHP容器,下载redis扩展包1.先进入php容器MacbookdeMacBook-Pro:~ macbookpro$ docker exec -it de0d227feed2 /bin/bash2.下载包root@de0d227feed2:/usr/src/php/ext# curl -L -o /tmp/redis.tar.gz http...转载 2020-02-10 15:49:47 · 477 阅读 · 0 评论 -
Docker php安装扩展步骤详解
前言此篇,主要是演示docker-php-source , docker-php-ext-install ,docker-php-enable-docker-configure 这四个命令到底是用来干嘛的,它们在PHP容器中都做了哪些事情。很多人很不理解在Dockerfile中安装PHP扩展的时候总是出现这几个命令,本篇就就是为你揭开这些命令的神秘面纱而准备的,所有案例都是本人自己运行过的。...转载 2020-02-10 15:36:13 · 227 阅读 · 0 评论 -
给docker中的PHP安装 gd扩展
在容器内使用docker-php-ext-install gd安装gd,使用过程中一些程序报错Call to undefined function imagettftext()。在phpinfo中发现它只支持png,所以需要重新编译。本文使用的docker镜像为php:7.1-fpm操作步骤首先主机中执行docker exec -it <容器名 or id> /bin/bash进...转载 2020-02-10 14:29:20 · 705 阅读 · 0 评论 -
PHP——底层运行机制与原理
PHP用起来感觉很简单方便,但是要精通PHP,熟悉底层的工作原理也不是一件容易的事。1 PHP的设计理念及特点多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造成影响,当然,时代发展,PHP也早已支持多线程模型。弱类型语言:和C/C++、Java、C#等语言不同,PHP是一门弱类型语言。一个变量的类型并不是一开始就确定不变,运行中才会确定并可能发生...转载 2020-02-05 13:18:49 · 191 阅读 · 0 评论