Pesquisa de site

Como instalar a pilha Apache, MariaDB e PHP (FAMP) no FreeBSD


Este guia irá descrever como instalar e configurar o FBAMP no sistema operacional FreeBSD, que é semelhante a uma pilha LAMP no Linux. FBAMP é um acrônimo que significa uma coleção de software baseado no sistema operacional FreeBSD, servidor Apache HTTP, o servidor web de código aberto mais popular da Internet, MariaDB< sistema de gerenciamento de banco de dados relacional (RDBMS), uma bifurcação do mecanismo de banco de dados MySQL e PHP do lado do servidor.

Requisitos

  1. Uma nova instalação do FreeBSD
  2. Configurações iniciais do FreeBSD
  3. Acesso direto ao console ou SSH no caso de conexão remota com o FreeBSD.
  4. Um endereço IP estático configurado em uma interface de rede.

Passo 1: Instale o Apache no FreeBSD

1. O primeiro serviço que instalaremos é o servidor Apache HTTP. Por padrão, o FreeBSD oferece múltiplas versões com diferentes módulos de trabalho em tempo de execução para o servidor web Apache.

As versões são pré-compiladas em um pacote binário e fornecidas pelos repositórios do FreeBSD PORTS. Para exibir todos os binários de pacotes Apache fornecidos por PORTS, emita o seguinte comando.

ls /usr/ports/www/ | grep apache

Você também pode procurar pacotes Apache pré-compatíveis disponíveis no FreeBSD emitindo o comando abaixo.

pkg search apache2

2. Em seguida, instale a versão mais recente do servidor Apache HTTP com todos os módulos necessários emitindo o seguinte comando.

pkg install apache24

3. Após a instalação do servidor web Apache no sistema, emita o seguinte comando para habilitar o daemon em todo o sistema no FreeBSD.

sysrc apache24_enable="yes"

Um método alternativo para ativar o daemon Apache seria editar manualmente e anexar a linha apache24_enable="yes" no arquivo /etc/rc.conf conforme ilustrado na captura de tela abaixo.

4. Finalmente, para testar se o servidor web está funcionando corretamente, inicie o daemon Apache emitindo o comando abaixo e visite a página web padrão apontando um navegador para o endereço IP do servidor FQDN ( http://IP-orFQDN) conforme mostrado na captura de tela abaixo.

service apache24 start

O diretório webroot padrão do servidor web Apache no FreeBSD 11.x está localizado no caminho do sistema /usr/local/www/apache24/data/. Lá você encontrará um pequeno arquivo index.html que você pode editar como preferir.

Passo 2: Instale o PHP no FreeBSD

5. O FreeBSD 11.x oferece múltiplas versões de linguagem PHP interpretada no lado do servidor, empacotada em binários pré-compatíveis. Para obter uma lista de todos os pacotes de versões PHP disponíveis fornecidos pelos repositórios do FreeBSD Ports, emita o seguinte comando.

ls /usr/ports/lang/ | grep php

Um método alternativo de procurar por todas as versões disponíveis do pacote FreeBSD PHP é executar o comando abaixo.

pkg search -o php

6. Para procurar todos os binários disponíveis fornecidos pelo FreeBSD para uma versão específica do PHP (versões 5 ou 7 atualmente) execute os comandos abaixo. Use o comando less para restringir e navegar pela saída.

pkg search php5 |less
pkg search php7

7. Para ser mais específico sobre quais módulos uma versão personalizada do PHP oferece, execute o seguinte comando conforme descrito abaixo, que exibe todos os módulos disponíveis para a versão PHP 7.1.

pkg search php71

8. Neste guia instalaremos a versão PHP 7.1 para nossa pilha FBAMP. Emita o seguinte comando para instalar o PHP com alguns dos módulos mais importantes necessários para uma instalação típica de CMS.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. Em seguida, precisamos criar o arquivo de configuração php.conf para o servidor web Apache em /usr/local/etc/apache24/Includes/ > caminho do sistema com o seguinte conteúdo.

nano /usr/local/etc/apache24/Includes/php.conf

Adicione as seguintes linhas ao arquivo php.conf.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. Para testar se o gateway PHP está funcionando conforme esperado com o servidor web Apache, crie um arquivo PHP info.php em /usr/local/www/ caminho apache24/data/system, que é o caminho raiz do documento da web padrão do servidor web Apache.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Reinicie o daemon Apache para aplicar as alterações.

service apache24 restart

Em seguida, visite o seguinte URI em um navegador para visualizar o resumo do PHP.

http://IP-or-FQDN/info.php 

11. Para ativar o arquivo de configuração ini do PHP para produção, emita os comandos abaixo. Você pode modificar o arquivo de produção php.ini para alterar diversas configurações de PHP em sua pilha FBAMP.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Etapa 3: Instale o MariaDB no FreeBSD

12. O último componente que falta em nossa pilha FBAMP é o servidor de banco de dados MySQL. O FreeBSD 11.x oferece mais de 1000 pacotes para diversos bancos de dados.

Para exibir quais componentes estão disponíveis para bancos de dados MariaDB ou MySQL, emita os seguintes comandos. Neste guia, instalaremos o banco de dados MariaDB sobre MySQL (que agora pertence e é desenvolvido ativamente pela Oracle).

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. Neste guia instalaremos a versão mais recente do servidor de banco de dados MariaDB no FreeBSD, que atualmente é representado pelo pacote binário mariadb102.

Execute o seguinte comando para instalar o servidor e cliente MariaDB e o módulo PHP 7.1 necessário para acessar o banco de dados através do gateway do servidor Apache.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Em seguida, ative o servidor MariaDB em todo o sistema e inicie o daemon do banco de dados executando os comandos a seguir.

sysrc mysql_enable="yes" 
service mysql-server start

15. Para proteger o banco de dados, execute o script mysql_secure_installation. Use o trecho de saída do script abaixo para proteger o MariaDB.

/usr/local/bin/mysql_secure_installation
Saída de amostra

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):
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
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] y
 ... 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
 ... 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
 - 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
 ... 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!

16. Por padrão, o daemon MariaDB escuta conexões de rede fora do host local na porta 3306/TCP. Execute o comando netstat, lsof ou sockstat para obter o estado do soquete MariaDB. Esta configuração é perigosa e expõe o serviço a ataques externos à rede.

lsof -i4 -i6
sockstat -4 -6

17. Se você não precisa de acesso remoto ao MariaDB, certifique-se de que o daemon MariaDB ouça apenas localhost, emitindo o comando abaixo. Posteriormente, reinicie o serviço MariaDB para aplicar as alterações.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Novamente, execute o comando netstat, lsof ou sockstat para listar o soquete de rede MariaDB. O soquete deve vincular e escutar no host local agora, conforme ilustrado na imagem abaixo.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Para testar a conectividade do banco de dados MariaDB no console, emita o seguinte comando. Digite a senha root do MySQL no prompt e uma lista de bancos de dados padrão deve ser exibida na tela do console, conforme ilustrado na imagem abaixo.

mysql -u root -p -e "show databases"

Isso é tudo! Você instalou com sucesso o servidor web Apache com banco de dados MariaDB e interpretador PHP no FreeBSD. Agora você pode começar a implantar um site WordPress rapidamente.

No próximo tutorial discutiremos alguns tópicos avançados do FPBAMP, como como habilitar e criar hosts virtuais Apache, habilitar o módulo de reescrita exigido pelo arquivo .htaccess para funcionar corretamente e como proteger conexões Apache usando um Certificado autoassinado ou certificado gratuito oferecido pela entidade Let's Encrypt.