Pesquisa personalizada
IP

terça-feira, 29 de setembro de 2015

RaspBerry PI2 como WebServer - LEMP



Todos já ouvimos falar sobre a combinação LAMP[ Linux, Apache, mysql e PHP], eu mesmo utilizo o famoso "combo" em diversos servidores de produção sem maiores problemas, claro, conto com máquinas bem dimensionadas para tarefa, mas em hardware mais modestos como o caso do pequeno, mas valente RaspBerry, precisamos otimizar ao máximo os recursos disponíveis.

Com o objetivo de criar um servidor Web com meu RaspBarry, para "estudos acadêmicos", então fui perguntar para meu amigo[google] o que ele recomendaria no lugar do combo LAMP, para minha surpresa a resposta foi: LEMP [Linux, NGINX, mysql e PHP]. O "E" da sigla vem da pronuncia de nginx, que se pronuncia `Engine x`. Os mais céticos provavelmente reclame do Mysql, bom no lugar poderemos utilizar o sqlight.

Então sem mais rodeios, vamos a descrição da solução encontrada:

Hardware:
    RaspBerry PI 2 Modelo B
    CPU: 900MHz quad-core ARM Cortex-A7
    RAM: 1GB
    SD: 32GB

Software:
    Sistema Operacional: Raspbian
        [Porte do Debian wheezy para CPU ARM]

Web-Server: Nginx
        [O Nginx é um servidor Web, proxy reverso, proxy balanceador de carga, e faz praticamente tudo que o Apache faz, só que muito mais rápido!]

PHP: PHP5-fpm
        [FPM (FastCGI Process Manager) é uma alternativa para a implementação PHP FastCGI com alguns recursos adicionais, principalmente usado em sites pesados. A decisão de utilizar o FPM no lugar da implementação tradicional do PHP é meramente acadêmica.]

DB-Server: Mysql

Implementação:
Para instalar os software foi utilizado os pacotes pré compilados distribuídos juntamente com o Raspbian via apt-get, para os mais puritanos, pode baixar e compilar os software sem problemas, só não esqueça de instalar os compiladores.

    1. Instalando/Configurando o nginx e PHP-fpm
   
        Uma das grandes vantagens do nginx e sua fácil configuração, vou demonstrar como instalar e configurar o nginx para utilizar o php-fpm.

        Instalando:
            apt-get install nginx php5-fpm php5-cli
           
            Note que também estou instalando o php5-cli, assim é possível executar scripts PHP diretamente no shell.

Configurando:       
        O arquivo de configuração do Server nginx está em /etc/nginx/nginx.conf, este arquivo é o responsável pelo comportamento do servidor Web Nginx, já o arquivo que contém a configurações do site esta em /etc/nginx/sites-available/default, seguindo o padrão do Debian.
       
        Dentro do arquivo encontramos a tag server {...}, dentro dela é que devemos colocar as configurações.
       
        Abaixo uma configuração minimalista de um host:
       
        server {
            listen 80;
            listen meusite.com:80;
            server_name meusite.com;
            #Diretório root do site, o mesmo DOCUMENT_ROOT do Apache
            root /usr/share/nginx/www/meusite.com;
            index index.html index.htm index.php;

            #Configuração para utilizar o PHP-fpm, onde o nginx envia os arquivos .php para o PHP-fpm.
            location ~ .php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
        }

        Mais opções estão disponíveis neste web server, porem, minhas necessidades não requerem configurações mais elaboradas.
       
2. Instalando Mysql
       
            A instalação do mysql é bastante simples, o único detalhe solicitado pelo instalador é senha root do mysql.

Instalação:
                apt-get install php5-mysql mysql-server php5-sqlite php5-odbc
           
    Com isso terminamos a instalação dos pacotes.
   
    Para finalizar precisamos reiniciar os servidos, execute:
   
        /etc/init.d/mysql stop; /etc/init.d/mysql start
        /etc/init.d/nginx stop; /etc/init.d/nginx start
        /etc/init.d/php5-fpm stop;  /etc/init.d/php5-fpm start
       
        Para muitos o ultimo comando pode ser um pouco estranho, mas uma das características o php5-fpm é ser executado como um daemon
   
    E finalmente testamos as configurações, abra seu navegador favorito e acesso o endereço do seu servidor.
        http://ip_do_servidor/
   
    Lembre de colocar um arquivo index.php dento do diretório root do site.
        Exemplo de index.php           
                                 echo 'Teste do Web Server NGINX com PHP-pfm';
            ?>
             Ou utilizando a função phpinfo:
                               phpinfo();
              ?>

           
    Referencias:
    http://www.raspberrypi.org
    https://www.raspbian.org/
    https://www.raspberrypi.org/downloads/raspbian/
    http://nginx.org/en/
    http://php.net/manual/pt_BR/install.fpm.php
    https://www.mysql.com/
    http://php.net/manual/pt_BR/book.sqlite.php
    https://www.sqlite.org/about.html

Nenhum comentário:

Postar um comentário