Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Marc...
Tela cheia

Tutorial Instalando um Servidor Web nginx com PHP-FPM (FastCGI Process Manager) e memcached

27 de Janeiro de 2012, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 2847 vezes

Logo nginxEste 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) no 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. Você precisa esta logado como root para executar este tutorial.

Logo PHP1) 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
Logo memcached
 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 seguraç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 a configuração eo /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 a 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 Pacote

 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

 Re-inicie 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

 Edit 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-virgulha (;) antes e depois adicione logo após esta diretiva
 session.save_handler = memcache
 session.save_path = "tcp://127.0.0.1:11211"


 Re-inicie o php5-fpm
 service php5-fpm restart


Tags deste artigo: software livre tutorial redes infraestrutura php nginx memcached

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.