Matheus Lima

Instalando o Apache 2.4 + MySQL 5.7 + PHP 7.1 (LAMP)

Introduction

Matheus Lima

Matheus Lima

<p>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!</p>


LATEST POSTS

Como instalar o Postman no Ubuntu 10th June, 2017

Instalando o Nginx + PHP 7.1 + MySQL 5.7 (LEMP) 12th January, 2017

Dica

Instalando o Apache 2.4 + MySQL 5.7 + PHP 7.1 (LAMP)

Posted on .

Como tudo no mundo da tecnologia está sempre em constante evolução, dessa vez é a hora de instalar o Apache 2.4 + MySQL 5.7 e o PHP 7.1, nosso ambiente estará atualizado e com tudo que temos direito.

Nesse blog prezo para que tudo seja simples e rápido, e dessa vez não será diferente, você vai ver, vamos lá!

Disclaimer

Esse post foi 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

Vamos atualizar o sistema e deixar tudo zerado para começarmos com o pé direito, no terminal rode o comando a baixo e aguarde.

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

MySQL

Com o sistema atualizado agora vamos começar de verdade, primeiro vamos instalar o MySQL.
No terminal rode o comando abaixo, e informe sua senha, caso queira você pode deixá-la em branco no ambiente de desenvolvimento, nem preciso dizer para você utilizar uma senha segura no servidor de produção, não é?

sudo apt-get install mysql-server

O comando a seguir é opcional se você está usando no seu ambiente de desenvolvimento, mas você estiver usando este post para configurar um servidor de produção recomendo fortemente que o comando mysql_secure_instalation seja executado.

sudo mysql_secure_installation

A primeira pergunta é se você quer testar a força da sua senha: responda com Y (sim) ou N (não).

Segunda pergunta é sobre alterar a senha de root: novamente Y ou N.

Terceira questão é se você deseja remover os usuários anônimos do mysql: Y com toda certeza!

Quarta questão, desabilitar o login remoto do root?, Y claro!. Se você quer utilizar o login remoto, crie um usuário e configure as devidas permissões para o mesmo.

Quinta questão, remover a base teste e o acesso a ela?: Y

Sexta e ultima questão, recarregar os privilégios? YYYYYYY, ufa!

Instalando o Apache 2.4

Agora é a hora de instalar o Nginx, rode o comando abaixo e aguarde o termino.

sudo apt-get install apache2

Abra o navegador e acesse http://localhost ou http://seuIpAqui, a pagina de boas vindas do Apache deve ser exibida.

Instalando o PHP 7.1

Agora a novidade, vamos instalar a versão o PHP 7.1 que foi lançado em 01/12/2016, essa minor version foi lançada exatamente um ano após a versão 7.0, isso demonstra que a comunidade está engajada e que podemos esperar grandes novidades para o futuro.

O PHP 7.1 ainda não é oficialmente suportado pelo Ubuntu, entao temos que adicionar um repositório PPA para podermos instalar essa versão, não não se preocupe, este método é bem conhecido e muito utilizado.

sudo add-apt-repository -y ppa:ondrej/php && sudo apt-get update

Agora que o repositório esta instalado e a lista de pacotes esta atualizada, copie e cole o comando abaixo para instalar.

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

Rode o comando abaixo e veja o que o PHP 7.1 foi instalado.

php -v

Dica: caso queira ver todos pacotes disponiveis para o PHP 7.1 basta usar o comando abaixo.

sudo apt-cache search php7.1

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.1/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.1/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, renicie o PHP-fpm com o comando abaixo

sudo systemctl restart apache2

Agora vamos criar um arquivo chamado info.php para ver se nossa configuração funcionou.

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

Copie e cole o código abaixo.

Volte ao navegador e acesse http://localhost/info.php, desta vez você deve ver uma página com todas as informações do PHP 7.1.
Se tudo correu bem, você deve estar feliz da vida vendo uma pagina meio roxa com as informações do seu PHP.

Quem acompanha meu blog sabe que eu sempre deixo um presentinho no final de posts desse tipo, dessa vez não seria diferente, dessa vez deixo 2 presentes pra você, confere ai!

Plus 1: Instalar o xDebug

O XDebug é uma ferramenta indispensável para quem programa em PHP, se você esta configurando um ambiente de desenvolvimento, siga em frente, vamos instalar o XDebug de uma maneira bem sussa.


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
sudo cp modules/xdebug.so /usr/lib/php/20160303
sudo echo 'zend_extension = /usr/lib/php/20160303/xdebug.so' >> /etc/php/7.1/apache2/php.ini
sudo systemctl restart apache2

Volte na página de informações do PHP e aperte f5, procure por xdebug support e verifique que ele está enabled.

Plus 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

Se você chegou até aqui, quer dizer que tudo deu certo!

Sem enrolação ou firulas deixamos tudo configurado e rodando perfeitamente, agora você está pronto conquistar o mundo.

Espero que este post tenha sido útil e caso tenha alguma duvida, deixe nos comentários.

Obrigado por ler e até a proxima =]

Matheus Lima

Matheus Lima

https://matheuslima.com.br

<p>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!</p>

Comments
  • user

    AUTHOR ERIC MONTIBELLER

    Posted on 02:15 21 de outubro de 2017.
    Responder

    Parabéns pelo post Mathes

    como faço para atualizar a versão do PHP, estou tendo dificuldades para configurar no linux, no meu mac basta digitar o comando sphp 70 para PHP 7.0 ou sphp 56 para PHP 5.6, dessa forma consigo alternar entre as versões do php, mas aqui no linux to apanhando.

  • user

    AUTHOR Frederico Magalhães

    Posted on 04:00 11 de outubro de 2017.
    Responder

    Boa noite Matheus Lima e parabéns pelo post.
    Sou novo com o PHP, e gostaria de sua ajuda na instalação do xDebug no Debian 9. Ao realizar o comando “sudo echo ‘zend_extension = /usr/lib/php/20160303/xdebug.so’ >> /etc/php/7.1/apache2/php.ini”, o sistema Debian retorna a mensagem “bash: /etc/php/7.1/apache2/php.ini: Permissão negada”. Será que você pode me ajudar com esta situação? Muito obrigado por sua ajuda e parabéns.

    • user

      AUTHOR Matheus Lima

      Posted on 13:21 11 de outubro de 2017.
      Responder

      Hey Frederico, obrigado.

      Estranho esse erro de permissão mesmo usando o sudo, o que você pode fazer é editar o arquivo manualmente conforme abaixo.

      Abra o arquivo /etc/php/7.1/apache2/php.ini

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

      Adicione o trecho a seguir na ultima linha do arquivo

      zend_extension = /usr/lib/php/20160303/xdebug.so

      Salve e feche o arquivo ctrl+o ctrl+x

      Reinicie o apache sudo systemctl restart apache2

      Qualquer coisa poste aqui, espero ter ajudado.

      Abraço

  • user

    AUTHOR Filipe

    Posted on 19:33 29 de setembro de 2017.
    Responder

    Aproveitando sua excelente didática, poderia mostrar como habilitar https nessa instalação?

    • user

      AUTHOR matheuslima

      Posted on 21:53 29 de setembro de 2017.
      Responder

      Olá Filipe, você diz habilitar o HTTPS no ambiente de desenvolvimento ou em produção?

  • user

    AUTHOR Filipe

    Posted on 18:40 29 de setembro de 2017.
    Responder

    Fantástico.
    Isso é que é um tutorial decente. Prático, rápido e funcional.
    Show de bola total.
    Vlw ae…

  • user

    AUTHOR Marcos

    Posted on 11:41 6 de setembro de 2017.
    Responder

    Olá, após a instalação do Xdebug eu não encontro a linha xdebug support nas informações do php na página php.info. Outra questão é que eu instalei o phpmyadmin com o comando “sudo apt-get install phpmyadmin php-mbstring php-gettext”, porém apresenta erro 404 quando tento acessar. Outras erro apresentado é quando digitei o comando “sudo phpenmod mcrypt”. O erro aprensentado foi esse “WARNING: Module mcrypt ini file doesn’t exist under /etc/php/7.0/mods-available”. Utilizo o Linux mint 18 Cinnamon

    • user

      AUTHOR matheuslima

      Posted on 18:56 6 de setembro de 2017.
      Responder

      Olá Marcos, peço que verifique novamente os passos para instalação do xdebug e do phpmyadmin.
      Vou fazer uma instalação limpa para testar e te retorno aqui.
      Abraço

      • user

        AUTHOR Marcos

        Posted on 19:24 6 de setembro de 2017.
        Responder

        Sobre o phpmyadmin consegui resolver incluindo a linha Include /etc/phpmyadmin/apache.conf no arquivo /etc/apache2/apache2.conf, porém o xdebug não sei o que fazer

  • user

    AUTHOR jkrypton

    Posted on 14:35 29 de agosto de 2017.
    Responder

    cara vc esta salvando minha vida, kkkkkkkk so mais uma coisa prometo, como faço para funcionar o modo rewrite? ja tentei 2enmod, mas na configuraçao do apache2.conf, nao tem como fazer isso?

    • user

      AUTHOR matheuslima

      Posted on 11:43 31 de agosto de 2017.
      Responder

      Desculpe a demora em responder, muito trabalho por aqui para habilitar o rewrite basta executar o comando abaixo.

      sudo a2enmod rewrite
      sudo systemctl restart apache2

  • user

    AUTHOR jkrypton

    Posted on 12:29 28 de agosto de 2017.
    Responder

    Cara vc esta excelente com eese post, deu quase tudo certo a unica coisa que eu nao consigo de geito nhenum se vc puder me dar uma ajuda fico mais que agradecido, como que eu faço para acessar o mysql de outro computador na mesma rede? pois nao consigo fazer tal liberaçao.

    • user

      AUTHOR matheuslima

      Posted on 23:14 28 de agosto de 2017.
      Responder

      Olá
      Para liberar o acesso, abra o terminal e execute os comandos abaixo

      sudo vi /etc/mysql/my.cnf

      Comente as linhas
      bind-address = 127.0.0.1
      skip-external-locking

      Reinicie o servidor com o comando
      sudo systemctl restart mysql

      Acesse no prompt do mysql com o comando:
      mysql –u root –p

      Será solicitado a senha do usuário root para servidor MySQL

      No prompt do MySQL digite:

      GRANT ALL ON *.* TO root@’%’ IDENTIFIED By ‘senhadoroot’;
      FLUSH PRIVILEGES;

      Isso deve bastar para liberar o acesso do root, porém recomendo fortemente que vocÊ crie um usuário somente para acessos externos, onde basta você substituir root pelo usuário que você criou e a senha.

      Abraço

  • user

    AUTHOR Vitor Gonçalves

    Posted on 12:29 27 de agosto de 2017.
    Responder

    Com esse instalação eu consigo usar o laravel? obrigado desde já.

    • user

      AUTHOR matheuslima

      Posted on 11:41 28 de agosto de 2017.
      Responder

      Olá Vitor
      Consegue sim, mas eu prefiro usar o LEMP (nginx) para trabalhar com o Laravel.

  • user

    AUTHOR jkrypton

    Posted on 15:02 25 de agosto de 2017.
    Responder

    como faço para depois de tudo isso instalar o phpmyadmin?

    • user

      AUTHOR matheuslima

      Posted on 11:46 28 de agosto de 2017.
      Responder

      OLá, basta seguir os passos abaixo

      Instalar o phpmyadmin

      sudo apt-get install phpmyadmin php-mbstring php-gettext

      Serão feitas algumas perguntas para configurar sua instalação corretamente.

      Atenção: Quando o primeiro prompt aparece, o apache2 está destacado mas não selecionado.

      Se você não teclar Espaço para selecionar o Apache, o instalador não irá movimentar os arquivos necessários durante a instalação. Tecle Espaço, Tab, e depois Enter para selecionar o Apache.

      Para seleção do servidor, escolha apache2.

      Selecione yes quando perguntado se é para usar dbconfig-common para configurar o banco de dados

      Você será solicitado a fornecer a senha do administrador do banco de dados

      Você será solicitado a escolher e confirmar uma senha para a própria aplicação phpMyAdmin

      Ative as extensões abaixo

      sudo phpenmod mcrypt
      sudo phpenmod mbstring

      Depois, você precisará reiniciar o Apache para que suas alterações sejam reconhecidas:

      sudo systemctl restart apache2

      Espero ter ajudado, abraço

  • user

    AUTHOR Murillo

    Posted on 02:25 12 de agosto de 2017.
    Responder

    Excelente, ajudou muito !!!! Obrigado !

  • user

    AUTHOR Eduardo Assano

    Posted on 17:00 18 de junho de 2017.
    Responder

    Excelente Matheus! Obrigado

  • user

    AUTHOR Anderson Brandão

    Posted on 12:22 13 de junho de 2017.
    Responder

    Esse é o melhor post de instalação que eu já vi. Nunca foi tão rápido e fácil instalar, eu sempre achei que a instalação do php+Apache+MySql deveria ser fácil e simples assim e realmente o é.

  • user

    AUTHOR antonio

    Posted on 03:26 1 de junho de 2017.
    Responder

    Olá, esta dando erro na hora de instalar o php

    Lendo listas de pacotes… Pronto
    Construindo árvore de dependências
    Lendo informação de estado… Pronto
    E: Impossível encontrar o pacote php7.1-cli
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-cli’
    E: Impossível encontrar o pacote libapache2-mod-php7.1
    E: Não foi possível encontrar o pacote através da expressão regular ‘libapache2-mod-php7.1’
    E: Impossível encontrar o pacote php7.1-mysql
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-mysql’
    E: Impossível encontrar o pacote php7.1-curl
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-curl’
    E: Impossível encontrar o pacote php-memcached
    E: Impossível encontrar o pacote php7.1-dev
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-dev’
    E: Impossível encontrar o pacote php7.1-mcrypt
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-mcrypt’
    E: Impossível encontrar o pacote php7.1-sqlite3
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-sqlite3’
    E: Impossível encontrar o pacote php7.1-mbstring
    E: Não foi possível encontrar o pacote através da expressão regular ‘php7.1-mbstring’

    • user

      AUTHOR matheuslima

      Posted on 15:22 8 de junho de 2017.
      Responder

      Olá Antonio,

      Esse erro acontece quando o apt não consegue encontrar as pendenciarias, tente rodar o sudo apt-get update novamente, caso não funcionar, revise os passos

      Abraço

  • user

    AUTHOR Felipe Reis

    Posted on 09:47 27 de Março de 2017.
    Responder

    olá! obrigado pelo tutorial, mas qndo executo o localhost/info.php ele pede pra baixar o script ao inves de aparecer a tela azul do php e tals… como arrumo isso?

    • user

      AUTHOR Felipe Reis

      Posted on 10:20 27 de Março de 2017.
      Responder

      já descobri o que era rs
      ele não aceitou o “localhost” mas aceitou o “127.0.0.1”

  • user

    AUTHOR Natan Bispo

    Posted on 00:43 8 de Fevereiro de 2017.
    Responder

    Obrigado pelo tutorial mas quando chega nessa parte “sudo nano /usr/share/nginx/html/info.php ” ele diz que esse repositório não existe, o que faço?

    • user

      AUTHOR matheuslima

      Posted on 15:50 8 de Fevereiro de 2017.
      Responder

      Hey Natan!

      Na verdade eu errei o caminho, como estou acostumado com o Nginx foi meio automatico hehe.

      Já corrigi o post, o caminho correto é /var/www/html/info.php.

      Abraço

  • Este post foi util?. Deixe um comentário :)

    View Comments (29) ...
    Navigation