Matheus Lima

Dica

Instalando o Apache 2.4 + PHP 7 + MySQL (LAMP)

Posted on .

Instalando o Apache 2.4 + PHP 7 + MySQL (LAMP)

Introduction

No post anterior eu mostrei a como fazer a instalação do LEMP, mas algumas pessoas me pediram um post sobre o LAMP.

Algumas pessoas preferem o Apache, então dessa vez vamos instalar o Apache 2.4, PHP 7 e o MySQL (MariaDB).

UPDATE: Agora existe uma versão deste post com o PHP 7.1 clique aqui e confira.

Screencast

Resolvi fazer um screencast para demonstrar como é rápido executar os procedimentos deste tutorial.

 

Disclaimer

Esse post foi atualizado em 14/01/2017 e testado com sucesso em uma instalação limpa do Ubuntu 16.10 x64, então na teoria você pode utilizar este post em qualquer distribuição baseada no Debian, tais como, Mint, Elementary OS e etc..

Atualizando o sistema

Como de praxe vamos começar atualizando o sistema, rode o comando a baixo e aguarde.

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade

MySQL

O próximo passo é instalar o MySQL,vamos instalar o MariaDB que é a versão opem source do MySQL, mas sinta-se a vontade para instalar o MySQL da Oracle.

No terminal rode o comando abaixo, e informe sua senha, você pode deixá-la em branco no ambiente de desenvolvimento, mas lembre-se de utilizar uma senha segura no ambiente de produção.

sudo apt-get install mariadb-server

A dica abaixo é opcional no ambiente de desenvolvimento, mas é altamente recomendável que você execute o comando abaixo no servidor de produção.

O comando mysql_secure_installation é muito importante e deve ser usado no servidor de produção, o assistente irá nos guiar através de algumas opções que vem por configuradas por padrão, mas são perigosas de se usar em no servidor de produção.

sudo mysql_secure_installation

Informe sua senha, se você deixou sua senha em branco, apenas tecle enter.

Esta é uma oportunidade para você mudar sua senha para algo seguro se você não tiver feito isso.

Você deve responder “Y” (Sim) para todas as questões restantes.

Pronto, agora nosso MySQL está pronto para uso.

Apache 2.4

Nosso próximo passo é instalar o Apache, é muito simples, rode o comando abaixo.

sudo apt-get install apache2

Abra o navegador e acesse http://localhost ou http://seu.ip, a página padrão do Apache deve ser exibida, estamos indo bem!.

Rewrite Module

Para podermos utilizar URLs amigáveis devemos ativar o modulo rewrite do apache, a maioria dos frameworks PHP pedem que ele esteja ativo, após a ativação reinicie o apache.

sudo a2enmod rewrite
sudo systemctl restart apache2

PHP 7

Agora que o Apache já está instalado, rode o comando abaixo para instalar o PHP 7 e os pacotes adicionais.

sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json php-memcached php7.0-dev php7.0-mcrypt php7.0-sqlite3 php7.0-mbstring

Dica de ouro: deixando o PHP mais seguro

Vamos fazer uma pequena alteração na configuração do PHP para tornar nossa configuração mais segura.

Abra o arquivo /etc/php/7.0/apache2/php.ini com o nano e procure pela linha (ctrl + w) cgi.fix_pathinfo, ela está comentada por ; e com valor setado para 1, descomente a linha e defina o valor para zero.

sudo nano /etc/php/7.0/apache2/php.ini 

Deve ficar conforme abaixo

cgi.fix_pathinfo=0

Esta é uma configuração previne que o PHP tente executar o arquivo mais PHP próximo se o arquivo solicitado não puder ser encontrado. Isso basicamente permitiria aos usuários elaborar pedidos PHP de uma forma que permitisse executar scripts que não deveriam ser autorizados a executar.

Tudo certo, Apache2 com o comando abaixo

sudo systemctl restart apache2

Seguindo a diante, agora crie um arquivo chamado info.php, execute o comando abaixo.

sudo nano /var/www/html/info.php

Copie e cole o código abaixo.

Volte ao navegador e acesse http://localhost/info.php, muito feliz vendo uma página com informações do PHP7 .

Mcrypt

Outro requisito dos frameworks PHP é que a extensão mcrypt do PHP também esteja ativa, rode o comando abaixo e reinicie o apache novamente.


sudo phpenmod mcrypt
sudo systemctl restart apache2

Dica:

Para facilitar sua vida mude a permissão da pasta html, isso pode ser feito facilmente rodando o comando abaixo.

sudo chmod 777 /var/www/html

Bônus 1: Instalar o XDebug

O XDebug é uma ferramenta indispensável para quem programa em PHP, o processo é um pouco diferente da instalação no LAMP.

Facilitei sua vida e resumi de forma simples e fácil a instalação do XDebug, basta rodar os comandos abaixo.


cd
wget http://xdebug.org/files/xdebug-2.5.0.tgz
tar -xvzf xdebug-2.5.0.tgz
cd xdebug-2.5.0
phpize
./configure
make
cp modules/xdebug.so /usr/lib/php/20151012
sudo echo 'zend_extension = /usr/lib/php/20151012/xdebug.so' >> /etc/php/7.0/apache2/php.ini

Reinice o Apache e voilá.

sudo systemctl restart apache2

Volte a pagina de informações, ctrl+f e procure por xdebug support e veja o XDebug está enabled

Bônus 2: Instalar o Composer

Novamente, se você esta configurando um ambiente de desenvolvimento este passo é segundo presentinho para você.

Acho que nem preciso explicar o que é o Composer, se você programa em PHP certamente já sabe o que ele é, vamos instalá-lo globalmente para utilizarmos em qualquer lugar do nosso sistema.
Rode este comando gigante abaixo e Voilà.


curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Execute composer no terminal e veja que agora você pode utilizá-lo onde quiser.

Conclusão

Uhull!

Finalizamos mais uma instalação, dessa vez configuramos nosso ambiente LAMP, instalamos tudo manualmente e deixamos tudo funcionando perfeitamente.

Essa dica é muito boa para quem não se sente a vontade com o nginx ou prefere o bom e velho LAMP.

Obrigado por ler, você no próximo post =]

matheuslima

matheuslima

https://matheuslima.com.br

Meu nome é Matheus Lima, sou desenvolvedor web, entusiasta Linux, pai de família, apaixonado por pesca, ouvinte de boa música e aspirante a chef de cozinha. Prazer!

Comments
  • user

    AUTHOR Lajack

    Posted on 02:40 22 de junho de 2016.
    Responder

    Vlw cara!! Muito boa sua explicação. 😀

  • user

    AUTHOR Michel Souza

    Posted on 12:55 6 de agosto de 2016.
    Responder

    Valeu pelo post. Precisei reinstalar tudo por não conseguir resolver um erro no apache.

  • user

    AUTHOR vhoyer

    Posted on 21:54 2 de novembro de 2016.
    Responder

    ;-; cara ;-; vc é lindo, um amor, resolveste meu problema de 2 semanas ;-; to tão feliz brigado cara, te amo S2

  • user

    AUTHOR Taverna do URF

    Posted on 01:09 5 de novembro de 2016.
    Responder

    Não consegui instalar o bonus, está diferente a estrutura de arquivos aqui

    • user

      AUTHOR Jerfeson Guerreiro

      Posted on 16:01 26 de dezembro de 2016.
      Responder

      Só olha a estrutura direitinho e muda os caminhos , tive que fazer isso aqui.

  • user

    AUTHOR henriquek3

    Posted on 21:24 17 de dezembro de 2016.
    Responder

    Muito Obrigado, eu estava procurando como instalar o xdebug!

  • user

    AUTHOR Jerfeson Guerreiro

    Posted on 16:01 26 de dezembro de 2016.
    Responder

    Matheus, muito bom seu post, está nos meus favoritos, sempre uso. 😉

  • user

    AUTHOR Olavo Zapata

    Posted on 19:01 4 de janeiro de 2017.
    Responder

    Oi Matheus, achei bem prático e útil seu post, muito obrigado e ótimo trabalho.

    Fiz a instalação, aparentemente nada deu erro na hora de inserir os códigos que indicou porém o info.php não abre nada simplesmente mostra o código
    <?php
    phpinfo();

    O que parece é que o php não esta sendo executado. Criei um arquivo de testes colocando um echo e ele não aparece.

    Sabe o que pode ser o problema?

    Muito obrigado

    • user

      AUTHOR Olavo Zapata

      Posted on 19:49 4 de janeiro de 2017.
      Responder

      Cara funcionou agora, eu reiniciei o pc, removi e reinstalei. Funcionou

      Muito Obrigado mesmo assim.

    • user

      AUTHOR matheuslima

      Posted on 00:04 5 de janeiro de 2017.
      Responder

      Olavo,

      Isso é muito estranho, por favor, teste o procedimento a baixo:

      Execute no terminal

      sudo apt-get install php7.0 libapache2-mod-php7.0

      Depois verifique com:

      a2query -m php7.0

      Se estiver desabilitado rode o comando a baixo:

      sudo a2enmod php7.0

      Feito isso, reinicie o apache.

      Espero ter ajudado

  • user

    AUTHOR Rodrigo Sousa de França

    Posted on 15:13 28 de janeiro de 2017.
    Responder

    Tem um problema que não consigo resolver. Fiz tudo direitinho como está no artigo mas não conseguio acessar o host do php. Alguém passou por esse mesmo problema e consguio solucionar?

    • user

      AUTHOR matheuslima

      Posted on 20:08 29 de janeiro de 2017.
      Responder

      Olá Rodrigo
      Você diz que não consegue acessar http://localhosts/info.php?
      Caso seja isso, verifique a parte da instalação do PHP, talvez você esqueceu de instalar algum pacote.
      Abraço

  • user

    AUTHOR Klaus Fischer

    Posted on 12:38 8 de fevereiro de 2017.
    Responder

    Excelente o tutorial, porém, acho que algo aconteceu de errado no meu. Uso o Linux Mint. segui passo a passo, porém, na hora de abrir um arquivo PHP no navegador ele exibe é o código fonte.
    O que teria dado errado?

    • user

      AUTHOR matheuslima

      Posted on 15:52 8 de fevereiro de 2017.
      Responder

      Hey Klaus!
      Peço que verifique o passo onde é instalado os pacotes do PHP, geralmente quando acontece isso é por que falta o pacote do libapache2-mod-php7.0.
      Qualquer duvida posta aqui.
      Abraço

      • user

        AUTHOR Klaus Fischer

        Posted on 15:06 9 de fevereiro de 2017.
        Responder

        Verifiquei e o pacote está instalado, até tentei reinstalar mais não funcionou.
        Alguma outra possível causa?

        • user

          AUTHOR matheuslima

          Posted on 19:26 9 de fevereiro de 2017.
          Responder

          Klaus, por favor tente o procedimento abaixo.

          Rode o comando abaixo para copiar os pacotes do PHP 7 para os diretórios do Apache.

          sudo cp /usr/local/php7/libphp7.so /usr/lib/apache2/modules/
          sudo cp /usr/local/php7/php7.load /etc/apache2/mods-available/

          Em seguida edite o arquivo /etc/apache2/apache2.conf e adicione o trecho abaixo no final do arquivo.


          SetHandler application/x-httpd-php

          Salve o arquivo e rode o comando abaixo.

          sudo a2dismod mpm_event && a2enmod mpm_prefork && a2enmod php7

          Reinicie o Apache (sudo service apache2 restart) e faça o teste no navegador.

          Espero que funcione, é difícil saber sem debugar.

          Abraço

        • user

          AUTHOR Klaus Fischer

          Posted on 18:02 10 de fevereiro de 2017.
          Responder

          Olá, a pasta /usr/local/php7/ não existe no meu computador. O arquivo apache2.conf existe, porém é somente leitura. Como mudo a permissão? CHMOD resolve?

        • user

          AUTHOR Klaus Fischer

          Posted on 18:05 10 de fevereiro de 2017.
          Responder

          Aconteceu esse erro depois que alterei o arquivo apache2.conf e tentei restartar

          Job for apache2.service failed because the control process exited with error code. See “systemctl status apache2.service” and “journalctl -xe” for details.

      • user

        AUTHOR Klaus Fischer

        Posted on 20:18 13 de fevereiro de 2017.
        Responder

        Resolvido. Arranquei tudo via purge e instalei passo a passo seguindo o seu tutorial.
        So estou com um problema. O PHPMYADMIN, instalo ele numa boa, acesso (localhost/phpmyadmin), só que não consigo acessar as bases de dados. Quando informo usuário root e a senha que defini no mariadb ele me diz acesso negado.
        E ai, como resolver isso? O usuário é o do linux? ou root?

        Valeu pelas dicas, excelente tutorial.

        • user

          AUTHOR matheuslima

          Posted on 16:01 14 de fevereiro de 2017.
          Responder

          Hey Klaus,

          Então para acessar o mysql é só usar o usuário root e a senha que você definiu ou deixe em branco caso não tenha definido uma senha.
          Faça o teste via terminal: mysql -u root -p dê enter e informe a senha, informe a senha ou dê outro enter.

          • user

            AUTHOR Klaus Fischer

            Posted on 12:09 16 de fevereiro de 2017.

            Essa dica resolveu o problema. Consegui acessar o PHPMYADMIN pelo usuário root com a senha que tinha determinado na instalação do mariadb.

            sudo mysql -u root
            use mysql;
            update user set plugin=” where User=’root’;
            flush privileges;
            exit;

            Não entendi o que foi feito mais funcionou.

            Abradeço e espero que a dica sirva para mais alguem.

  • user

    AUTHOR Naldo Santos

    Posted on 02:11 10 de fevereiro de 2017.
    Responder

    Olá primeiramente gostaria de agradecer por seu post passo a passo sobre a instalação do LAMP realmente foi o melhor que encontrei até agora, conseguir instalar e configurar tudo sertinho com uma ajudinha deste outro post http://www.dieuwe.com/blog/xdebug-ubuntu-1604-php7?view=newest
    Obrigado e parabéns

    • user

      AUTHOR matheuslima

      Posted on 11:11 10 de fevereiro de 2017.
      Responder

      Hey Naldo, obrigado.
      Deu algum erro em relação ao XDebug?

      • user

        AUTHOR Naldo Santos

        Posted on 06:09 8 de abril de 2017.
        Responder

        Olá Matheus, desculpas pela demora na resposta!
        E respondendo, correu tudo ok muito obrigado!

  • user

    AUTHOR narcisotenorio

    Posted on 04:17 22 de fevereiro de 2017.
    Responder

    Rapaz!! Aleluia!! Muito obrigado!! Parabéns!!

  • user

    AUTHOR kuatvas

    Posted on 04:59 21 de março de 2017.
    Responder

    Matheus

    perfeita sua aula, aprendi muito, objetiva …se for pedi d+ instalação sobre script php .

    obrigado mesmo

    • user

      AUTHOR matheuslima

      Posted on 15:16 21 de março de 2017.
      Responder

      Olá, obrigado pelo comentário.
      Qual sua sugestão?

  • user

    AUTHOR Caio Farias

    Posted on 23:05 20 de maio de 2017.
    Responder

    Boa noite, Matheus;
    Primeiramente, obrigado pelo vídeo, muito bacana mesmo e de enorme utilidade.

    Por último, você poderia me ajudar ou se tiver algum tutorial para tal, eu ficarei muitíssimo agradecido; pois estou tentando configurar o CLI INTERPRETER do phpStorm, porém, não estou conseguindo.

    Não sei se estou colocando o caminho correto. (Uso o ubuntu há poucos dias).

  • user

    AUTHOR Gustavo Cardoso

    Posted on 23:30 30 de maio de 2017.
    Responder

    Muito bom este post. Grato pelo trabalho.

  • user

    AUTHOR Nicolas Alves

    Posted on 21:17 3 de junho de 2017.
    Responder

    Boa! Muito obrigado, salvou aqui.

  • user

    AUTHOR Bruno Augusto

    Posted on 15:53 21 de junho de 2017.
    Responder

    Excelente Tutorial! Parabéns!

  • user

    AUTHOR David Sales

    Posted on 10:07 21 de julho de 2017.
    Responder

    Caramba, muito bom!

  • user

    AUTHOR Abraão Luiz

    Posted on 14:46 6 de setembro de 2017.
    Responder

    simplesmente incrível, muito obrigado!

  • Deixe uma resposta

    View Comments (34) ...
    Navigation