Você está na página 1de 11

Passo-a-passo como criar um servidor WEB Apache +

PHP + MariaDB + phpMyAdmin no Debian 10 Buster


“LAMP”
blog.remontti.com.br/3006

Rudimar Remontti 16 de julho de 2019

Ouvir tutorial

Distribuição utilizada: Debian 10 Stretch / Instalação Limpa


Vale lembrar que desde o Debian 9 o PHP foi atualizado para a versão 7 e agora para 7.3, e
o MySQL foi substituído pelo seu fork MariaBD
Antes de mais nada tenha seu repositório atualizado

1 # su -
2 # apt update
3 # apt upgrade

:: Instalação do Apache 2.4 ::

1 # apt install apache2 apache2-utils

Vamos habilitar o mod_rewrite do Apache que é muito utilizado.


Este é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita.
Vamos ao comando para habilita-lo:

1/11
1 # a2enmod rewrite

A página que vimos ao abri o ip do nosso servidor no navegador fica no diretório


/var/www/html, isso está sendo informado no arquivo default do apache que fica em
/etc/apache2/sites-enabled/000-default.conf, e para que nosso mod_rewrite funcione
corretamente será necessário adicionar alguma linhas.

1 # vim /etc/apache2/sites-enabled/000-default.conf

Adicione abaixo de “DocumentRoot /var/www/html” o seguinte:

1 <Directory /var/www/html/>
2 Options FollowSymLinks
3 AllowOverride All
4 </Directory>

Agora precisamos restartar o apache2 para que tenha efeito as alterações.

1 # systemctl restart apache2

http://[SERVER_IP]/

2/11
Por segurança remova a assinatura do apache.

1 # sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/apache2/conf-


2 available/security.conf
# sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-
available/security.conf

:: Instalação do MariaDB 10.3 ::

1 # apt install mariadb-server mariadb-client

Por padrão o pacote MaraiDB no Debian usa unix_socket para autenticar o login do usuário,
o que basicamente significa que você pode usar o nome de usuário e a senha do sistema
operacional para efetuar login no console do MariaDB.
Assim, você pode logar diretamente sem fornecer a senha root do MariaDB. Mas isso é
estranho, pois minha senha do root do MariaDB é diferente do meu usuário unix.
Bom se você é meio paranoico com segurança, para alterar a senha do usuário root do
MariaDB de forma bruta faça o seguinte:

1 # mariadb -u root

1 USE mysql;
2 UPDATE user SET password=PASSWORD('SENHA.db.ROOT') WHERE User='root';
3 UPDATE user SET plugin="mysql_native_password";
4 FLUSH PRIVILEGES;
5 quit;

3/11
:: Instalação do PHP 7.3 ::

Vou incluir algumas extensões do PHP que são normalmente utilizada

1 # apt install libapache2-mod-php php php-mysql php-cli php-pear php-gmp php-gd


php-bcmath php-mbstring php-curl php-xml php-zip

É necessário reiniciar o apache para que o php tenha efeito.

1 # systemctl restart apache2

Consultado informações de versão:

1 # php --version

1 PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )


2 Copyright (c) 1997-2018 The PHP Group
3 Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
4 with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

Você pode criar um arquivo php com a função phpinfo() para mostrar todas as informações.

1 # echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php

http://[SERVER_IP]/phpinfo.php

:: phpMyAdmin ::
Cade ele do repositório?
O PHPMyAdmin não está mais disponível como pacote .deb no Debian 10. Fazendo um
pesquisa o motivo é que o “pessoal” que faz empacotamento não tem uma versão estável.

4/11
https://security-tracker.debian.org/tracker/CVE-2018-19968
Desta forma debian “obriga” com que o usuário instale-o a partir da fonte.
https://www.phpmyadmin.net/downloads/

1 # apt install wget

Escolha qual versão do irá utilizar phpMyAdmin 5.x.x ou 4.x.x

1 # cd /tmp/

Para phpMyAdmin 5 (06/04/2020)

1 # wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-
2 languages.tar.gz
3 # tar -vxzf phpMyAdmin-5.0.4-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin

Para phpMyAdmin 4 (06/04/2020)

1 # wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-
2 languages.tar.gz
3 # tar -vxzf phpMyAdmin-4.9.5-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-4.9.5-all-languages /usr/share/phpmyadmin

Seguimos para phpMyAdmin 5 ou 4

1 # mkdir /etc/phpmyadmin
2 # touch /etc/phpmyadmin/htpasswd.setup
3 # mkdir -p /var/lib/phpmyadmin/tmp
4 # chown www-data. /var/lib/phpmyadmin/ -R

Criaremos o arquivo de configuração do Apache.

1 # vim /etc/apache2/conf-available/phpmyadmin.conf

5/11
1 # phpMyAdmin default Apache configuration
2
3 Alias /phpmyadmin /usr/share/phpmyadmin
4
5 <Directory /usr/share/phpmyadmin>
6 Options FollowSymLinks
7 DirectoryIndex index.php
8
9 <IfModule mod_php7.c>
10 AddType application/x-httpd-php .php
11
12 php_flag magic_quotes_gpc Off
13 php_flag track_vars On
14 php_flag register_globals Off
15 php_value include_path .
16 </IfModule>
17
18 </Directory>
19
20 # Authorize for setup
21 <Directory /usr/share/phpmyadmin/setup>
22 <IfModule mod_authn_file.c>
23 AuthType Basic
24 AuthName "phpMyAdmin Setup"
25 AuthUserFile /etc/phpmyadmin/htpasswd.setup
26 </IfModule>
27 Require valid-user
28 </Directory>
29
30 # Disallow web access to directories that don't need it
31 <Directory /usr/share/phpmyadmin/libraries>
32 Order Deny,Allow
33 Deny from All
34 </Directory>
35 <Directory /usr/share/phpmyadmin/setup/lib>
36 Order Deny,Allow
37 Deny from All
38 </Directory>

Se deseja deixar o atalho para o phpmyadmin restrito apenas aos seus IP de gerencia faça
da seguinte forma. Lembre-se de alterar os IPs 200.200.200.0/26 2001:db8:cafe:d0ce::/64
para os seus.

6/11
1 # phpMyAdmin default Apache configuration
2 Alias /phpmyadmin /usr/share/phpmyadmin
3 <Directory /usr/share/phpmyadmin>
4 Options FollowSymLinks
5 DirectoryIndex index.php
6
7 AllowOverride All
8 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
9
10 <IfModule mod_php7.c>
11 AddType application/x-httpd-php .php
12 php_flag magic_quotes_gpc Off
13 php_flag track_vars On
14 php_flag register_globals Off
15 php_value include_path .
16 </IfModule>
17 </Directory>
18 # Authorize for setup
19 <Directory /usr/share/phpmyadmin/setup>
20 AllowOverride All
21 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
22 <IfModule mod_authn_file.c>
23 AuthType Basic
24 AuthName "phpMyAdmin Setup"
25 AuthUserFile /etc/phpmyadmin/htpasswd.setup
26 </IfModule>
27 Require valid-user
28 </Directory>
29 # Disallow web access to directories that don't need it
30 <Directory /usr/share/phpmyadmin/libraries>
31 AllowOverride All
32 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
33 Order Deny,Allow
34 Deny from All
35 </Directory>
36 <Directory /usr/share/phpmyadmin/setup/lib>
37 AllowOverride All
38 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
39 Order Deny,Allow
40 Deny from All
41 </Directory>
42
43
44
45
46
47

Ative a configuração e reinicie o Apache.

7/11
1 # a2enconf phpmyadmin
2 # systemctl restart apache2
3 # systemctl status apache2

Na próxima etapa, vamos configurar o armazenamento de configuração do phpMyadmin


(banco de dados).
Faça o login no MariaDB como usuário root:

1 # mariadb -p

Criamos um novo banco de dados para o chamado phpmyadmin e um usuario pma (altere
para sua senha). Em seguida, concedemos as permissões do banco de dados.
Você pode gerar uma senha acessando https://senhasegura.remontti.com.br/

1 CREATE DATABASE phpmyadmin;


2 CREATE USER 'pma'@'localhost' IDENTIFIED BY 'SUA_SENHA';
3 GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY
4 'SUA_SENHA' WITH GRANT OPTION;
5 FLUSH PRIVILEGES;
EXIT;

Carregue as tabelas do banco de dados: (Informe a senha do root do MariaDB)

1 # mariadb -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql

Agora é necessário ajustar o arquivo de configuração do phpmyadmin.


Definir:
* senha segura (blowfish secret) que deve ter 32 caracteres. Não use o meu exemplo
blowfish secreto, defina o seu próprio! Use o gerador https://senhasegura.remontti.com.br
* diretório que o PHPMyAdmin deve usar para armazenar arquivos temporários.
* Descomentar as linhas $cfg[‘Servers’]
– controlhost : localhost
– controlpass : SUA_SENHA

1 # cp /usr/share/phpmyadmin/config.sample.inc.php
2 /usr/share/phpmyadmin/config.inc.php
# vim /usr/share/phpmyadmin/config.inc.php

8/11
1 $cfg['blowfish_secret'] = 'dkJhGx83XR3JjuFrDn8kPp9NtXnkLptl';
2 /* Adicione esta linha */
3 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
4
5 /* User used to manipulate with storage */
6 $cfg['Servers'][$i]['controlhost'] = 'localhost';
7 $cfg['Servers'][$i]['controlport'] = '';
8 $cfg['Servers'][$i]['controluser'] = 'pma';
9 $cfg['Servers'][$i]['controlpass'] = 'SUA_SENHA';
10
11 /* Storage database and tables */
12 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
13 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
14 $cfg['Servers'][$i]['relation'] = 'pma__relation';
15 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
16 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
17 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
18 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
19 $cfg['Servers'][$i]['history'] = 'pma__history';
20 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
21 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
22 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
23 $cfg['Servers'][$i]['recent'] = 'pma__recent';
24 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
25 $cfg['Servers'][$i]['users'] = 'pma__users';
26 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
27 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
28 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
29 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
30 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
31 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

9/11
http://[SERVER_IP]/phpmyadmin/

Gostou?

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em
saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato
clique aqui.

Abraço!

1 /* Altere */
2 $cfg['blowfish_secret'] = 'dkJhGx83XR3JjuFrDn8kPp9NtXnkLptl';
3 /* Adicione esta linha */
4 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

1 Alias /phpmyadmin /usr/share/phpmyadmin

10/11
1 $ su -

11/11

Você também pode gostar