设为首页收藏本站

追梦Linux

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1511|回复: 0

配置lighttpd连接php-fpm

[复制链接]

482

主题

485

帖子

16万

积分

CEO

Rank: 9Rank: 9Rank: 9

积分
168233

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2015-12-16 14:45:45 | 显示全部楼层 |阅读模式
关于lighttpd搭建及lnmp环境搭建,详见本站,搜索lnmp或者在nginx/lnmp版块均可找到,此处不再一一解析

此处我们值得注意的是之前nginx连接php-fpm有两种方式,默认连接方式为php-cgi监听127.0.0.1:9000,还有种使用socket方式连接。
两种区别主要是前者是通过TCP/IP协议通信,后者是用UNIX的socket通信,经测试后者效率更高。
什么是Unix domain socket?—— 维基百科
Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网络底层协议来通信。Unix domain socket 的功能是POSIX操作系统里的一种组件。
Unix domain sockets 使用系统文件的地址来作为自己的身份。它可以被系统进程引用。所以两个进程可以同时打开一个Unix domain sockets来进行通信。不过这种通信方式是发生在系统内核里而不会在网络里传播。

下面具体讲解lighttpd连接php-fpm两种方式关键配置
第一种:通过TCP/IP协议通信,即php监听9000

修改/usr/local/lighttpd/config/modules.conf第133行取消掉注释,即为:
  1. include "conf.d/fastcgi.conf"
复制代码
修改/usr/local/lighttpd/config/conf.d/fastcgi.conf 在第8行下面添加为如下:
  1. server.modules += ( "mod_fastcgi" )

  2. fastcgi.server = ( ".php" =>
  3.   ( "php-tcp" =>
  4.     (
  5.       "host" => "127.0.0.1",
  6.       "port" => "9000"
  7.     )
  8.   )
  9. )
复制代码
检测php-fpm通信方式,查看/usr/local/php/etc/php-fpm.conf监听9000端口
  1. [global]
  2. pid = /usr/local/php/var/run/php-fpm.pid
  3. error_log = /usr/local/php/var/log/php-fpm.log
  4. log_level = notice

  5. [www]
  6. listen = 9000
  7. listen.backlog = -1
  8. listen.allowed_clients = 127.0.0.1
  9. listen.owner = www
  10. listen.group = www
  11. listen.mode = 0666
  12. user = www
  13. group = www
  14. pm = dynamic
  15. pm.max_children = 20
  16. pm.start_servers = 2
  17. pm.min_spare_servers = 1
  18. pm.max_spare_servers = 6
  19. request_terminate_timeout = 100
  20. request_slowlog_timeout = 2
  21. slowlog = var/log/slow.log
复制代码
重启lighttpd,新增一个info.php文件检验是否可连接php
vim /usr/local/lighttpd/webpages/info.php
  1. <?php
  2. phpinfo();
  3. ?>
复制代码
浏览器打开,显示如下,即为成功!



测试与mysql的连通性
安装mysql默认有test库,用户名密码均为root
新建一个index.php页面,vim /usr/local/lighttpd/webpages/index.php
  1. <?php
  2. $dbhost = 'localhost';
  3. $dbuser = 'root';
  4. $dbpassword = 'root';
  5. $dbname = 'test';
  6. $connect = mysql_connect($dbhost, $dbuser, $dbpassword, $dbname);
  7. if($connect) {
  8.      echo "succeed";
  9. } else {
  10.      echo "failed";
  11. }
  12. ?>
复制代码
浏览器返回success即为成功。


第二种:通过socket方式通信,即/tmp/php-cgi.sock

修改/usr/local/php/etc/php-fpm.conf,将listen=9000改为listen = /tmp/php-cgi.sock,如下
  1. [global]
  2. pid = /usr/local/php/var/run/php-fpm.pid
  3. error_log = /usr/local/php/var/log/php-fpm.log
  4. log_level = notice

  5. [www]
  6. listen = /tmp/php-cgi.sock
  7. listen.backlog = -1
  8. listen.allowed_clients = 127.0.0.1
  9. listen.owner = www
  10. listen.group = www
  11. listen.mode = 0666
  12. user = www
  13. group = www
  14. pm = dynamic
  15. pm.max_children = 20
  16. pm.start_servers = 2
  17. pm.min_spare_servers = 1
  18. pm.max_spare_servers = 6
  19. request_terminate_timeout = 100
  20. request_slowlog_timeout = 2
  21. slowlog = var/log/slow.log
复制代码
进入到/usr/local/lighttpd/config/conf.d目录,备份之前的fastcgi.conf 文件
cp fastcgi.conf fastcgi.conf.bak
修改fastcgi.conf 之前一段为如下:
  1. server.modules += ( "mod_fastcgi" )

  2. fastcgi.server = ( ".php" =>
  3.         ((
  4.                 "socket" => "/tmp/php-cgi.sock",
  5.                 "broken-scriptfilename" => "enable"
  6.         ))
  7. )
复制代码
重启lighttpd,也能显示上图的效果,经测试通过socket方式通信,访问网站更快,效率更高。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

QQ|小黑屋|手机版|Archiver|追梦Linux ( 粤ICP备14096197号  点击这里给我发消息

GMT+8, 2019-7-17 16:56 , Processed in 0.284637 second(s), 33 queries .

Powered by 追梦Linux! X3.3 Licensed

© 2015-2017 追梦Linux!.

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