设为首页 收藏本站
查看: 816|回复: 0

[经验分享] LNMP5) php

[复制链接]

尚未签到

发表于 2018-12-12 09:35:12 | 显示全部楼层 |阅读模式
                  php-fpm的pool

  
  (在之前实验中我之定义了一个pool
  
   /usr/loacl/php-fpm/etc/php-fpm.conf
  )

  Nginx中可以定义多个虚拟主机,也可以定义多个pool,每个pool可以监听一个端口,也可以监听一个socket。
  因此在Nginx中如果有多个站点,则每个站点可以使用一个pool,这样就可以避免单独的一个站点耗尽php资源导致其他站点也访问有误。
  

  定义多个pool:

  cd /usr/local/php-fpm/etc/php-fpm.conf
  添加多一个pool
  
  
修改完配置文件后:
(1)测试配置文件是否正确:
/usr/local/nginx/sbin/nginx -t
(2)加载一下配置文件:
/usr/local/nginx/sbin/nginx -s reload
(/etc/init.d/php-fpm reload)

  

  

  怎么使用我们的pool
  cd /usr/local/nginx/conf/vhost/
  进入到虚拟主机配置文件,站点的配置文件:
  针对
  
  location ~ \.php$
  {
  include fastcgi_params;
  fastcgi_pass unix:/tmp/php-fcgi.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
  }
  

  
修改完配置文件后:
(1)测试配置文件是否正确:
/usr/local/nginx/sbin/nginx -t
  


  把/usr/local/php-fpm/etc/php-fpm.conf 配置文件中配置的pool拆分到
  单独的一个文件,只需在此配置文件中使用:include = etc/php-fpm.d/*.conf
  再创建相应的目录把拆分的pool放置该目录下就可以include到配置文件中。
  mkdir /usr/local/php/etc/php-fpm.d/
  

  1.修改/usr/local/php-fpm/etc/php-fpm.conf 配置文件
  

  

  2.创建目录:mkdir /usr/local/php-fpm/etc/php-fpm.d/
  

  3.创建相应pool文件
  vim www.conf
[www]
#listen =127.0.0.1:9000
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
  vim cansheng.conf
  [cansheng.com]
  #listen =127.0.0.1:9000
  listen = /tmp/cansheng.sock
  listen.mode = 666
  user = php-fpm
  group = php-fpm
  pm = dynamic
  pm.max_children = 50
  pm.start_servers = 20
  pm.min_spare_servers = 5
  pm.max_spare_servers = 35
  pm.max_requests = 500
  rlimit_files = 1024
  


  
修改完配置文件后:
(1)测试配置文件是否正确:
/usr/local/nginx/sbin/nginx -t
(2)加载一下配置文件:
/usr/local/nginx/sbin/nginx -s reload
(/etc/init.d/php-fpm reload)
  


  

                  php-fpm慢执行日志
  (很实用)

   php-fpm慢执行日志可以帮助我们快速地追踪到问题,清晰的了解到php脚本哪里执行时间长,它可以定位到具体的行。
  实验针对www.conf这个pool文件操作:
  
  vim /usr/local/php-fpm/etc/php-fpm.d/www.conf//加入如下内容
  request_slowlog_timeout = 1
  slowlog = /usr/local/php-fpm/var/log/www-slow.log
  
  
修改完配置文件后:
(1)测试配置文件是否正确:
/usr/local/nginx/sbin/nginx -t
(2)加载一下配置文件:
/usr/local/nginx/sbin/nginx -s reload
(/etc/init.d/php-fpm reload)
  


  查看慢行日志是否已经创建成功:
  
  

  

  测试:
  (因为我们的www.conf这个pool文件监听的是 /tmp/php-fcgi.sock,
  而/usr/local/nginx/conf/vhost/test.com.conf这个虚拟主机配置文件就是引用 /tmp/php-fcgi.sock文件,且是/data/wwwroot/test.com这个站点。
  
  

  所以在/data/wwwroot/test.com站点下创建测试脚本:
  vim sleep.php
  添加内容
  
  
   curl -x127.0.0.1:80 test.com/sleep.php
  
  (执行成功)
  查看慢行日志是否记录信息:
  cat /usr/local/php-fpm/var/log/www-slow.log
  (记录了慢行记录)
  
  

  

                      open_basedir

  (open_basedir的目的是安全。httpd可以针对每个虚拟主机设置一个
  open_basedir;php-fpm针对每个包不同的pool设置不同的open_basedir)
  open_basedir 的作用是限制php在指定的目录里活动。
  nginx添加open_basedir
  (针对www.conf的pool文件实验/usr/local/php-fpm/etc/php-fpm.d/www.conf)
  
  vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 添加内容:
    php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/
  

  
  (定义open_basedir的路径一定要和引用该pool文件的虚拟主机配置文件的站点路劲一致)
  

修改完配置文件后:
(1)测试配置文件是否正确:
/usr/local/nginx/sbin/nginx -t
(2)加载一下配置文件:
/usr/local/nginx/sbin/nginx -s reload
(/etc/init.d/php-fpm reload)
  


  测试:
  curl -x127.0.0.1:80 test.com/test.php -I
  
  

  配置错误日志

  1.vim /usr/local/php-fpm/etc/php.ini
  搜索/display_errors
  
  2.搜索:
  /log_errors =
  
  

  3.搜索:
  error_log = 指定错误日志文件路径
  
  ( /usr/local/php-fpm/var/log/php_errors.log)

  

  4.搜索:
  error_reporting  定义日志级别
  
  

  手动生成错误日志文件,并修改权限777

  touch /usr/local/php-fpm/var/log/php_errors.log
  chmod 777 /usr/local/php-fpm/var/log/php_errors.log
  

  故意改错open_basedir 做测试:
  
  重新启动php-fpm服务:/etc/init.d/php-fpm restart
  
  

  测试:
   curl -x127.0.0.1:80 test.com/test.php -I
  
  

  查看错误日志是否有信息:
  cat  /usr/local/php-fpm/var/log/php_errors.log
  
  

  

                      php-fpm进程管理

  就是在pool定义的。


  
  
  
  
  
  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650393-1-1.html 上篇帖子: nodejs、php命令行交互模式 下篇帖子: php中cookie和session的区别与简易用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表