Pesquisa de site

Instale Apache, MariaDB, PHP (pilha LAMP) no CentOS 8


A pilha LAMP é a combinação de Linux, Aservidor web pache, MySQL/M<ariaDB, PHP. Este guia passo a passo explica como instalar Apache, MariaDB, PHP (LAMP Stack) no servidor mínimo CentOS 8. A pilha LAMP é usada para implantar aplicativos baseados na web e hospedar sites dinâmicos. Testei este guia no CentOS 8, porém as etapas abaixo também devem funcionar no servidor RHEL 8. Vamos começar.

Instale Apache, MariaDB, PHP (pilha LAMP) no CentOS 8

Aqui estão os detalhes da minha máquina de teste:

  • Sistema operacional - Servidor mínimo CentOS 8 (8.1.1911 (Core))
  • Endereço IP - 192.168.225.52/24
  • Nome do host - centos8.ostechnix.lan

Todos os comandos fornecidos abaixo devem ser executados como usuário "root". Se você fizer login como usuário normal, use 'sudo' na frente de cada comando. O símbolo # representa comandos I am como usuário root.

Nota:

Uma das principais atualizações do CentOS 8 é que o gerenciador de pacotes padrão foi migrado de YUM para DNF. No entanto, você ainda pode fazer YUM no CentOS 8 se estiver acostumado. O uso de DNF é exatamente igual ao YUM. Compilei uma lista de exemplos de comandos DNF para iniciantes. Se você estiver interessado em saber como usar o DNF, dê uma olhada no link a seguir.

  • Exemplos de comandos DNF para iniciantes

1. Instale o servidor web Apache no CentOS 8

Para instalar o Apache no CentOS 8, execute o seguinte comando como usuário root:

dnf install httpd

Depois que o Apache estiver instalado, habilite e inicie o serviço Apache usando o comando:

systemctl enable httpd
systemctl start httpd

Como alternativa, você pode usar o seguinte comando one-liner para ativar e iniciar o serviço Apache de uma só vez.

systemctl enable --now httpd

Verifique se o serviço Apache está em execução ou não com o comando:

systemctl status httpd

Exemplo de resultado:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 12:25:08 IST; 39min ago
     Docs: man:httpd.service(8)
 Main PID: 1736 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.00253; Bytes served/sec: 13>
    Tasks: 213 (limit: 11501)
   Memory: 25.7M
   CGroup: /system.slice/httpd.service
           ├─1736 /usr/sbin/httpd -DFOREGROUND
           ├─1873 /usr/sbin/httpd -DFOREGROUND
           ├─1874 /usr/sbin/httpd -DFOREGROUND
           ├─1875 /usr/sbin/httpd -DFOREGROUND
           └─1876 /usr/sbin/httpd -DFOREGROUND

Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 07 12:25:08 centos8.ostechnix.lan httpd[1736]: Server configured, listening on: port 80

Como você pode ver, o serviço Apache está carregado e em execução. E está escutando na porta 80. Para descobrir qual serviço está escutando em uma porta específica, consulte este guia.

Verifique a versão do Apache:

# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34

Em seguida, todas as portas padrão do servidor Apache 80 e 443 através do seu firewall e roteador.

Para permitir a porta http 80 através do firewall, execute:

firewall-cmd --permanent --add-service=http

Para permitir a porta https 443:

firewall-cmd --permanent --add-service=https

Reinicie o firewall para aplicar as alterações usando o comando:

systemctl restart firewalld

1.1. Teste o servidor web Apache

Acabamos de concluir todas as etapas necessárias para implantar um servidor web Apache. Vamos em frente e verificar se realmente está funcionando ou não. Para fazer isso, abra seu navegador (em qualquer sistema remoto da rede, pois é um servidor mínimo sem GUI) e navegue até - http://endereço-ip. Se você tiver uma GUI instalada em seu sistema CentOS, poderá navegar para http://localhost ou http://ip-address/ ou http:/ /nome-dominio.

Se tudo estiver bem, você verá a seguinte página de teste em seu navegador.

Bem, o servidor web Apache está funcionando!

A próxima etapa na configuração do LAMP é instalar o servidor de banco de dados.

2. Instale o servidor de banco de dados MariaDB no CentOS 8

Execute o seguinte comando do Terminal para instalar o MariaDB no CentOS 8:

dnf install mariadb-server mariadb

Depois que o MariaDB estiver instalado, habilite e inicie o serviço mariadb usando comandos:

systemctl enable mariadb
systemctl start mariadb

Como alternativa, use o seguinte comando de uma linha para ativar e iniciar o serviço mariadb de uma só vez:

systemctl enable --now mariadb

Para verificar se o serviço mariadb foi iniciado ou não, execute:

systemctl status mariadb

Exemplo de resultado:

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 14:16:59 IST; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 5447 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 5312 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, statu>
  Process: 5288 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 5415 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 11501)
   Memory: 84.6M
   CGroup: /system.slice/mariadb.service
           └─5415 /usr/libexec/mysqld --basedir=/usr

Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Please report any problems at ht>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: The latest information about Mar>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: You can find additional informat>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: http://dev.mysql.com
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Consider joining MariaDB's stron>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: https://mariadb.org/get-involved/
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Note] /usr/libexec/mysq>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Could not incr>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Changed limits>
Feb 07 14:16:59 centos8.ostechnix.lan systemd[1]: Started MariaDB 10.3 database server

O serviço Mariadb está carregado e ativo agora!

Verifique a instalação da versão do MariaDB:

# mysql -V
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

2.1. Definir senha do usuário root do banco de dados (administrador)

Por padrão, a senha do usuário raiz do banco de dados está vazia. Para proteger o servidor de banco de dados, precisamos definir a senha do usuário root. Para fazer isso, execute o script mysql_secure_installation:

mysql_secure_installation

Serão feitas algumas perguntas a você. Leia e responda adequadamente. Primeiro, você será solicitado a inserir a senha atual do usuário root. Como a senha está vazia por padrão, basta pressionar a tecla ENTER para prosseguir. A seguir, você será solicitado a responder às seguintes perguntas:

  1. Definir senha de root ? - Digite y para definir a senha e digite-a duas vezes.
  2. Remover usuários anônimos? - Digite y para remover o usuário anônimo. O usuário anônimo é fornecido para fins de teste por padrão. Você deve remover o usuário anônimo na produção.
  3. Proibir login root remotamente? - Digite y para evitar que o usuário root acesse o servidor de banco de dados de qualquer sistema remoto.
  4. Remover banco de dados de teste e acesso a ele? - Digite y para remover o banco de dados de teste.
  5. Recarregar tabelas de privilégios agora? - Digite y para que todas as alterações feitas tenham efeito.

Exemplo de resultado:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #Press ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #Type y and press ENTER
New password:  #Enter password
Re-enter new password: #Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #Type y and press ENTER
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #Type y and ress ENTER
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #Type y and press ENTER
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #Type y and press ENTER
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Agora protegemos a instalação do MariaDB.

2.2. Faça login no shell MariaDB

Execute o seguinte comando para fazer login no shell mariadb como usuário root:

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Para sair do shell mariadb, basta executar:

exit;

3. Instale o PHP no CentOS 8

PHP é o último componente da pilha LAMP. Para instalar o php junto com todos os outros módulos php necessários, execute o seguinte comando como usuário root:

dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

3.1. Configurar Apache com PHP-FPM

Uma das maneiras mais comuns de executar PHP com Apache é o módulo mod_php. No entanto, o PHP-FPM (FastCGI Process Manager) tem algumas vantagens sobre o mod_php. Para quem está se perguntando, PHP-FPM é a implementação FastCGI do PHP. PHP-FPM é executado como um servidor FastCGI independente e aumenta significativamente o desempenho do seu ambiente PHP.

Já instalamos o php-fpm, então vamos habilitar e iniciar o serviço php-fpm usando comandos:

systemctl enable php-fpm
systemctl start php-fpm

Alternativamente, use o seguinte comando de uma linha para ativar e iniciar o serviço php-fpm de uma só vez:

systemctl enable --now php-fpm

Para verificar se o serviço php-fpm foi iniciado ou não, execute:

systemctl status php-fpm

Exemplo de resultado:

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 17:24:44 IST; 8s ago
 Main PID: 6053 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11501)
   Memory: 22.6M
   CGroup: /system.slice/php-fpm.service
           ├─6053 php-fpm: master process (/etc/php-fpm.conf)
           ├─6054 php-fpm: pool www
           ├─6055 php-fpm: pool www
           ├─6056 php-fpm: pool www
           ├─6057 php-fpm: pool www
           └─6058 php-fpm: pool www

Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Started The PHP FastCGI Process Manager.

Bem, o serviço php-fpm foi carregado e ativo agora.

3.2. Testar PHP

Para verificar se o PHP está funcionando corretamente ou não, crie um arquivo de amostra chamado “info.php ” na pasta raiz da web:

vi /var/www/html/info.php

Adicione as seguintes linhas:

<?php 
phpinfo(); 
?>

Reinicie o serviço Apache para que as alterações tenham efeito:

systemctl restart httpd

Agora, abra seu navegador e navegue até http://IP_Address/info.php.

Você verá a seguinte página php que lista todos os módulos instalados e outros detalhes como versão do php, data de construção e comandos, etc.

Parabéns! Neste estágio, você deve ter uma pilha LAMP totalmente funcional no servidor CentOS 8.

Já publicamos a instalação da pilha LAMP em diferentes plataformas Linux. Verifique o link a seguir para saber como configurar o LAMP em várias distribuições Linux.

  • Guias de pilha LAMP

Artigos relacionados