Flávio Costa
Flávio Costa
Não menospreze o dever que a consciência te impõe
mai. 21, 2021 May 21, 2021 8 min de leitura

Instalar Apache, Mariadb (Mysql) e Php (Lamp)

thumbnail for this post

Nesses anos utilizando Manjaro eu já vi muitos usuários quebrarem a cabeça para instalar as ferramentas que estão no titulo desse artigo, e para ajudar, vou compartilhar um tutorial de instalação que pode dar uma luz para quem está com dificuldades. Lembrando que eu sou leigo com essas ferramentas, mas ao seguir o tutorial que estarei traduzindo, aparentemente tudo funcionou corretamente.

Se você seguir o tutorial e encontrar algum problema, informe nos comentários que estaremos ajudando. Conforme for necessário, estaremos atualizando esse tutorial, mas por não utilizar as ferramentas, será necessário que algum usuário informe a necessidade de atualização. No tutorial eu irei utilizar o nano, mas você pode alterar para o editor de texto instalado no sistema, se utilizar o kate, não é necessário utilizar o sudo (e não faça os procedimentos em modo root).

Antes de qualquer coisa, classifique os espelhos (mirrors), sincronize a base de dados e atualize o sistema com os comandos abaixo. Se houver atualização do sistema, não esqueça de reiniciar o sistema antes de prosseguir.

Atualizar o sistema. #

Classificar os 5 melhores espelhos.

sudo pacman-mirrors -f5

Sincronize a base de dados/Atualize o sistema.

pamac update --force-refresh
Instalar Apache. #

Após estar com os melhores espelhos e com o sistema atualizado, instale o Apache.

Instalar apache via Repo

Modo gráfico:: procure o apache no Pamac, marque para instalar e clique em aplicar.

Terminal:

pamac install apache

Abra o arquivo httpd.conf e procure pela linha que contenha unique_id_module.

sudo nano /etc/httpd/conf/httpd.conf

Se ela não estiver comentada, adicione o carácter # no inicio da linha para comentar.

#LoadModule unique_id_module modules/mod_unique_id.so

Salve e feche o arquivo de texto.

Adicione o serviço Apache para iniciar na inicialização.

sudo systemctl enable httpd

Inicie o serviço Apache.

sudo systemctl start httpd

Verifique se o serviço do Apache está funcionando sem erros com o comando abaixo.

sudo systemctl status httpd

Você verá algo parecido com as informações abaixo.

● httpd.service – Apache Web Server

    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)

    Active: active (running) since Tue 2021-05-18 18:30:11 -03; 3min 4s ago

  Main PID: 433 (httpd)

     Tasks: 6 (limit: 9513)

    Memory: 18.5M

    CGroup: /system.slice/httpd.service

            ├─433 /usr/bin/httpd -k start -DFOREGROUND

            ├─503 /usr/bin/httpd -k start -DFOREGROUND

            ├─504 /usr/bin/httpd -k start -DFOREGROUND

            ├─505 /usr/bin/httpd -k start -DFOREGROUND

            ├─506 /usr/bin/httpd -k start -DFOREGROUND

            └─507 /usr/bin/httpd -k start -DFOREGROUND

mai 18 18:30:11 manjariando-virtualbox systemd[1]: Started Apache Web Server.

mai 18 18:30:18 manjariando-virtualbox httpd[433]: AH00558: httpd: Could not reliably determine the server’s

Para testar, vamos criar uma página de amostra, utilize o comando abaixo para abrir um arquivo vazio.

sudo nano /srv/http/index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <title>Welcome</title>
 </head>
<body>
  <h2>Welcome to my Web Server test page</h2>
</body>
</html>

Abra no seu navegador o endereço localhost.

http://localhost

Com o Apache preparado, vamos para o próximo, o MariaDB.

Instalar o MariaDB #
Instalar mariadb via Repo

Modo gráfico:: procure o mariadb no Pamac, marque para instalar e clique em aplicar.

Terminal:

pamac install mariadb

Utilize o comando abaixo para inicializar o diretório de dados MariaDB.

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Adicione o serviço MariaDB para iniciar na inicialização.

sudo systemctl enable mysqld

Inicie o serviço do MariaDB.

sudo systemctl start mysqld

Verifique o status do serviço para conferir se tudo está funcionando corretamente.

sudo systemctl status mysqld

Você verá algo parecido com as informações abaixo.

● mariadb.service – MariaDB 10.5.9 database server
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2021-05-18 19:29:29 -03; 5min ago
      Docs: man:mariadbd(8)
            https://mariadb.com/kb/en/library/systemd/
   Process: 434 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
   Process: 440 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl s>
   Process: 513 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Main PID: 449 (mariadbd)
    Status: “Taking your SQL requests now…”
     Tasks: 8 (limit: 9513)
    Memory: 85.5M
    CGroup: /system.slice/mariadb.service
            └─449 /usr/bin/mariadbd

mai 18 19:29:26 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:26 0 [Note] InnoDB: File ‘./ibtmp1’ size is now 12 MB.
mai 18 19:29:26 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:26 0 [Note] InnoDB: 10.5.9 started; log sequence number 45178; transaction id 20
mai 18 19:29:26 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:26 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
mai 18 19:29:27 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:27 0 [Note] InnoDB: Buffer pool(s) load completed at 210518 19:29:27
mai 18 19:29:27 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:27 0 [Note] Server socket created on IP: ‘::’.
mai 18 19:29:28 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:28 0 [Note] Reading of all Master_info entries succeeded
mai 18 19:29:28 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:28 0 [Note] Added new Master_info ” to hash table
mai 18 19:29:28 manjariando-virtualbox mariadbd[449]: 2021-05-18 19:29:28 0 [Note] /usr/bin/mariadbd: ready for connections.
mai 18 19:29:28 manjariando-virtualbox mariadbd[449]: Version: ‘10.5.9-MariaDB’  socket: ‘/run/mysqld/mysqld.sock’  port: 3306  Arch Linux
mai 18 19:29:29 manjariando-virtualbox systemd[1]: Started MariaDB 10.5.9 database server.

Configurando uma senha para o usuário root do banco de dados com o comando:

sudo mysql_secure_installation

Nessa parte você pode apertar Enter nos questionamentos, só insira sua senha quando for pedido New password e Re-enter new password.

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
haven’t set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on…

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

You already have your root account protected, so you can safely answer ‘n’.

Switch to unix_socket authentication [Y/n] 
Enabled successfully!
Reloading privilege tables..
… Success!


You already have your root account protected, so you can safely answer ‘n’.

Change the root password? [Y/n] 
New password: 
Re-enter new 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] 
… 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] 
… 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] 
– 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] 
… 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!

Tudo pronto com o MariaDB, vamos para o próximo passo.

Instalar PHP #
Instalar php via Repo

Modo gráfico:: procure o php e php-apache no Pamac, marque para instalar e clique em aplicar.

Terminal:

pamac install php php-apache

Configure o módulo Apache PHP.

sudo nano /etc/httpd/conf/httpd.conf

Encontre a linha que contenha mpm_event_module e adicione o carácter # no inicio dela para comentar.

#LoadModule mpm_event_module modules/mod_mpm_event.so

Procure pela linha que contenha mpm_prefork_module e remova o carácter # para descomentar, se ela não existir, adicione a linha abaixo.

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Adicione as linhas baixo referente a versão do PHP que você está utilizando.

PHP 8

LoadModule php_module modules/libphp.so
AddHandler php-script php
Include conf/extra/php_module.conf

PHP 7

LoadModule php7_module modules/libphp7.so
AddHandler php7-script php
Include conf/extra/php7_module.conf

Salve e feche o arquivo.

Vamos criar um teste, abra o arquivo test.php em branco.

sudo nano /srv/http/test.php

Adicione as seguintes linhas.

<?php
 phpinfo();
?>

Salve e feche o arquivo.

Reinicie o serviço httpd.

sudo systemctl restart httpd

Abra o localhost para testar o PHP.

http://localhost/test.php

Se tudo ocorreu bem, vamos para o próximo.

Instalar o phpMyAdmin #
Instalar phpmyadmin via Repo

Modo gráfico:: procure o phpmyadmin no Pamac, marque para instalar e clique em aplicar.

Terminal:

pamac install php phpmyadmin

Vamos editar o arquivo php.ini.

sudo nano /etc/php/php.ini

Procure pelas linhas extension=bz2 e extension=mysqli, remova os dois pontos do inicio da linha para descomentar. Em nosso teste, também foi necessário descomentar a linha extension=iconv.

Salve e feche o arquivo.

Agora vamos criar um arquivo de configuração para phpMyAdmin.

sudo nano /etc/httpd/conf/extra/phpmyadmin.conf

Adicione as seguintes linhas:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>

Salve e feche o arquivo.

Em seguida, abra o arquivo de configuração do Apache.

sudo nano /etc/httpd/conf/httpd.conf

Adicione a seguinte linha no final:

Include conf/extra/phpmyadmin.conf

Salve e feche o arquivo.

Reinicie o serviço httpd novamente.

sudo systemctl restart httpd

Abra o navegador e vai até o localhost para testar o phpMyAdmin.

http://localhost/phpmyadmin

Você pode ver um erro que diz “O arquivo de configuração agora precisa de uma senha secreta (blowfish_secret)” na parte inferior do painel do phpMyAdmin. Para se livrar dele, abra o arquivo config.inc.php e procure pela linha que contenha blowfish_secret.

sudo nano /etc/webapps/phpmyadmin/config.inc.php

Altere de:

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$ /**

Para:

$cfg['blowfish_secret'] = '`MyP@$S`'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$ /**

Salve e feche o arquivo.

Reinicie o serviço do Apache.

sudo systemctl restart httpd

Provavelmente o erro terá desaparecido.

Então é isso, se tudo ocorreu como deveria, agora você está contudo configurado, ou ao menos uns 90%. Se você encontrar algum problema, entre em contato conosco que tentaremos ajudar. Os usuários que estiverem vendo o tutorial muito tempo após sua publicação, nos informe caso ele esteja desatualizado, assim podemos ajustar conforme necessário.


Caso algum programa que você goste ainda não tenha uma versão para Manjaro, por favor, escreva nos comentários o nome do programa que iremos procurar por algum equivalente ou, se possível a portabilidade para Manjaro, entraremos em contato com desenvolvedores.

Por favor, não deixe de compartilhar nas redes sociais as publicações deste blog, pois nosso incentivo para produzir um conteúdo bacana é saber que estamos ajudando pessoas a conhecer cada vez mais as funcionalidades dessa maravilhosa distro Linux.

Veja também

Acompanhe o blog

comments powered by Disqus