17 de janeiro de 2018 - Frederico Marinho

Instalando o PHP 7.1 no Ubuntu 14.04 com Apache2, MySQL e PHPMyAdmin

Tive um pouquinho de dificuldade em preparar o ambiente com as ferramentas que utilizo no Ubuntu 14.04. O meu tá redondinho há mais de 3 anos, obrigado, mas a questão é que fui fazer o mesmo no computador de uma amiga e deu uma trabalheira danada. Principalmente com o PHPMyAdmin, que lambança ele aprontou comigo! Tá certo, eu tava um pouco enferrujado, mas poderia ser mais fácil né…

Enfim, esse tutorial é pra ajudar a mim (se precisar de novo) e a quem também concorda que o 14.04 é a melhor versão do Ubuntu até agora (mais estável) e que não quer ficar abrindo abas e mais abas pra chegar na solução. Vamos lá…


Atualização 09/06/2018

Já utilizei esse mesmo tutorial para instalar o servidor web completo com PHP 7.1 no Ubuntu 16.04 e recentemente no Ubuntu 18.04, então não se aplica somente ao 14.04.


Preparando o sistema

Antes de começar a instalar os pacotes propriamente ditos, devemos arrumar tudo para que o processo como um todo fique mais fácil e com menos possibilidade de erros.

Removendo os pacotes já instalados e versões anteriores

Antes de começar, vamos limpar a casa!

Não é obrigatório, mas sugiro fortemente remover qualquer versão que já esteja instalada no seu computador pra não dificultar o trabalho.

Antes de continuar então, acesse esse post sobre como fazer a limpeza.

 

Aptitude – O apt com atitude!

Bom, acabei de inventar esse significado que é bem lógico, então nada demais, mas é basicamente isso que o Aptitude faz: substitui o apt-get e ainda resolve as dependências dos pacotes que estão sendo instalados. Ou seja, se é probabilidade de menos problema a vista, tô dentro…

Instale usando o, adivinhe, apt-get:

sudo apt-get install aptitude

Atualizando repositórios

Precisamos de um repositório novo para instalar o PHP 7.1 através do aptitude. Para isso, vamos instalar o python-software-properties que vai disponibilizar o comando add-apt-repository que nos permite adicionar o repositório PPA (Personal Package Archives) de forma mais prática.

Digite no terminal:

sudo aptitude install python-software-properties software-properties-common

Pronto! Só isso.. agora podemos começar pra valer!

LAMP: Linux + Apache + MySQL + PHP

Nesse caso é o PLAMP : PHP+Linux+Apache+MySQL+PHPMyAdmin (acabei de inventar). Vamos por a mão na massa.

Instalando o PHP 7.1

Tanto para o PHP quanto para o Apache é necessário adicionar um novo PPA e atualizar o apt-get. Faça:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo aptitude install php7.1 libapache2-mod-php7.1 php7.1-mysql php7.1-common php7.1-curl php7.1-json php7.1-xml php7.1-soap

Instalando o Apache 2

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo aptitude install apache2

Instalando MySQL

sudo aptitude install mysql-server

Quando solicitado, informe a senha desejada para o usuário root do mysql.

DICA: não deixe a senha em branco, coloque pelo menos uma senha fácil. Vai simplificar bastante o processo de instalação.

Obs.: Tentei instalar o mysql-server-5.6 mas pelo menos comigo não deu muito certo. Recebi o seguinte erro:

Os pacotes a seguir têm dependências desencontradas:
mysql-server-5.6 : Depende: mysql-common (>= 5.6.22-1~) mas 5.5.58-0ubuntu0.14.04.1 está para ser instalado
Recomenda: libhtml-template-perl mas não será instalado
E: Impossível corrigir problemas, você manteve (hold) pacotes quebrados

Não consegui resolver, se alguém tiver uma ideia, comente por favor. Acabei instalando a versão de repositório do MySQL mesmo.

Instalando o PHPMyAdmin

Aqui é que começa o problema. Toda vez que tentava instalar o PHPMyAdmin, ele instalava o PHP 5.5 e daí configurava o Apache e o MySQL pra funcionar nessa nova versão, ignorando completamente o PHP 7.1 que tinha instalado anteriormente. Ou seja, ficava um caos.

A questão é que a versão de repositório do PHPMyAdmin do Ubuntu 14.04 não é compatível com o PHP 7.1, mas existe sim uma versão que funciona. Nesse caso, temos que fazer alguns processos manualmente. Vamos lá:

Download da versão do PHPMyAdmin compatível com o PHP 7.1. Digite no terminal:

wget https://files.phpmyadmin.net/phpMyAdmin/4.6.4/phpMyAdmin-4.6.4-all-languages.tar.gz
sudo cp phpMyAdmin-4.6.4-all-languages.tar.gz /usr/share
cd /usr/share
sudo tar xvf phpMyAdmin-4.6.4-all-languages.tar.gz
sudo mv phpMyAdmin-4.6.4-all-languages phpmyadmin

Instale os pacotes necessários ao PHPMyAdmin

sudo aptitude install php7.1-mbstring php7.1-gettext php7.1-gd php7.1-zip

Habilitar os pacotes com os comandos:

sudo phpenmod mbstring

Configurar o Apache para reconhecer o PHPMyAdmin:

sudo vi /etc/apache2/sites-available/000-default.conf

Em qualquer lugar depois de “DocumentRoot /var/www/html”, insira as linhas:

Alias /phpmyadmin “/usr/share/phpmyadmin/”
<Directory “/usr/share/phpmyadmin/”>
Order allow,deny
Allow from all
Require all granted
</Directory>

** ATENÇÃO: Se você copiou e colou o código acima, edite o arquivo novamente e reescreva as aspas (“). **

Reinicie o Apache:

sudo service apache2 restart

Pronto! Já teria que estar funcionando.

Teste o Apache+PHP+MySQL e PHPMyAdmin entrando com o endereço no navegador:

http://localhost/phpmyadmin

Se estiver tudo certinho, você conseguirá acessar o PHPMyAdmin.

Para completar o tutorial:

Para que seu servidor fique 100% funcional para desenvolvimento web, você pode querer habilitar o mod_rewrite e o uso do Htaccess para utilização de URL’s amigáveis.


Erros conhecidos (e suas soluções)

  • Alerta ao iniciar o Apache

Se em algum momento, ao tentar iniciar/reiniciar o Apache 2, você receber essa mensagem:

Restarting web server apache2
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2:
Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

Não se preocupe, é apenas um alerta amigável e não é realmente um problema. Basta inserir a linha:

ServerName localhost

ou no arquivo httpd.conf ou no apache2.conf em /etc/apache2 e reiniciar o Apache. Você verá que a mensagem vai sumir.

Daí é só iniciar o Apache:

sudo service apache2 restart

  • Access denied for user ‘root@localhost’

Essa mensagem indica que o usuário root não tem acesso ao Phpmyadmin. Para permite o login do root no PhpMyAdmin, execute os seguintes comandos:

  • Acesse o mysql com o usuário root (informe o password para entrar):
mysql -u root -p
  • Depois de logado no mysql, digite:
use mysql;
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;

Não sabe a senha do root no Mysql?

Então, faça isso:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-networking &
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root';
flush privileges;
quit;

Agora você vai conseguir logar com o root no PhpMyAdmin.


Referências

https://stackoverflow.com/questions/34060036/have-trouble-installing-phpmyadmin-on-php7-apache-2-4-7-ubuntu

https://www.digitalocean.com/community/questions/phpmyadmin-or-alternative-for-php7-nginx-mysql-5-7-ubuntu-16-04

https://askubuntu.com/questions/256013/apache-error-could-not-reliably-determine-the-servers-fully-qualified-domain-n

https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04

https://blog.hostonnet.com/ubuntu-16-04-phpmyadmin-root-login-problem

https://www.digitalocean.com/community/tutorials/how-to-reset-your-mysql-or-mariadb-root-password

https://stackoverflow.com/questions/37879448/mysql-fails-on-mysql-error-1524-hy000-plugin-auth-socket-is-not-loaded?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

0

Desenvolvimento web / Linux / PHP / Ubuntu

Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *