Este tutorial mostrará com instalar um Servidor Web
nginx (1.1.13) com suporte a PHP5 (5.3.9) através do
FPM (FastCGI Process Manager) com sessões armazenadas no 'memcached' (1.4.11) em um
Debian Squeeze (6.0.3).
O PHP FPM é uma alternativa ao PHP FastCGI com muitas funcionalidades voltadas a sites com grandes números de acessos e carga.
O 'memcached' é um sistema de cache de memória distribuída onde, entre outras coisas, é possível armazenar os dados de sessões de aplicações
PHP com o objetivo de melhorar a performance geral da aplicação e permitir sessões compartilhadas entre múltiplos servidores web.
Instalação
Você precisa estar logado como 'root' para executar este tutorial.
1) Instalando o PHP5 FPM 5.3.9
Edite o arquivo "/etc/apt/sources.list":
# nano /etc/apt/sources.list
Adicione ao arquivo:
deb http://ftp.br.debian.org/debian squeeze main contrib
deb-src http://ftp.br.debian.org/debian squeeze main contrib
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
Instale a Chave Pública do repositório LAMP DotDeb:
# wget http://www.dotdeb.org/dotdeb.gpg
# cat dotdeb.gpg | apt-key add -
Atualize a listagem de pacotes local:
# apt-get update
Instale o PHP5-FPM:
# apt-get install php5-fpm php-pear php5-dev
2) Instalando o nginx
Instale as dependências de compilação:
# apt-get build-dep nginx
Baixe a última versão de desenvolvimento (1.1.13):
# wget -c http://nginx.org/download/nginx-1.1.13.tar.gz
Descompacte o 'nginx-1.1.13.tar.gz':
# tar xvf nginx-1.1.13.tar.gz
Configure o nginx para compilação:
# cd nginx-1.1.13>
# ./configure --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-ipv6 --with-poll_module --with-pcre --with-http_gzip_static_module
Compile e instale o nginx:
# make
# make install
Crie os diretórios necessários ao nginx:
# mkdir -p /var/lib/nginx/body
# mkdir -p /var/www
# chown -R www-data.www-data /var/www
Faça uma cópia de segurança da configuração original do nginx:
# mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
Edite o "/etc/nginx/nginx.conf!:
# nano /etc/nginx/nginx.conf
Adicione à configuração do "/etc/nginx/nginx.conf":
user www-data;
worker_processes 2;
pid /var/run/nginx.pid;
events {}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 360;
client_max_body_size 256m;
tcp_nopush on;
tcp_nodelay on;
server {
listen 80;
server_name localhost;
error_log /var/log/nginx/localhost.error.log;
access_log /var/log/nginx/localhost.access.log;
charset utf-8;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html { root html; }
location / {
root /var/www;
autoindex on;
index index.php index.html;
}
location ~ \.php$ {
root /var/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
access_log off;
}
}
}
Inicie o nginx:
# nginx
Para testar, crie um arquivo "/var/www/index.php":
# nano /var/www/index.php
Adicione:
<?php phpinfo(); ?>
Use o navegador e coloque o endereço: http://localhost
Uma página com informações sobre o PHP deve aparecer.
2.1) Inicializando o nginx durante o Boot
Baixe o script inicialização exemplo do nginx:
# wget -c http://marcelo.juntadados.org/upload/2/187/nginx
Copie para o diretório "/etc/init.d/":
# cp nginx /etc/init.d
Defina a permissão ao "/etc/init.d/nginx":
# chmod u+rwx /etc/init.d/nginx
Adicione à inicialização do sistema:
# update-rc.d-insserv -f nginx defaults
3) Instalando o memcached
Instale as dependências de compilação:
# apt-get build-dep memcached
Baixe a última versão do memcached (1.4.11):
# wget -c http://memcached.googlecode.com/files/memcached-1.4.11.tar.gz
Descompacte o "memcached-1.4.11.tar.gz":
# tar xvf memcached-1.4.11.tar.gz
Configure o 'memcached' para compilação:
# cd memcached-1.4.11
# ./configure --prefix=/usr
Compile e instale o 'memcached':
# make
# make install
Crie um usuário 'memcached':
# adduser memcached
Execute o 'memcached' em background:
# memcached -d -m 64 -p 11211 -l 127.0.0.1 -u memcached &
3.1) Instalando o memcached através de um pacote ".deb"
# apt-get install memcached
3.2) Verificando o funcionamento do 'memcached' através do PHP
Instale o módulo 'memcache' do PHP5:
# apt-get install php5-memcache
Reinicie o 'php5-fpm':
# service php5-fpm restart
Monitorando Estado do 'memcached':
# watch 'php -r '"'"'$m=new Memcache;$m->connect("127.0.0.1", 11211);print_r($m->getstats());'"'"
4) Configurando o PHP para armazenar sessões no memcached
Edite o arquivo "/etc/php5/fpm/php.ini":
# nano /etc/php5/fpm/php.ini
Procure pela ocorrência da palavra 'session.save_handler' (no Nano, use o comando 'CTRL + W' para buscar).
Comente a linha 'session.save_handler = files', colocando ponto e vírgula (;) antes. Depois, adicione logo após, esta diretiva:
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
Reinicie o 'php5-fpm':
# service php5-fpm restart
Originalmente publicado em: