php-fpm

CentOS7编译安装php7.1配置教程详解

爱⌒轻易说出口 提交于 2020-08-18 16:02:42
这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考。 1.首先安装依赖包: 1 yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2 -devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-deve zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel

PHP 控制反转(IOC)与依赖注入(DI)

和自甴很熟 提交于 2020-08-18 14:42:29
概念 IOC与DI 据我了解其实早期是JAVA的理念,长期并不被PHP业界接受,因为PHP的理念是简单高效,但是长期的发展使得PHP必须为了工程规范和开发解耦必须走上这条路。Laraval框架为PHP的发展带来了的理念,逐步的各大框架都开始走上了标准化的开发步伐。这其中包含了ThinkPHP、EasySwoole、Swoft等等。 控制反转 传统的开发模式如果我们想要的到一个对象,我们必须去使用new。 这种方式的类控制权限在人的手中,是程序需要的时候认为主动创建依赖的对象( 见下图1-1 )。 // 图 1-1 // 通常的依赖注入模式 class Course { protected $user; public function __construct(User $user) { $this->user = $user; } } 依赖注入 前者说控制反转中,系统会将所有的请求单例Bean或者 全局单例Bean 保存在专用的IoC 容器当中,根据代码的需要 选择性的注入对应的需求类,注入的类 由IoC 容器管理, 降低程序的耦合,使得开发人员只需要关注对应的业务逻辑。 两者之间的关联 可以说两者是相辅相成的,依赖注入依靠IOC 控制反转,是IOC的最终目的,而 IOC 对于 依赖注入 是其实现的前提。 这里我们举个栗子 , 其实 PHP的composer

zabbix监控4.4升级至5.0

ε祈祈猫儿з 提交于 2020-08-18 05:39:58
1. ZABBIX备份 [root@iZ2zeapnvuohe8p14289u6Z /]# mkdir -p /soft/zabbixback/zabbix-backup [root@iZ2zeapnvuohe8p14289u6Z /]# cp /etc/zabbix/zabbix_server.conf /soft/zabbixback/zabbix-backup [root@iZ2zeapnvuohe8p14289u6Z /]# cp /etc/zabbix/zabbix_agentd.conf /soft/zabbixback/zabbix-backup [root@iZ2zeapnvuohe8p14289u6Z /]# cp /etc/zabbix/web/zabbix.conf.php /soft/zabbixback/zabbix-backup [root@iZ2zeapnvuohe8p14289u6Z /]# cp -R /usr/share/zabbix/ /soft/zabbixback/zabbix-backup [root@iZ2zeapnvuohe8p14289u6Z /]# cp –R /usr/share/doc/zabbix-* /soft/zabbixback/zabbix-backup 2. MariaDB 数据库备份 [root

使用Supervisor管理Docker容器多个进程

左心房为你撑大大i 提交于 2020-08-17 16:41:51
开始之前 在上一篇文章 <<为什么需要自定义一个基础镜像?>> 介绍如何实现一个php基础镜像,我们在PHP官方镜像之上,添加一些项目必用的php扩展模块,并且安装了 nginx、supervisor 软件,接下来本篇文章中介绍 如何使用 supervisor 在容器中运行与管理 nginx 与 php-fpm 进程(多进程)。 默认情况下 docker 容器只运行单个进程(docker推崇的理念),但是项目需要两个服务(php-fpm、nginx),所以需要第三方的进程管理软件,在docker中较流行的方案是使用 supervisor 软件管理多个进程。 环境描述 构建目录 tree demo/ demo/ ├── conf │ ├── default.conf │ ├── nginx.conf │ ├── php-docker.conf │ ├── php.ini │ ├── php-www.conf │ └── supervisord.conf ├── Dockerfile └── src └── demo.tar.gz 2 directory, 8 files 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 代码文件 src 目录存放项目代码压缩包 demo.tar.gz # 文件由 jenkins CI工具生成。 1 2 配置文件 conf

docker完整配置nginx+php+mysql

拈花ヽ惹草 提交于 2020-08-17 11:49:54
首先了解一个方法: 使用docker exec进入Docker容器   docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用: sudo docker exec --help 接下来我们使用该命令进入一个已经在运行的容器 $ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash 一. 配置nginx 查找 Docker Hub 上的 nginx 镜像 runoob@runoob :~/ nginx$ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx . 3260 [ OK ] jwilder / nginx - proxy Automated Nginx reverse proxy for docker c ... 674 [ OK ] richarvey / nginx - php - fpm Container running Nginx + PHP - FPM capable ... 207 [ OK ] million12 / nginx - php Nginx + PHP - FPM 5.5 , 5

PHP7是如何实现多进程的?

扶醉桌前 提交于 2020-08-17 08:59:10
我们都知道PHP是单进程执行的,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,但PHP实现多进程也意义重大,尤其是在后台Cli模式下处理大量数据或运行后台DEMON守护进程时,多进程的优势不用多说。 要实现PHP的多进程,我们需要两个扩展 pcntl 和 posix,安装方法这里不再赘述。 在php中我们使用pcntl_fork()来创建多进程(在*NIX系统的C语言编程中,已有进程通过调用fork函数来产生新的进程)。fork出来新进程则成为子进程,原进程则成为父进程,子进程拥有父进程的副本。这里要注意: • 子进程与父进程共享程序正文段 • 子进程拥有父进程的数据空间和堆、栈的副本,注意是副本,不是共享 • 父进程和子进程将继续执行fork之后的程序代码 • fork之后,是父进程先执行还是子进程先执行无法确认,取决于系统调度(取决于信仰) 这里说子进程拥有父进程数据空间以及堆、栈的副本,实际上,在大多数的实现中也并不是真正的完全副本。更多是采用了COW(Copy On Write)即写时复制的技术来节约存储空间。简单来说,如果父进程和子进程都不修改这些 数据、堆、栈 的话,那么父进程和子进程则是暂时共享同一份 数据、堆、栈。只有当父进程或者子进程试图对 数据、堆、栈 进行修改的时候,才会产生复制操作,这就叫做写时复制。 在调用完pcntl_fork

Linux 安装并启用 PHP-FPM

故事扮演 提交于 2020-08-17 03:58:35
首先,在编译时带上 --enable-fpm 参数: [root@localhost local]# yum -y install libxml2 libxml2-devel gd gd-devel [root@localhost local]# wget http://cn2.php.net/distributions/php-7.2.0.tar.gz [root@localhost local]# tar -zxvf php-7.2.0.tar.gz [root@localhost local]# cd php-7.2.0 [root@localhost php-7.2.0]# ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --with-gd \ --enable-pdo \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --enable-mysqlnd-compression-support \ --enable-mbstring \ --enable-zip \ --enable-fpm [root@localhost php-7.2.0]# make && make install

性能分析之TCP全连接队列占满问题分析及优化过程(转载)

十年热恋 提交于 2020-08-15 01:47:13
前言 在对一个挡板系统进行测试时,遇到一个由于TCP全连接队列被占满而影响系统性能的问题,这里记录下如何进行分析及解决的。 理解下TCP建立连接过程与队列 从图中明显可以看出建立 TCP 连接的时候,有两个队列: syns queue (半连接队列)和 accept queue (全连接队列),分别在第一次握手和第三次握手。 半连接队列: 保存 SYN_RECV 状态的连接。 控制参数: 半连接队列的大小:min(backlog, 内核参数 net.core.somaxconn,内核参数tcp_max_syn_backlog). net.ipv4.tcp_max_syn_backlog:能接受 SYN 同步包的最大客户端数量,即半连接上限; tcp_syncookies:当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; accept队列-全连接队列: 保存 ESTABLISHED 状态的连接。 控制参数: 全连接队列的大小:min(backlog, /proc/sys/net/core/somaxconn),意思是取backlog 与 somaxconn 两值的最小值, net.core.somaxconn 定义了系统级别的全连接队列最大长度,而 backlog 只是应用层传入的参数,所以 backlog 值尽量小于 net.core

nginx+php-fpm+ php 运行一个简单的登录程序

房东的猫 提交于 2020-08-14 16:28:15
文章目录 概述 功能分析 程序结果 概述 本文主要介绍用php + php-fpm + nginx 实现一个简单的登录程序。 目录结构如下: 功能分析 logon.html是页面文件,内容如下: logon.html <html> <head> <title>login</title> <style> #dog{ text-align:center; } </style> </head> <body> <div id="dog"> <form method="POST" action="logon.php"> admin<br> account:<input type="username" name="username"><br> password:<input type="password" name="upass"><br> <input type="submit" value="logon"> </form> </div> </body> <html> logon.php 是登录的逻辑,这里采用硬编码,因为只是一个demo 程序,没有去连数据库。 logon.php <?php if ($_POST["username"]=='admin'&& $_POST["upass"]=='111111') { echo "login success"; } else { echo

解决PHP显示Warning和Notice等问题

雨燕双飞 提交于 2020-08-14 11:27:14
PHP在安装后,会在php.ini 文件中设置报错、提醒、警告等方式的出现,这样的方式可以使我们在调试PHP程序的时候能及时了解程序所存在的问题。然后,有时候我们并不需要提醒、警告 等内容,比如当我们使用PHP5.5(或更高)时,搭配MySql 开发环境时,使用了较老的 MySql连接方式,此时PHP 就会提示:请使用最新的 MySql 连接方式,当你在使用其读取数据库内容作为 json 格式(或其他)返回前台时,往往内容就会发生错误 如何屏蔽这个错误呢,方法有下: 1,在可能(或已经)发生提醒,或错误,或警告的页面添加屏蔽错误提醒: error_reporting(E_ALL ^ E_DEPRECATED); //在本版本 php5 .5,已经不建议采用老式的 mysql 连接方法 //但speedPHP还是沿用着老式的连接方法,这时php会报E_deprecated提示,此时关掉该提示就Ok了,也可以将 //php置于部署模式(非开发模式),但最好的解决方法是采用最新的speedPHP 一般还可以使用下面的内容来解决一些 notice waring 等问题 ini_set("display_errors", 0); error_reporting(E_ALL ^ E_NOTICE); error_reporting(E_ALL ^ E_WARNING); 2,打开php