多php-fpm实例,ubuntu下php-fpm多实例运行配置

php-fpm服务一般情况下我们只会配置一个php-fpm了,如果我们碰到要实现多实例php-fpm服务要如何来配置呢,下面一起来看看吧。 这里是在LNMP环境的基础上配置多实例的过程。因为我在使用的是LNAMP环境,所以额外编译一份php到/usr/local/php-fpm/,配置文件在/etc/php-fpm/,并在此基础上做的笔记。 先修改三个值:

以static方式,也就是固定进程数量运行php-fpm。 本文仍 以dynamic方式运行

每个实例建立100个worker进程。(不宜太多,避免不稳定),本文建立25个

每个进程执行完200次请求即退出。(避免PHP的内存泄露问题,也就是内存越用越多)

位置: /etc/php5/fpm/pool.d/www.conf

sed -i 's#pm.max_children = 5#pm.max_children = 25#' /etc/php5/fpm/pool.d/www.confsed-i 's#;pm.max_requests = 500#pm.max_requests = 500#' /etc/php5/fpm/pool.d/www.conf

拷贝: cp /etc/php5/fpm /etc/php5/fpm2

sed -i 's#listen = 127.0.0.1:9000#listen = 127.0.0.1:9001#' /etc/php5/fpm2/pool.d/www.conf

拷贝: cp /etc/init.d/php5-fpm /etc/init.d/php5-fpm2

修改一下几处,其实就是把对应地方改为fpm2

NAME=php5-fpm2

...

DAEMON_ARGS="--daemonize --fpm-config /etc/php5/fpm2/php-fpm.conf"PIDFILE=/var/run/php5-fpm2.pid

.../usr/lib/php5/php5-fpm2-checkconf || return 1...

拷贝: cp /usr/lib/php5/php5-fpm-checkconf /usr/lib/php5/php5-fpm2-checkconf

修改对应地方改为fpm2

errors=$(/usr/sbin/php5-fpm --fpm-config /etc/php5/fpm2/php-fpm.conf -t 2>&1 | grep "\[ERROR\]" || true);

配置完毕,然后启动

service php5-fpm2 start

毫无反应!!!!

关键是,连报错提示都木有。。。

排错中。。。。。

发现在 [ -x "$DAEMON" ] || exit 0 时已经退出执行了,解决办法:cp /usr/sbin/php5-fpm /usr/sbin/php5-fpm2 。

同样问题依旧出现,继续,发现进入了 if init_is_upstart; then 条件判断,导致退出执行,无奈之举 注释了exti 语句。。感觉欠妥,但一时不知更好的处理方法,如果有更好的解决办法,,烦请告知。。在此多谢

52c636ea28a28eabc37ad54c2c8a35f2.png

终于,,,,可以启动了。。

75a8922ba7a8be8250c9635726905641.png

配置nginx

位置: /etc/nginx/sites-enabled/default

upstream phpbackend {

server127.0.0.1:9000 weight=50 max_fails=10 fail_timeout=30;

server127.0.0.1:9001 weight=50 max_fails=10 fail_timeout=30;

}

server {

listen80default_server;

listen [::]:80 default_server ipv6only=on;

root/usr/share/nginx/html;

index index.php index.html index.htm;

# Make site accessiblefrom http://localhost/

server_name localhost;

location/{

# First attempt to serve requestasfile, then

#as directory, then fall back to displaying a 404.

try_files $uri $uri/ =404;

# Uncomment to enable naxsi onthislocation

# include/etc/nginx/naxsi.rules

}

location~\.php$ {

try_files $uri= 404;

#fastcgi_pass127.0.0.1:9000;

fastcgi_pass phpbackend;

fastcgi_index index.php;

include fastcgi_params;

}

}

重启nginx,ok

访问phpinfo,可正常访问

在这有几点疑问,不知道大家是否有同样疑惑,或者知道答案的小伙伴烦请共享下知识,哈哈哈哈

php-fpm明明开启了多实例运行,9000和90001端口,但是通过访问phpinfo看到的信息一直访问的配置文件是/etc/php5/fpm下面的,即便通过日志看到的访问的是9001端口,配置依旧是/etc/php5/fpm。。纳闷

0bc94dea6c08d175a2bf93e41d53505b.png

e6ff96db779875580cff1337daddb39d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值