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.
- MariaDB/MySQL (php-mysql) – um objeto dinâmico compartilhado que adicionará suporte MariaDB ao PHP.
- PostgreSQL (php-pgsql) – Suporte de banco de dados PostgreSQL para PHP.
- MongoDB (php-pecl-mongo) – Uma interface para comunicação com o banco de dados MongoDB em PHP.
- Genérico (php-pdo) – Um objeto dinâmico compartilhado que adicionará uma camada de abstração de acesso ao banco de dados ao PHP.
- 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.
- Memcached (php-pecl-memcached) – Uma extensão que usa a biblioteca libmemcached para fornecer API para comunicação com servidores memcached.
- GD (php-gd) – Um objeto de compartilhamento dinâmico que adiciona suporte para uso da biblioteca gráfica gd ao PHP.
- XML (php-xml) – Objetos compartilhados dinâmicos que adicionam suporte ao PHP para manipulação de documentos XML.
- MBString (php-mbstring) – Uma extensão para lidar com strings multibyte em aplicativos PHP.
- MCrypt (php-mcrypt) – Uma biblioteca Mcrypt para scripts PHP.
- APC (php-pecl-apcu) – Módulo APC usado para otimizar e armazenar em cache o código PHP.
- CLI (php-cli) – Interface de linha de comando para PHP.
- 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.