1. Saber qual SO
$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.5 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.5 (Ootpa)"
$ uname -a
; saber qual versão do kernel do Linux
Linux proddf0544 4.18.0-348.20.1.el8_5.x86_64 #1 SMP Tue Mar 8 12:56:54 EST 2022 x86_64 x86_64 x86_64 GNU/Linux
$ cat /proc/version
; informações mais detalhadas do kernel do Linux
Linux version 4.18.0-348.20.1.el8_5.x86_64 (mockbuild@x86-vm-07.build.eng.bos.redhat.com) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)) #1 SMP Tue Mar 8 12:56:54 EST 2022
$ cat /etc/hostname
proddf0544
2. Como copiar textos entre janelas windows e PuTTY
a) Copiar texto do windows para o PuTTY
– Marcar o texto na janela windows (botão esquerdo do mouse);
– Ctrl-C para copiar texto do Windows;
– Shift+Insert para colar o texto na janela do PuTTY.
b) Copiar texto da janela PuTTY para o Windows
– Marcar o texto na janela PuTTY (botão esquerdo do mouse);
– Usar botão direito do mouse;
– Ctrl-V na janela Windows.
3. Atualizar pacotes
# yum update
4. Instalar pacote
# yum install <pacote-1> <pacote-2> <pacote-n>
5. Verificar se existe assinatura do Red Hat Enterprise Linux Server anexada:
# subscription-manager list --installed
+-------------------------------------------+
Estado de Produtos Instalados
+-------------------------------------------+
Nome do Produto: Red Hat Enterprise Linux for x86_64
ID do Produto: 479
Versão: 8.5
Arq: x86_64
Estado: Desconhecido
Detalhes de Status:
Inicia:
Finaliza:
Obs: se houvesse assinatura, deveria mostrar “Server” no Nome do Produto e “Subscribed” como o Estado.
6. Repositórios
/etc/yum.conf
– arquivo com as informações de configuração para yum e utilidades relacionadas;
a) Para adicionar um repositório ao sistema e habilitá-lo:
# yum-config-manager --add-repo repository_URL
7. Instalar LAMP
# dnf update
; Ligar os servidores Apache e MariDB no momento da inicialização.
# dnf install httpd mariadb-server
# dnf install php php-mysqlnd php-mbstring php-opcache php-gd php-xml php-zip php-pear php-json
# systemctl enable httpd.service mariadb.service
# mysql_secure_installation
; configurar senha do usuário root do banco de dados; proteger o servidor MariaDB
# systemctl start httpd
; iniciar o servidor Apache
Definir o fuso horário do PHP no arquivo /etc/php.ini:
date.timezone = America/Sao_Paulo
Visualizar as propriedades da instalação do PHP:
$ php -i
$ php -i | grep "\.ini"
8. Configurar o Mariadb
# mkdir /var/lib/mysql
; iniciar o servidor mariadb
# chown mysql:mysql /var/lib/mysql
# systemctl start mariadb
# mysql
; login no servidor mariadb
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)
# ps -A | grep mysql
35970 ? 00:00:00 mysqld
Finalmente, deve-se proteger a instalação do MariaDB. Com o comando abaixo, serão feitas algumas perguntas sobre a instalação do MariaDB de forma a se poder alterar a senha do usuário root do banco de dados, desabilitar o banco de dados de teste, desabilitar usuários anônimos e desabilitar o login root remotamente:
# mysql_secure_installation
Verificar usuários habilitados a fazer login no MariaDB:
MariaDB [(none)]> SELECT User, Host, Password FROM mysql.user;
+------+-----------+-------------------------------------------+
| User | Host | Password |
+------+-----------+-------------------------------------------+
| root | localhost | *BCD148177BEE4C4AF62537365050FC2DCE9B7BFF |
| root | 127.0.0.1 | *BCD148177BEE4C4AF62537365050FC2DCE9B7BFF |
| root | ::1 | *BCD148177BEE4C4AF62537365050FC2DCE9B7BFF |
+------+-----------+-------------------------------------------+
3 rows in set (0.001 sec)
No caso mostrado temos apenas o usuário root com direito de acesso ao MariaBD, e a partir da própria máquina em que está o MySQL. Seja utilizando o nome do host como localhost, ou o endereço IP 127.0.0.1.
Agora, só será possível fazer login no MariaDB através de senha:
$ mysql -u root -p
Se necessitar alterar configurações do MariaDB, utilizar do arquivo /etc/my.cnf.d/mariadb-server.cnf
.
Pastas importantes:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
9. Abrir porta 80
Por default, firewall mo RHEL 8 bloqueia acesso para HTTP TCP na porta 80. Para abrir HTTP na porta 80, executar:
# firewall-cmd --permanent --add-service=http --zone=public
# firewall-cmd --reload
# firewall-cmd --list-services --zone=public
10. Instalar o phpMyAdmin
# dnf install wget
$ wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
$ tar xvf phpMyAdmin-5.2.1-all-languages.tar.gz
# mv phpMyAdmin-5.2.1-all-languages/ /usr/share/phpmyadmin
# chown -R root:root /usr/share/phpmyadmin/
# mkdir -p /var/lib/phpmyadmin/tmp
; Criar pasta para arquivos temporários do phpMyAdmin.
# chown -R apache:apache /var/lib/phpmyadmin
; Criar uma pasta para os arquivos de configuração do phpMyAdmin.
# mkdir /etc/phpmyadmin/
# cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
; Criar o arquivo de configuração do phpMyAdmin.
Editar o arquivo /usr/share/phpmyadmin/config.inc.php
definindo uma senha secreta de 32 caracteres e o diretório temporário:
$cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i';
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
$cfg['Servers'][$i]['pmadb'] = 'bdmyadmin';
Observações:
- o valor para “pmadb” a ser escolhido deve corresponder ao nome da base de dados que vamos criar mais adiante neste script.
- a sequência de 32 caracteres não é uma senha que precise ser lembrada, a qual será apenas utilizada internamente pelo algoritmo AES.
- caso a sequência inserida contiver menos de 32 caracteres, ocasionará cookies criptografados menos seguros. Mais de 32 caracteres não causará nenhum dano.
Configurar o servidor web Apache, criando o arquivo de configuração Apache do phpMyAdmin
(em /etc/httpd/conf.d/phpmyadmin.conf
):
# Apache configuration for phpMyAdmin Alias /phpMyAdmin /usr/share/phpmyadmin/ Alias /phpmyadmin /usr/share/phpmyadmin/ <Directory /usr/share/phpmyadmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
Validar a configuração do Apache:
$ apachectl configtest
; Reiniciar o serviço httpd para carregar a nova configuração.
Syntax OK
# systemctl restart httpd
Acessar com o navegador http://IP_ou_dominio/phpmyadmin/
para obter a tela de login:
Criar usuário do phpMyAdmin no banco de dados MySQL:
# mysql -u root
MariaDB [(none)]> SELECT user,password FROM mysql.user;
MariaDB [(none)]> CREATE USER usuario_myadmin@localhost IDENTIFIED BY 'senha_usuario';
MariaDB [(none)]> CREATE DATABASE bdmyadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_swedish_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES on bdmyadmin.* to 'usuario_myadmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;
Observações:
- o nome da base (aqui escolhido como bdmyadmin) e o nome do usuário (aqui escolhido como usuario_myadmin) são meros exemplos. Mas deve corresponder ao que fora definido antes na configuração do arquivo
/usr/share/phpmyadmin/config.inc.php
. - Ao fazer a autenticação no aplicativo, o acesso a base de dados bdmyadmin já estará disponível. Se o usuário tiver acesso a outras bases de dados, estas também estarão disponíveis simultaneamente.
- Para fazer a autenticação no aplicativo, utilize as credenciais escolhidas:
usuario: usuario_myadmin
senha: senha_usuario
11. Sobre o Apache
a) Configuração do Apache
/etc/httpd/
– Pasta principal de configuração do Apache.
/etc/httpd/conf/httpd.conf
– Arquivo principal de configuração do Apache.
/var/log/httpd/
– Pasta com arquivos de erro e de acesso.
/etc/httpd/conf.modules.d
– Pasta de configuração dos módulos Apache (tais como o proxy, php e outros).
b) Comandos para iniciar/parar/reiniciar o Apache
# systemctl start httpd.service
## <- Start Apache ##
# systemctl stop httpd.service
## <- Stop Apache ##
# systemctl restart httpd.service
## <- Restart Apache ##
# systemctl reload httpd.service
## <- Reload Apache ##
# systemctl status httpd.service
## <- Get status of Apache ##
# systemctl enable httpd.service
## <- Start Apache at boot time ##
12. Comandos úteis
a) Verificar IP do servidor:
$ ip a
b) Para buscar e instalar módulos adicionais PHP:
$ dnf search php-
$ dnf search php- | grep -i mysql
c) Verificar se porta 80 está aberta:
$ sudo ss -tulpn | grep :80
d) Informações sobre alguns módulos PHP isntalados:
$ dnf info php-mbstring
$ dnf info php-gd
e) Lista de Repositórios:
$ dnf repolist
f) Tornar comando “locate” disponível:
# dnf install mlocate
g) Listar módulos PHP instalados:
$ php -m
h) Visualizar as propriedades da instalação do PHP:
$ php -i
$ php -i | grep "\.ini"
Referências:
1- How To Install phpMyAdmin on CentOS 8 / RHEL 8
2- Instalar phpMyadmin numa máquina com Debian
3- Tutorial MySQL ( instalar em ambiente Linux – Debian )