Como instalar um servidor web com Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [4ª parte: Nginx + PHP com SpawnFastCGI]

Algum tempo atrás Eu falei sobre esta série de tutoriais, sobre como instalar e configurar um servidor para hospedagem de alta demanda. Este artigo será sobre como instalar e configurar Nginx + PHP com SpawnFastCGI:

Spawn_FastCGI:

Pode-se dizer que é o que conecta o Nginx com o PHP, ou seja, mesmo que tenham o pacote PHP5 instalado se não tiverem o Spawn_FastCGI instalado e executado ao abrir um site em PHP o navegador fará o download do arquivo, não mostrará nada que o .php foi programado porque o servidor não sabe como processar arquivos .php, por isso é essencial instalar e configurar Spawn_FastCGI.

Se usássemos o Apache, seria algo tão simples quanto instalar o pacote libapache2-mod-php5, mas como usamos o Nginx, teremos que instalar o pacote spawn-fcgi. Além disso, no tutorial, explicarei como criar um script inicial para ele em /etc/init.d/ para que você possa controlá-lo de forma mais confortável.

1. Instalação:

Vamos começar com a primeira coisa, instalar Spawn-FastCGI e PHP de nossos repositórios.

Todos os comandos que serão executados são executados com permissões de root, seja colocando sudo no início de cada linha ou fazendo login como root

Se em seu servidor você usa uma distribuição como Debian, Ubuntu ou algum derivado no terminal, você deve colocar o seguinte e pressionar Entrar :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude não é instalado por padrão no Ubuntu, no entanto eu recomendo que você instale e use em vez do apt-get, pois o aptitude faz um melhor gerenciamento de dependências em certas ocasiões

Pessoalmente, não recomendo nenhum derivado do Debian, nem mesmo Ubuntu para servidores, ao longo dos anos minhas experiências não foram inteiramente satisfatórias. Minha primeira escolha para sistemas operacionais de servidor é Debian, então eu pensaria em CentOS, finalmente algum BSD

2. Configuração:

Na etapa anterior (quando instalamos o Nginx) baixamos um arquivo chamado nginx-spawn-fastcgi.tar.gz que ao descompactá-lo criou a pasta nginx-spawn-fastcgi em nossa casa, copiaremos o arquivo dela spawn-fastcgi para /etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

Além disso, precisamos do executável php-fastcgi em / usr / bin /

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

Perfeito, preparamos o arquivo que nos permitirá controlar o spawn-fastcgi e também o executável php-fastcgi, agora vamos iniciar o spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

Isso vai nos mostrar algo como: spawn-fcgi: filho gerado com sucesso: PID: 3739

Agora vamos substituir nosso arquivo /etc/nginx/sites-available/mywebsite.net por ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

cp ~/nginx-spawn-fastcgi/mywebsite_plus_php.net /etc/nginx/sites-available/mywebsite.net

Por quê? Simples, porque nosso arquivo mywebsite.net anterior não tem suporte para PHP, ou seja, é apenas Nginx, enquanto o arquivo mywebsite_plus_php.net tem suporte para PHP, ou seja, Nginx + PHP usando SpawnFastCGI.

As diferenças entre esses arquivos são várias, por exemplo:

  • Na linha 3, o arquivo que suporta PHP é adicionado index.php
  • Uma nova linha no No.3 que contém: fastcgi_index index.php;
  • Várias outras novas linhas que dizem ao Nginx como processar PHP.
  • … .. enfim, aqui está uma foto que o ajudará a saber as diferenças entre os dois arquivos:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

O arquivo mywebsite_plus_php.net é um vhost que serve de exemplo, ou seja, devemos modificá-lo e estabelecer nossas configurações.

Devemos mudar o seguinte:

  • access_log (linha 3): Este será o caminho do arquivo de log de acesso a este site
  • error_log (linha 4): Este será o caminho do arquivo de log de erros para este site
  • nome_servidor (linha 5): A URL, domínio que está hospedado nessa pasta, por exemplo, se fosse o fórum DesdeLinux seria: nome_servidor fórum.desdelinux.net
  • root (linha 6): O caminho para a pasta onde estão os arquivos html, vamos deixar em / var / www / pois será apenas um teste
Obviamente eles devem ter apontado em seus registros de DNS de seu provedor de hospedagem (utilizando CPanel ou outra ferramenta) que o domínio ou subdomínio declarado em server_name está localizado no IP deste servidor que eles estão configurando. Ou seja, no DNS em que criam subdomínios para seu domínio, eles devem declarar que o domínio ou subdomínio que colocaram na linha 5 está neste servidor (este servidor = o endereço IP do servidor em questão)

Pronto, agora vamos reiniciar o Nginx:

/etc/init.d/nginx restart

Para verificar se nosso Nginx processa o PHP corretamente, vamos copiar o arquivo phptest.php para a pasta hospedada, ou seja, aquela indicada na linha nº 6 do arquivo mywebsite_plus_php.net (por exemplo, root / var / www /), assumindo que ter o site hospedado diretamente em / var / www / seria:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

Supondo que na linha 5 de nosso mywebsite_plus_php.net (ou seja, a linha server_name) dissemos que nosso site é www.mysite.net, devemos acessar www.mysite.net/phptest.php. Em outras palavras, a ideia é acessar o arquivo phptest.php de nosso navegador e se o seguinte aparecer então nosso Nginx vinculado perfeitamente com PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

Caso não apareça, ou seja, que o navegador tenta baixar o arquivo .php ... isso significa que eles fizeram algo errado, que não substituíram /etc/nginx/sites-available/mywebsite.net por ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net… que se esqueceu de reiniciar o Nginx com /etc/init.d/nginx restart ou que se esqueceu de iniciar Spawn-FastCGI com /etc/init.d/spawn-fastcgi start

É isso no tutorial para vincular Nginx com PHP usando SpawnFastCGI, só precisamos de MySQL e APC 

Espero que seja interessante para você.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

      f3niX dito

    Se for um quarto, por que a imagem diz 3? começou em 0, eu acho? excelente postagem.

    lembranças

         KZKG ^ Gaara dito

      1ª: Apresentação
      2ª: Nginx
      3º: Nginx + PHP (Spawn_FastCGI)

      🙂

      Obrigado por ler ^ _ ^

           Rodrigo dito

        o que aconteceu com a parte 4 ???
        e com o subsequente ?????

      rpyanm dito

    Olá:

    Seria uma escolha melhor se em vez de mysql, você usasse MariaDB, como você deve saber, este último é um fork do primeiro, e já se fala que será o Mysql do futuro (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) já que o Mysql é gratuito, até certo ponto.

    SkySQL, uma empresa que fornece serviços de bancos de dados gratuitos, apoiou financeiramente o projeto MariaDB (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) e o Google que quer deixar de depender do Mysql, como também fez a Wikipedia, e fará a transição do MySQL 5.1 para o MariaDB 10.0 com a ajuda, justamente, do SkySQL, que já é especialista na área.

    olá2.

         KZKG ^ Gaara dito

      Olá,

      Sim claro, conheço o MariaDB e aliás, já falamos sobre isso: https://blog.desdelinux.net/tag/mariadb/

      No entanto, agora estou usando MySQL porque faço esses tutoriais a partir da experiência particular que tive ao migrar do Linux (com todos os seus serviços) para outros servidores, naquela época nós mudamos completamente a tecnologia e as tarefas ou mudanças que tive que enfrentar não foram poucos.
      Leia este meu comentário daquele momento: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      A ideia final é sim, migre para MariaDB, mas ainda não tive tempo de fazer os testes relevantes 🙂

      Obrigado pela leitura

      eliotime3000 dito

    Este tutorial vai me ajudar a instalar o zPanel X com NGINX para não saturar meu site ao migrar para o GNUPanel VPS.

      dragnell dito

    O presente de Natal? Eu estava ansioso para dar os parabéns a todos.

         KZKG ^ Gaara dito

      Obrigado parceiro 😀

      st0rmt4il dito

    Adicionado aos favoritos!

    A propósito, eu tenho essa dúvida e pergunta, o Nginx realmente tem mais desempenho do que o Apache?

    Saudações!

         KZKG ^ Gaara dito

      Bem, o Apache pode ser muito otimizado, mas ... até agora, o Google e quase todos nós concordamos que o Nginx consome muito menos RAM, tem um desempenho não desprezível, embora não seja tão simples na hora de configurar.

      Luis morales dito

    Bom KZKG ^ Gaara excelentes informações para aqueles de nós que se interessam por este mundo, uma dúvida, para quando o 4º post 😀