php-fpm重启

实战 Nginx 与 PHP(FastCGI)的安装、配置与优化

有些话、适合烂在心里 提交于 2019-11-30 07:37:53
一、什么是 FastCG I FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 二、Nginx+FastCGI 运行原理 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip

14.Nginx性能优化实践

◇◆丶佛笑我妖孽 提交于 2019-11-29 22:02:19
1.性能优化概述 基于Nginx性能优化,那么在性能优化这一章,我们将分为如下几个方面做介绍 1.首先我们需要了解性能优化要考虑哪些方面。 2.然后我们需要了解性能优化必须要用到的压力测试工具ab。 3.最后我们需要了解系统上有哪些注意和优化的点,以及Nginx配置文件。 我们在做性能优化工作前,我们重点需要考虑哪些方面,和了解哪些方面。 1.首先需要了解我们当前系统结构和瓶颈,了解当前使用的是什么,运行的是什么业务,都有哪些服务,了解每个服务最大能支撑多大并发。比如Nginx作为静态资源服务的并发是多少,最高瓶颈在哪里,能支持多少qps(每秒查询率)的访问请求,那我们怎么得出这组系统结构瓶颈呢,比如top查看系统的cpu负载、内存使用率、总的运行进程等,也可以通过日志去分析请求的情况,当然也可以通过我们前面介绍到的stub_status模块查看当前的连接情况,也可以对线上的业务进行压力测试(低峰期),去了解当前这套系统能承担多少的请求和并发,已做好相应的评估。这个是我们做性能优化最先考虑的地方。 2.其次我们需要了解业务模式,虽然我们是做性能优化,但每一个性能的优化都是为业务所提供服务的,我们需要了解每个业务接口的类型,比如:电商网站中的抢购模式,这种情况下面,平时没什么流量,但到了抢购时间流量会突增。 我们还需要了解系统层次化的结构,比如: 我们使用Nginx做的是代理

Linux下PHP+Nginx环境搭建

…衆ロ難τιáo~ 提交于 2019-11-29 12:42:50
PHP+Nginx环境搭建 作者:王宇阳( Mirror )^_^ 参考文章: ​ Nginx+PHP+MySQL安装参考 ​ PHP源码安装经验 ​ PHP源码环境搭建过程中常见问题 CentOS环境 配置CentOS-7网络: CentOS(最小安装)默认是不打开网络的 启动网络 vi打开:/etc/sysconfig/network-scripts/ifcfg-ens33 文件 将 “ONBOOT:no”属性修改为:“ONBOOT:yes” 重启网络服务 # sudo service network restart OK : # ip addr Nginx服务: 安装依赖包 安装: # yum -y install build-essential 安装:更多依赖包 # yum -y install gcc automake autoconf libtool make 安装:g++ # yum -y install gcc gcc-c++ 安装PCRE库 选定源码目录 ==> ftp下载PCRE库 ==> 安装PCRE库 # cd /usr/local/src # wget ftp://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz # tar -zxvf pcre-8.42.tar.gz # cd /pcre-8.42 # ./configure

nginx和php-fpm调用方式

混江龙づ霸主 提交于 2019-11-29 11:53:15
nginx和php-fpm调用方式 一.背景: 在开发中碰到一个问题,项目以nginx+php-fpm形式访问交互,结果访问项目时报错如下图: 二.分析: 提示很明确嘛,去看error.log(在nginx.conf或者vhost里头配置的,找到你对应路径即可) 错误信息如下: 1 2 3 2017/09/18 10:46:21 [error] 3880#0: *92 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.10, server: local.helios.com, request: "GET /v1/room/detail.json HTTP/1.1" , upstream: "fastcgi://127.0.0.1:9000" , host: "local.helios.com" 或 1 2 3 2017 /09/18 14:30:42 [crit] 5375 #0: *43 connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.33.10,

PHP-FPM详解

依然范特西╮ 提交于 2019-11-29 11:52:53
PHP-FPM详解 目录 作用 安装 全局配置 配置进程池 参考Company开发环境 转发请求给PHP-FPM 思考 作用 PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。 PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。 (1). 为什么会出现php-fpm fpm的出现全部因为php-fastcgi出现。为了很好的管理php-fastcgi而实现的一个程序 (2). 什么是php-fastcgi php-fastcgi 只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。 (3)为什么不叫php-cgi 其实在php-fastcgi出现之前是有一个php-cgi存在的,只是它的执行效率低下,因此被php-fastcgi取代。 (4)那fastcgi和cgi有什么区别呢? 亲们,这区别就大了,当一个服务web-server(nginx)分发过来请求的时候,通过匹配后缀知道该请求是个动态的php请求,会把这个请求转给php。 在cgi的年代,思想比较保守,总是一个请求过来后,去读取php.ini里的基础配置信息,初始化执行环境,每次都要不停的去创建一个进程,读取配置

LNMP安装常见问题集锦(一)

北战南征 提交于 2019-11-29 07:34:51
LNMP安装常见问题集锦(一) 1、ERROR: invalid PHP executable specified by TEST_PHP_EXECUTABLE = /usr/local/src/php-5.3.18/sapi/cli/php 出现情况: make php过程中的错误 错误意思: 关闭安全模式就好了,都是 safe模式的测试 惹的祸。最新版的php 安装 包中已经没有safe模块了。 解决办法: 该错误可以忽略直接make install 好了。 2、nginx: [emerg] getpwnam("www") failed 出现情况:刚装完nginx后,运行测试文件的时候。 错误意思:获得 www 用户失败。 解决办法:在nginx.conf中 把"#user nobody;"的前面#注释去掉,改为"user www www;" 3、nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) 出现情况:刚 安装 完nginx后重启时报的错。 错误意思: 在 /usr/local/nginx/logs 目录下没有nginx.pid 解决办法: 运行这句话, 问题 解决 " /usr/local/nginx/sbin/nginx -c

php-fpm进程数优化

痴心易碎 提交于 2019-11-29 06:04:29
php-fpm未优化网友反映的问题 1、最近将Wordpress迁移至阿里云。由于自己的服务器是云服务器,硬盘和内存都比较小,所以内存经常不够使,通过ps ax命令查看后,发现启动php-fpm进程数有20多个,内存吃满了,整个服务器才512M的内存。[ 来源: Puppet'S BLOGPuppet'S BLOG ] 2、刚刚开始做博客,在阿里云上买的主机配置比较低。copy了公司服务器的php-fpm等配置到主机上。nginx+php-fpm等软件启动 是没问题,但是在运行一会儿后发现页面无法访问,提示"数据库无法链接"。这把我郁闷坏了,赶紧查看mysql的配置,左看右看mysql没啥问题。 top一下?发现偶的神啊,内存全被php-fpm占用了。然后修改php-fpm的相关配置,修改完成后一切运行OK。[ 来源:辰羽的视界 ] php-fpm优化 需要了解的参数是: pm 、 pm.max_children 、 pm.start_servers 、 pm.min_spare_servers 、 pm.max_spare_servers 。 pm :表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。 在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。 下面5个参数的意思分别为: pm =

LNMP环境搭建

大兔子大兔子 提交于 2019-11-29 04:17:26
LNMP环境搭建   经过一番折腾,终于将LNMP环境搭建完成了。本文介绍的LNMP环境是在windows的Oracle VM VirtualBox中的Centos虚拟机上搭建的,各个软件的版本为:Centos7 + Nginx1.12.2 + Mysql-5.6.38 + PHP7.2.0。本文是在假设Centos7虚拟机已经安装完成的前提下进行介绍的,若尚未安装,可以前往Centos官网下载对应的ios文件安装,我下载的是这个: http://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso ,然后按照网上的教程进行安装就可以了,教程实例: https://jingyan.baidu.com/article/9c69d48f8ec01613c8024e58.html。   Centos7虚拟机安装完成就可以开始编译安装Nginx、Mysql和PHP了,下面容我一一道来。 一、安装前 1. 更新系统软件: yum update 2. 查看是否已安装wget: rpm -qa wget 否则安装: yum install wget 3. 查看是否已安装编译器: rpm -qa gcc 否则安装: yum install gcc gcc-c++ 二、安装Nginx 1.

12-3 12 php-fpm pool 慢日志 open_basedir 进程

邮差的信 提交于 2019-11-29 02:26:30
12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool nginx可以定义多个虚拟主机的conf,同样的,php-fpm可以定义多个资源池子pool,用不同的socket监听,两个pool互不影响,相互隔离 方法一:主配置文件增加,复制原有并修改即可 方法二:创建多个pool文件,放到下级目录 第一步:转移原有[www]pool并创建[axiang]pool [root@axiang-02 ~]# cd /usr/local/php-fpm/etc [root@axiang-02 etc]# vim php-fpm.conf //打开用于复制粘贴,[crtl-z]放后台 [root@axiang-02 etc]# vim php-fpm.d/axiang.conf [root@axiang-02 etc]# cat !$ cat php-fpm.d/axiang.conf [axiang] listen = /tmp/axiang.sock listen.mode = 666 user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm

应用最广泛的博客系统|wordpress部署

北城余情 提交于 2019-11-28 17:48:15
Docker部署wordpress 1.拉取 wordpress 镜像 docker pull wordpress:latest 查看镜像 docker images; 启动容器 docker run --name=wordpress -p 8003:22 -p 8001:80 -v /var/wordpress:/data wordpress 通过8001端口访问 本机需要php环境 暂时不清楚wordpress安装数据在那个地方 注意数据库路径是本机(宿主)而不是另一个容器或者当前容器的话,需要填写本机的内网ip,而不可以是localhost或者127.0.0.1 可能因为nginx配置导致样式丢失 其他问题:docker 端口映射错误解决方法 docker: Error response from daemon: driver failed programming external connectivity。。。 重启docker解决 sudo systemctl restart docker 样式无法正常显示 估计是nginx配置问题,这个就不深究了 最终使用和typecho一样使用站点的方式配置 安装php环境,下载压缩包,解压到 /var/www/html 这个和typecho一样就不多说了 ,需要注意的是目录目录权限问题 安装配置mysql和NGINX 相关配置参考