Instalação e configuração de Apache 2.2 com os módulos mpm-worker( multithreading ) e Fast-CGI.
Depois de muito procurar por este tipo de informação em sites gringos, editei este post, um passo a passo de como instalar e configurar um servidor web apache com esses dois módulos, conferindo um aumento de performance nos servidores web apache. Espero que seja de alguma utilidade. Estou aberto a opiniões e críticas construtivas.
OS: Ubuntu 8.04 LTS Server com LVM ( Logical Volume Manager ) permitindo maior flexibilidade na manipulação das partições
Instalação do Apache
#apt-get-install apache 2
#apt-get install apache2-mpm-worker libapache2-mod-fcgid
PhP5
apt-get install php5-cgi php5-curl php5-gd php5-mysql php5-xsl
Configuração do MPM-Worker
Conf básica do MPM-Worker, configure de acordo com a sua necessidade
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers 2
Server Limit 16
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Módulo Fast-CGI
Após a execução dos passos acima, edite os arquivos de virtualhost contidos em /etc/apache2/sites-avaiable/default e default-ssl:
e adicione o seguinte conteúdo:
“AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI”
Exemplo:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName host.dominio.com.br
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error-jwbl.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-host.log combined
ServerSignature On
</VirtualHost>
Acrescentando essas linhas você estará habilitando o módulo fast-cgi para esse virtualhost
Salve o documento.
Crie um link simbólico em /etc/apache2/sites-enable/ apontando para /etc/apache2/sites-avaible, tanto para o arquivo default quanto para default-ssl ( ou algum outro virtualhost de sua preferência ).
Ative o módulo FastCgi:
#a2enmod fcgid
Certificado SSL
Entre na pasta
#cd /etc/ssl
Emitindo o certificado
#openssl req -config openssl.cnf -new -out nome_do_certificado.csr
Obs: O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br
Retire a senha do certificado:
#openssl rsa -in privkey.pem -out my-server.key
Assinando o nosso certificado
#openssl x509 -in meu-servidor.csr -out my-server.cert -req -signkey my-server.key -days 365
ative o módulo ssl:
#ae2enmod ssl
ative o site ssl:
#ae2ensite default-ssl #(ou algum virtualhost, caso seja criado)

5 comments
Comments feed for this article
Julho 2, 2009 às 4:00 pm
Desempenho: Apache com mpm-worker e fast CGI
[...] Enviado por Carlos Alberto Silvestre (silvestre·magalhaesΘgmail·com): “Tutorial para instalação e configuração de servidor web Apache com os módulos mpm-worker e fast-cgi, para aumento de desempenho em servidores web.” [referência: patch3s.wordpress.com] [...]
Julho 2, 2009 às 4:06 pm
Alta performance – apache com mpm-worker e fast-cgi « Blog Corporativo BSRSoft
[...] Alta performance – apache com mpm-worker e fast-cgi Originalmente postado no blog: http://patch3s.wordpress.com/2009/06/29/alta-performance-apache-com-mpm-worker-e-fast-cgi/ [...]
Julho 2, 2009 às 6:02 pm
Lucas Arruda
Será que não vale mais a pena rodar o PHP sobre um Apache sem o mpm-worker mas sem ter que usar Fast CGI e usar o Fast CGI apenas para um servidor de imagens (ou servidor de coisas estáticas) ?
Julho 2, 2009 às 8:30 pm
Darvin
Você tem uma estimativa de quantos % de performance você ganhou ao utilizar o PHP5 com mpm-worker e fast-cgi?
Valeu !
Julho 2, 2009 às 8:35 pm
Walter Cruz
Uma combinação muito boa – acho que faltou explicar apenas o porquê das coisas
com o PHP como fastcgi é possível especificar quantos processos PHP iremos rodar no total. Isso, para quem controla VPS é extremamente útil. Com isso temos uma separação grande entre apache e PHP… com mod_php o php fica ‘embutido’ nos processos do aapche, com fastcgi, são processos separados. Bem fácil de gerenciar.
Uso assim no meu site há um bom tempo