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