Pesquisa de site

Instale Apache, MySQL 8 ou MariaDB 10 e PHP 7 no CentOS 7


Este guia prático explica como instalar a versão mais recente do Apache, MySQL 8 ou MariaDB 10 e PHP 7 junto com os módulos PHP necessários no RHEL/CentOS 7/6 e no Fedora 24-29.

Esta combinação do sistema operacional (Linux) com o servidor web (Apache), servidor de banco de dados (MariaDB/MySQL) e scripts do lado do servidor linguagem (PHP) é conhecida como pilha LAMP.

Não perca: Como instalar o Nginx 1.15, MariaDB 10 e PHP 7 no CentOS 7

Desde setembro de 2015, o PHP 5.4 não é mais suportado pela equipe PHP e chegou ao fim de sua vida útil, ainda assim, o PHP 5.4 vem com o RHEL/CentOS 7 /6 com pequenas alterações de versão e o Red Hat suporta isso, portanto não é necessário atualizar para uma versão superior. No entanto, é altamente recomendável atualizar seu PHP 5.4 para PHP 5.5+ para maior segurança e desempenho.

Aqui está o que vem com sua distribuição Linux atual:

PHP Current Version RHEL/CentOS 7 RHEL/CentOS 6
7.3 5.4 5.3

Para fazer isso, vamos habilitar os repositórios EPEL e Remi e usar yum e dnf (a nova ferramenta de gerenciamento de pacotes disponível no Fedora).

Etapa 1: Instalando o Repositório EPEL e Remi

EPEL (Pacotes Extra para Enterprise Linux) é um repositório baseado na comunidade que oferece pacotes de software complementares para distribuições Linux baseadas em RHEL.

Remi é um repositório onde você pode encontrar as versões mais recentes da pilha PHP (completa) para instalação nas distribuições Fedora e Enterprise Linux.

No RHEL/CentOS 7

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms

No RHEL/CentOS 6

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms

No Fedora 24-29

rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

Etapa 2: Instalando o Servidor Web Apache

Apache é um servidor web HTTP gratuito e de código aberto que roda na maioria dos sistemas operacionais baseados em UNIX, bem como no Windows. Como tal, pode ser usado para servir páginas da web estáticas e lidar com conteúdo dinâmico. Relatórios recentes mostram que o Apache é o servidor número um usado em sites e computadores voltados para a Internet.

Para instalar o servidor web Apache, primeiro atualize os pacotes de software do sistema e instale-o usando os seguintes comandos.

yum -y update
yum install httpd

Uma vez instalado o servidor web Apache, você pode começar a habilitá-lo para iniciar automaticamente na inicialização do sistema.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

Se você estiver executando o firewalld, certifique-se de permitir o tráfego Apache no firewall.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

Etapa 3: Instalando PHP usando o Repositório Remi

PHP (Hypertext Preprocessor) é uma linguagem de script do lado do servidor gratuita e de código aberto, mais adequada para desenvolvimento web. Ele pode ser usado para produzir páginas dinâmicas para um site e é encontrado com mais frequência em servidores *nix. Uma das vantagens do PHP é que ele é facilmente extensível através do uso de uma ampla variedade de módulos.

Para instalar o PHP, primeiro você precisa habilitar o repositório Remi instalando o yum-utils, uma coleção de programas úteis para gerenciar repositórios e pacotes yum.

yum install yum-utils

Uma vez instalado, você pode usar o yum-config-manager fornecido por yum-utils para ativar o repositório Remi como o repositório padrão para instalar diferentes versões do PHP, conforme mostrado.

Por exemplo, para instalar a versão PHP 7.x, use o seguinte comando.

------------- On CentOS & RHEL ------------- 
yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
dnf --enablerepo=remi install php70      [Install PHP 7.0]
dnf --enablerepo=remi install php71      [Install PHP 7.1]
dnf --enablerepo=remi install php72      [Install PHP 7.2]
dnf --enablerepo=remi install php73      [Install PHP 7.3]

A seguir, instalaremos todos os módulos PHP a seguir neste artigo. Você pode procurar por mais módulos relacionados ao PHP (talvez para integrar uma funcionalidade específica que suas aplicações web precisam) com o seguinte comando:

------ RHEL/CentOS 7/6------
yum search all php     

------ Fedora ------
dnf search all php   

Independentemente da distribuição, os comandos acima retornam a lista de pacotes nos repositórios atualmente habilitados que incluem a palavra php no nome do pacote e/ou na descrição.

Aqui estão os pacotes que iremos instalar. Tenha em mente que os conectores MySQL (PHP, Perl, Python, Java, etc.) funcionarão inalterados com MariaDB, pois ambos os sistemas usam o mesmo protocolo de cliente e as bibliotecas de cliente são compatíveis com binários.

  1. MariaDB/MySQL (php-mysql) – um objeto dinâmico compartilhado que adicionará suporte MariaDB ao PHP.
  2. PostgreSQL (php-pgsql) – Suporte de banco de dados PostgreSQL para PHP.
  3. MongoDB (php-pecl-mongo) – Uma interface para comunicação com o banco de dados MongoDB em PHP.
  4. Genérico (php-pdo) – Um objeto dinâmico compartilhado que adicionará uma camada de abstração de acesso ao banco de dados ao PHP.
  5. Memcache (php-pecl-memcache) – Memcached é um daemon de cache projetado especialmente para aplicações web dinâmicas para diminuir a carga do banco de dados armazenando objetos na memória.
  6. Memcached (php-pecl-memcached) – Uma extensão que usa a biblioteca libmemcached para fornecer API para comunicação com servidores memcached.
  7. GD (php-gd) – Um objeto de compartilhamento dinâmico que adiciona suporte para uso da biblioteca gráfica gd ao PHP.
  8. XML (php-xml) – Objetos compartilhados dinâmicos que adicionam suporte ao PHP para manipulação de documentos XML.
  9. MBString (php-mbstring) – Uma extensão para lidar com strings multibyte em aplicativos PHP.
  10. MCrypt (php-mcrypt) – Uma biblioteca Mcrypt para scripts PHP.
  11. APC (php-pecl-apcu) – Módulo APC usado para otimizar e armazenar em cache o código PHP.
  12. CLI (php-cli) – Interface de linha de comando para PHP.
  13. PEAR (php-pear) – Estrutura de repositório de aplicativos para PHP.

Instale os seguintes módulos PHP necessários com o comando abaixo.

------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

Etapa 4: instalação do banco de dados MySQL ou MariaDB

Nesta seção, mostraremos a instalação dos bancos de dados MySQL e MariaDB, então você decide o que escolher com base em suas necessidades.

Instalando o servidor de banco de dados MySQL 8

MySQL é um dos sistemas de gerenciamento de banco de dados relacional (RDBMS) de código aberto mais populares do mundo, que executa qualquer servidor, fornecendo acesso multiusuário a vários bancos de dados. MySQL é executado com Apache.

Para instalar a versão mais recente do MySQL 8.0, instalaremos e habilitaremos o repositório oficial do software MySQL Yum usando os seguintes comandos.

rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm        [On RHEL/CentOS 7]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm     [On RHEL/CentOS 6]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc29-1.noarch.rpm    [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc28-1.noarch.rpm    [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc27-1.noarch.rpm    [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc26-1.noarch.rpm    [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc25-1.noarch.rpm    [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc24-1.noarch.rpm    [On Fedora 29]

Depois de instalar o repositório de software MySQL Yum para sua plataforma Linux, instale agora a versão mais recente do MySQL (atualmente 8.0) usando o seguinte comando.

yum install mysql-community-server      [On RHEL/CentOS]
dnf install mysql-community-server      [On Fedora]

Após a instalação bem-sucedida do MySQL, é hora de iniciar o servidor MySQL com o seguinte comando.

service mysqld start

Confira nosso artigo sobre como proteger a instalação do banco de dados MySQL 8.

Instalando o servidor de banco de dados MariaDB 10

MariaDB é um fork do conhecido MySQL, um dos sistemas de gerenciamento de banco de dados relacional (RDBMS) mais populares do mundo. É inteiramente desenvolvido pela comunidade e, como tal, pretende permanecer FOSS e compatível com a GPL.

Se você é ou já foi usuário do MySQL, migrar para o MariaDB será um processo muito simples: os comandos populares para conectar, fazer backup e restaurar e gerenciar bancos de dados são idênticos em ambos os RDBMSs.

Na distribuição mais recente do RHEL/CentOS 7, o MariaDB é um substituto imediato para o MySQL e no RHEL/CentOS 6 o MySQL permanece o mesmo e você não tem permissão para instalar o MariaDB em RHEL/CentOS 6 do repositório padrão, mas você pode instalar o MariaDB usando o repositório oficial do MariaDB.

Para habilitar o repositório MariaDB em distribuições RHEL/CentOS 7, crie um arquivo chamado /etc/yum.repos.d/mariadb.repo com o seguinte conteúdo:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Nota: Como eu disse acima, você também pode instalar o MariaDB no RHEL/CentOS 6 usando o repositório oficial do MariaDB conforme indicado acima.

Depois de habilitar o repositório MariaDB, faça:

------ On RHEL/CentOS 7 ------
yum --enablerepo=remi install httpd MariaDB-client MariaDB-server

------ On Fedora ------
dnf --enablerepo=remi install httpd MariaDB-client MariaDB-server

Etapa 5: Habilitar/Iniciar Apache e MySQL/MariaDB

No SystemD

------ Enable Apache and MariaDB on Boot ------
systemctl enable httpd
systemctl enable mariadb

------ Start Apache and MariaDB ------
systemctl start httpd
systemctl start mariadb

No SysVinit

------ Enable Apache and MySQL on Boot ------
chkconfig --levels 235 httpd on
chkconfig --levels 235 mysqld on

------ Start Apache and MySQL ------
/etc/init.d/httpd start
/etc/init.d/mysqld start

Etapa 6: verificando a instalação do PHP

Vamos continuar com a forma clássica de testar PHP. Crie um arquivo chamado test.php em /var/www/html e adicione as seguintes linhas de código a ele.

A função phpinfo() mostra muitas informações sobre a instalação atual do PHP:

<?php
	phpinfo();
?>

Agora aponte seu navegador para http://[server]/test.php e verifique a presença dos módulos instalados e software adicional rolando a página para baixo (substitua [server] com o seu domínio ou o endereço IP do seu servidor). Sua saída deve ser semelhante a:

Parabéns! Agora você tem uma instalação funcional mais recente de uma pilha LAMP. Caso algo não tenha saído como esperado, não hesite em nos contatar através do formulário abaixo. Dúvidas e sugestões também são bem-vindas.

Nota: você também pode instalar o MariaDB em outras distribuições criando um repositório personalizado seguindo as instruções fornecidas aqui.