php-fpm重启

部署LAMP动静分离以及部署Discuz论坛

荒凉一梦 提交于 2019-11-28 14:07:58
通过 LAMP平台部署及应用 已经可以部署出LAMP平台,来面对客户端的请求,但是由于这些组件都是在一台服务器上进行安装,如果出现问题,将导致LAMP平台的瘫痪。在实际环境中,不可能将LAMP平台都部署在同一台服务器上,这就需要使用到LAMP动静分离的技术。 博文大纲: 一、LAMP动静分离的相关概念 1.PHP的工作模式 2.FastCGI模式的工作机制 二、实现LAMP动静分离 1.FastCGI方式编译安装php 2.搭建Apache并配置通过fastcgi协议调用php 搭建Mysql数据库 4.ab压力测试工具 5.安装php加速软件Xcache 三、部署Discuz论坛 一、LAMP动静分离的相关概念 要想实现LAMP动静分离,最主要的还是PHP,因为我们需要使用PHP解释器来解析动态页面,然后向Web服务器传输解析后的网站内容。我们下面重点介绍一下PHP。 1.PHP的工作模式 PHP在在LAMP环境下共有三种工作模式: CGI模式: 在这种模式下运行PHP,性能不是很好; apache模块: 在这种模式下运行PHP,在 LAMP平台部署及应用 就是使用的这种模式,使用apache调用php完成工作; FastCGI模式: 在这种模式下运行PHP,PHP就是一处独立的进程,所有的PHP子进程都由PHP的一个叫做php-fpm的组件负责管理; 2

nginx转发php文件到php-fpm服务器提示502错误

你离开我真会死。 提交于 2019-11-28 13:17:53
实验将php文件转发给另一个php-fpm服务器处理的时候,出现了502错误: 检查了nginx错误日志,提示: 2019/08/25 17:54:56 [error] 4742#0: *35 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.2.1, server: www.133.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://192.168.2.133:9000", host: "192.168.2.132" 按照网上给的提示操作方法都不能解决,而且是立即返回的502,应该是跟PHP-FPM通信有问题了。然后检查php-fpm的配置文件www.conf,监听端口应该没错 listen = 9000意味允许所有终端访问9000端口 , 再看下一条 配置, listen.allowed_clients =0.0.0.0 正常以为这个IP意味着所有地址。后来试着把这条配置注释或者改为nginx服务器的ip地址,重启php-fpm服务后能够访问了。这真的无fuck可说了。小问题搞半天啊。 来源: https://www.cnblogs.com

php-fpm

廉价感情. 提交于 2019-11-28 09:23:32
约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 一,php-fpm的启动参数 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php .ini -y /usr/local/php/etc/php-fpm .conf -t #启动php-fpm /usr/local/php/sbin/php-fpm /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php .ini -y /usr/local/php/etc/php-fpm .conf #关闭php-fpm kill -INT ` cat /usr/local/php/var/run/php-fpm .pid` #重启php-fpm kill -USR2 ` cat /usr/local/php/var/run/php-fpm .pid` 二,php-fpm.conf重要参数详解 pid = run /php-fpm .pid #pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启

NGINX + PHP-FPM 502

两盒软妹~` 提交于 2019-11-28 09:23:23
NGINX + PHP-FPM 报 502 错误,我想大部分 SA 都遇到过吧。 根据报错的频率,可以分为两种情况,间歇性的502和连续性的502。 这里只讨论第一种情况——间歇性的502。 502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的。 在 PHP-FPM 的配置中存在这么一项: How much requests each process should execute before respawn. Useful to work around memory leaks in 3rd party libraries. For endless request processing please specify 0 Equivalent to PHP_FCGI_MAX_REQUESTS <value name=”max_requests”>500</value> 这段配置的意思是,当一个 PHP-CGI 进程处理的请求数累积到 500 个后,自动重启该进程。 但是为什么要重启进程呢? 一般在项目中,我们多多少少都会用到一些 PHP 的第三方库,这些第三方库经常存在内存泄漏问题,如果不定期重启 PHP-CGI 进程,势必造成内存使用量不断增长。因此 PHP-FPM 作为 PHP-CGI 的管理器,提供了这么一项监控功能

PHP-FPM 输出PHP错误日志

情到浓时终转凉″ 提交于 2019-11-27 21:44:40
nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息。 nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog 原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志。 调试起来就很痛苦了。解决nginx下php-fpm不记录php错误日志的办法: 1.修改php-fpm.conf中配置 没有则增加 catch_workers_output = yes error_log = log/error_log 2.修改php.ini中配置,没有则增加 log_errors = On error_log = "/usr/local/lnmp/php/var/log/error_log" error_reporting=E_ALL&~E_NOTICE 3.重启php-fpm 当PHP执行错误时就能看到错误日志在"/usr/local/lnmp/php/var/log/error_log"中了 请注意: 1

php-fpm搭建及加固

╄→гoц情女王★ 提交于 2019-11-27 16:55:24
php-fpm安装 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。 nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。 那什么又是cgi呢? CGI(Common Gateway Interface)。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。 简单的说,就是:cgi就是专门用来和web 服务器打交道的。web服务器收到用户请求,就会把请求提交给cgi程序(php的fastcgi),cgi程序根据请求提交的参数作应处理(解析php),然后输出标准的html语句返回给web服服务器,再返回给客户端,这就是普通cgi的工作原理。 安装 yum安装 yum install php php-mysql php-fpm 安装成功。 php-fpm配置文件路径:/etc/php-fpm.d/www.conf php配置文件路径:/etc/php.ini 说明: php-mysql,这个是后续链接mysql需要的 修改php配置 php

CentOS6.5编译安装Nginx1.70 +PHP5.59+MySQL5.6.16

﹥>﹥吖頭↗ 提交于 2019-11-27 04:31:56
下载软件工具包: 1、下载nginx http://nginx.org/download/nginx-1.7.0.tar.gz 2、下载pcre (支持nginx伪静态) http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz 4、下载MySQL5.6.16 http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.16.tar.gz 5、下载php-5.5.9 http://mirrors.sohu.com/php/php-5.5.9.tar.gz 6、下载cmake(MySQL编译工具) http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz 7、下载libmcrypt(PHPlibmcrypt模块) http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz 约定: 把上述软件包全部上传到新建的/data/soft目录下 ">"代表命令行提示符 安装编译工具及库文件: >yum install make apr* autoconf automake bzip2 bzip2-devel

什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?

岁酱吖の 提交于 2019-11-26 22:16:12
   什么是CGI   CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。   CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等    什么是FastCGI   FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。   FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。    FastCGI与CGI特点   1、如CGI,FastCGI也具有语言无关性.   2、如CGI, FastCGI在进程中的应用程序,独立于核心web服务器运行,提供了一个比API更安全的环境。

CentOS6.5_Nginx1.45_Php5.59_MySQL5.6.16编译安装

我只是一个虾纸丫 提交于 2019-11-26 17:03:53
环境说明:CentOS 6.5 64位 Nginx1.45 Php5.59 MySQL5.6.16 这篇文章大部分是来源于前人的,自己试验安装最新的版本。修正了一些问题 一、准备工作 配置防火墙,允许防火墙通过22(sshd)、80(WEB)、3306(MYSQL)端口 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save   #保存配置 关闭selinux: vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq 保存,退出 检查rpm有没有安装 rpm -qa | grep mysql rpm -e mysql  // 普通删除模式 rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 如果想yum安装mysql可以用以下命令 yum list |

开启php-fpm php错误日志

自作多情 提交于 2019-11-26 16:33:01
进行如下的设置就能查看到nginx下php-fpm不记录php错误日志的方法: 1,修改php-fpm.conf中的配置,如果没有请增加: 复制代码 代码如下: [global] error_log = log/php_fpm.log [www] catch_workers_output = yes 2.修改php.ini中配置,没有则增加: 复制代码 代码如下: log_errors = On error_log = log/php_error_log error_reporting=E_ALL&~E_NOTICE error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT 3.重启php-fpm systemctl restart php-fpm 当PHP执行错误时就能看到错误日志在”/usr/local/php/var/log/php_error_log”中了 来源: https://www.cnblogs.com/ethanw97m/p/11326543.html