这篇文章主要介绍”在服务器上怎么安装配置PHP-FPM和Nginx”,在日常操作中,相信很多人在在服务器上怎么安装配置PHP-FPM和Nginx问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在服务器上怎么安装配置PHP-FPM和Nginx”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
<强> PHP-FPM 强>
PHP-FPM (PHP FastCGI程序管理器),是用于管理PHP进程池的软件,用于接收和处理来自Web服务器(如Nginx)的请求.PHP-FPM会创建一个主进程(通常以操作系统中根用户的身份运行),控制何时以及如何把HTTP请求转发给一个或多个子进程处理.PHP-FPM主进程还控制着什么时候创建和销毁PHP子进程.PHP-FPM进程池中的每个进程存在的时间都比单个HTTP请求长,可以处理10,50100年或更多的HTTP请求。
安装
#, Ubuntu sudo apt-get  install python-software-properties sudo add-apt-repository  ppa: ondrej/php - 5.6 sudo apt-get 更新 sudo apt-get  install php5-fpm php5-cli  php5-curl \ ,,,,php5-gd php5-json php5-mcrypt php5-mysqlnd
全局配置
在Ubuntu中,PHP-FPM的主配置文件是,<代码>/etc/php5/fpm/PHP-FPM。conf 代码>。
下面是PHP-FPM最重要的全局配置,建议把默认值改成下面的值:
- <李>
<代码> emergency_restart_threshold=10 代码>
在指定时间内,如果失效的PHP-FPM子进程数超过这个值,PHP-FPM主进程就优雅重启
<代码> emergency_restart_interval=1 m 代码>
设定,<代码> emergency_restart_threshold> 代码,采用的时间跨度
这两个配置是PHP-FPM进程的基本安全保障,能解决简单的问题,但是不能解决由拙劣的PHP代码引起的重大问题。
配置进程池
PHP-FPM配置文件的其它配置内容是一个名为池定义的区域,这个区域里的配置用于设置每个PHP-FPM进程池,PHP-FPM进程池是一系列相关的PHP子进程。通常,一个PHP应用有自己的一个PHP-FPM进程池。
在Ubuntu中,池定义区域只有下面这行内容:
<>之前包括=/etc/php5/fpm/pool.d/*。参看这行代码的作用是让PHP-FPM加载,<代码>/etc/php5/fpm/pool.d> 代码,目录中的各个进程池定义文件。进入这个目录,应该会看到一个名为,www.conf 代码>,<代码>的文件,这是名为,www 代码>,<代码>的默认PHP-FPM进程池配置文件。
各个PHP-FPM进程池都以指定的操作系统用户和用户组的身份运行。我们要配置默认的,<代码> www 代码> PHP-FPM进程池,让它以,<代码> 代码>部署,用户和用户组的身份运行:
- <李>
<代码>用户=部署代码>
李> <李><代码>组=部署代码>
李> <李><代码>听=127.0.0.1:9000> 代码:PHP-FPM进程池监听的IP地址和端口号,让PHP-FPM只接受Nginx从这里传入的请求,<代码> 127.0.0.1:9000> 代码,让指定的PHP-FPM进程池监听本地端口,<代码> 9000 代码>进入的连接。
李> <李><代码>听。allowed_clients=127.0.0.1> 代码:可以向这个PHP-FPM进程池发送请求的IP地址(一个或多个),为了安全,我把这个设置为,<代码> 127.0.0.1> 代码,即只有当前设备能把请求转发给这个PHP-FPM进程池。
李> <李><代码>点。max_children=15> 代码:这个设置设定任何时间点PHP-FPM进程池中最多能有多少个进程。这个设置没有绝对正确的值,你应该测试你的PHP应用,确定每个PHP进程需要使用多少内存,然后把这个设置设定为可用内存能容纳的PHP进程总数。
李> <李><代码>点。start_servers=3> 代码:PHP-FPM启动时PHP-FPM进程池立即可用的进程数。
李> <李><代码>点。min_spare_servers=2> 代码:PHP应用空闲时PHP-FPM进程池中可以存在的进程数量最小值。这个设置的值一般和,<代码> pm.start_servers> 代码,一样。
李> <李><代码>点。max_spare_servers=4> 代码:PHP应用空闲时PHP-FPM进程池中可以存在的进程数量最大值。
李> <李><代码>点。max_requests=1000> 代码:回收进程之前,PHP-FPM进程池中各个进程最多能处理的HTTP请求数量。这个设置有助于避免PHP扩展或库因为编写拙劣而导致内存不断泄露。
李> <李><代码> slowlog=/道路//slowlog.log> 代码:这个设置的值是一个日志文件在文件系统中的绝对路径。这个日志文件用于记录处理时间超过,<代码> n> 代码,秒的HTTP请求信息,以便找出PHP应用的瓶颈,进而进行调试。需要注意的是,PHP-FPM进程池所属的用户和用户组要对这个日志文件有写权限。