Seguindo a linha de atualizar os posts hoje vamos configurar o Apache + PHP 7.3 + MySQL, também instaleremos o xDebug e Composer.

Vamos direto ao ponto sem enrolação por que nós queremos mesmo é programar!

Disclaimer

Esse post foi testado com sucesso em uma instalação limpa do Ubuntu 18.04 x64, então em teoria você pode utilizar este post em qualquer distribuição baseada no Debian, tais como, Mint, Elementary OS e etc…

Atualizando

Vamos atualizar a lista de pacotes e atualizar os pacotes com atualizações disponíves, desse modo vamos garantir que nosso sistema esteja atualizado para receber a nossa intalação, no terminal rode o comando a baixo e aguarde.

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

Pacotes essenciais

Vamos instalar alguns pacotes que serão necessários para realizar nossa configuração.

sudo apt-get install software-properties-common curl

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? Y

Instalando o Apache

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

sudo apt-get install apache2

Abra o navegador e acesse http://localhost ou http://seu.ip , a página de boas vindas do Apache deve ser exibida.

Instalando o PHP 7.3

Seguindo a instalação agora vamos instalar o PHP 7.2 que foi lançado em 06/12/2018. Precisamos adicionar o repositório PPA ,pois o até o momento que este post foi escrito ele ainda não foi adicionado ao repositório oficial do Ubuntu, mas não se preocupe, este é um procedimento muito comum.

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

Atenção: Caso você tenha algum problema para adicionar o repositório do PHP 7.3, tente o comando abaixo

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php && sudo apt-get update

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

sudo apt-get install php7.3-cli libapache2-mod-php7.3 php7.3-mysql php7.3-curl php-memcached php7.3-dev  php7.3-pgsql php7.3-sqlite3 php7.3-mbstring php7.3-gd php7.3-json php7.3-xmlrpc php7.3-xml php7.3-zip php7.3-bcmath php7.3-soap php7.3-intl php7.3-readline

Vamos verificar se tudo foi instalado corretamente, rode o comando abaixo e verifique a versão do PHP instalada.

php -v

Dica: caso queira ver todos pacotes disponíveis para o PHP 7.3 basta usar o comando abaixo.

sudo apt-cache search php7.3

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.3/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.3/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 Apache 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.

<?php
phpinfo();

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.3. 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!

Instalar o xDebug (opcional)

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.7.2.tgz
tar -xvzf xdebug-2.7.2.tgz
cd xdebug-2.7.2.tgz
phpize
./configure
make
sudo cp modules/xdebug.so /usr/lib/php/20180731
sudo echo 'zend_extension = /usr/lib/php/20180731/xdebug.so' >> /etc/php/7.3/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.

Instalar o Composer (opcional)

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

Conclusão

De maneira bem objetiva configuramos nosso ambiente e tudo está funcionando perfeitamente, agora é só programar!.

Caso tenha alguma duvida, problema ou sugestão, deixe um comentário, se este post foi útil para você deixa um comentário também 😛

Fonte: Matheus Lima