[PHP] apache在worker模式配置fastcgi使用php-fpm

1.準備:php

dpkg -L apache2查看全部安裝的apache2的應用apache

a2query -M查看apache2使用的模式vim

httpd -l舊版本查看當前apache模式安全

 

2.查看apache的進程數:多線程

ps aux|grep httpd|grep -v grep|wc -l //查看prefork模式的併發

pstree |grep httpd //查看worker模式的socket

 

3.prefork, worker, event 三種模式的區別:php-fpm

1. prefork 中沒有線程的概念,是多進程模型,一個進程處理一個鏈接;穩定;響應快。其缺點是在鏈接數比較大時就很是消耗內存。ui

2. worker 是多進程多線程模型,一個進程有多個線程,每一個線程處理一個鏈接。與prefork相比,worker模式更節省系統的內存資源。不過,須要注意worker模式下的Apache與php等程序模塊的兼容性。spa

3. event 是worker模式的變種,它把服務進程從鏈接中分離出來,在開啓KeepAlive的場合下相對worker模式可以承受更高的併發負載,不能很好的支持https的訪問

4.apache使用mod_php的話,不能使用worker模式,不是線程安全的

 

4.apache配置fastcgi:

apt-get install apache2-mpm-worker//使用apache的worker模式,多進程多線程

apt-get install libapache2-mod-fastcgi php5-fpm//安裝apache的fastcgi模塊,和php-fpm

touch /usr/lib/cgi-bin/php5.fcgi//建立一個文件

chown -R www-data:www-data /usr/lib/cgi-bin//賦值權限

vim /etc/apache2/conf-available/php5-fpm.conf//配置apache和php-fpm的文件

<IfModule mod_fastcgi.c>

   AddHandler php5.fcgi .php

   Action php5.fcgi /php5.fcgi

   Alias /php5.fcgi /usr/lib/cgi-bin/php5.fcgi

   FastCgiExternalServer /usr/lib/cgi-bin/php5.fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600

   //若是是使用端口的話

   FastCgiExternalServer /usr/lib/cgi-bin/php5.fcgi -host 127.0.0.1:9000 -pass-header Authorization -idle-timeout 3600

   <Directory /usr/lib/cgi-bin>

       Require all granted

   </Directory>

</IfModule>

 

service apache2 restart && sudo service php5-fpm restart
相關文章
相關標籤/搜索