Pesquisa de site

Instale Nginx, MariaDB e PHP no FreeBSD 10.2


Em nosso tutorial anterior, descrevemos como configurar a pilha FAMP no FreeBSD.

  • Instale a pilha Apache, MariaDB e PHP (FAMP) no FreeBSD 10.2

Agora, mostraremos como instalar a pilha Nginx, MariaDB e PHP (FEMP) no servidor FreeBSD 10.2.

Como você provavelmente sabe, FEMP é o acrônimo de FreeBSD, Nginx (engine x), MariaDB/MySQL e PHP.

Para os fins deste tutorial, usarei a seguinte máquina de teste.

  • Sistema operacional: sistema FreeBSD 10.2 de 64 bits
  • Nome do host: freebsd.ostechnix.local
  • Endereço IP: 192.168.1.103/24

Bem, agora vamos começar a implantar a pilha FAMP no FreeBSD 10.2.

1. Atualize seu FreeBSD

Como qualquer outro sistema operacional, devemos atualizar o FreeBSD antes de instalar qualquer software. Para fazer isso, mude para usuário root:

su

E execute os seguintes comandos um por um para atualizar seu servidor FreeBSD:

freebsd-update fetch install

2. Instale o Nginx

Instale o servidor web Nginx usando o comando:

# pkg install nginx

Configurar o Nginx

O arquivo de configuração padrão do Nginx é /usr/local/etc/nginx/nginx.conf.

Vamos fazer backup do arquivo de configuração primeiro, caso algo dê errado, podemos restaurar facilmente a partir do backup.

Para fazer isso, execute:

mv /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.conf.bak

A seguir, crie um novo arquivo de configuração Nginx:

nano /usr/local/etc/nginx/nginx.conf

Adicione as seguintes linhas:

user www;
worker_processes  1;
error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  ostechnix.local www.ostechnix.local;
        root /usr/local/www/nginx;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        error_page      500 502 503 504  /50x.html;
        location = /50x.html {
            root /usr/local/www/nginx-dist;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                include fastcgi_params;
        }
    }
}

Substitua a diretiva server_name (ostechnix.local) pela sua própria. Salve e feche o arquivo.

Em seguida, crie os arquivos de log necessários. Esses arquivos de log serão úteis para qualquer solução de problemas e análise de erros no futuro.

mkdir -p /var/log/nginx
touch /var/log/nginx/access.log
touch /var/log/nginx/error.log

Em seguida, precisamos configurar o diretório raiz da web correto. Por padrão, o diretório raiz da web é /usr/local/www/nginx, mas é apenas um link simbólico para o diretório “nginx-dist ”.

Devemos remover esse link e apontá-lo para o local correto.

Então, vamos remover o diretório raiz da web com o comando:

rm -rf /usr/local/www/nginx

Em seguida, recrie o diretório raiz da web com o comando:

mkdir /usr/local/www/nginx

Em seguida, devemos copiar o arquivo index.html para o diretório raiz da web, porque ele foi excluído enquanto removíamos o diretório raiz da web na etapa anterior.

cp /usr/local/www/nginx-dist/index.html /usr/local/www/nginx

Teste se o arquivo de configuração nginx está correto com o comando:

nginx -t

Exemplo de resultado:

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

Finalmente, precisamos habilitar e iniciar o serviço Nginx. Para fazer isso, execute:

sysrc nginx_enable=yes
service nginx start

Teste Nginx

Abra seu navegador e navegue até: http://endereço IP/ ou http://localhost. Você verá a seguinte página de teste do Nginx.

Parabéns! A instalação do servidor web Nginx foi bem-sucedida e está funcionando bem.

Em seguida, precisamos instalar o MariaDB.

3. Instale MariaDB

MariaDB é um substituto imediato do MySQL. Para instalar o MariaDB, execute:

pkg install mariadb100-server

Em seguida, copie o arquivo de configuração do MariaDB do diretório '/usr/local/share/mysql/' para '/usr/local/etc/' conforme mostrado abaixo.

cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf

Em seguida, habilite e inicie o serviço MariaDB usando comandos:

sysrc mysql_enable=yes
service mysql-server start
Configurar a senha do usuário root do MariaDB

Como você provavelmente sabe, o usuário root do MariaDB está vazio, o que não é recomendado, no momento da instalação. Portanto, para proteger o usuário root do MariaDB, é obrigatório configurar uma senha forte para o usuário root. Para fazer isso, execute:

# mysql_secure_installation

Quando solicitado “Digite a senha atual para root ”, basta pressionar a tecla ENTER e definir a senha duas vezes. Em seguida, basta pressionar Y para aceitar os valores padrão.

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] ## 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] ## 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] ## Press 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] ## 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] ## 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!

É isso. MariaDB está instalado e protegido agora. Vamos prosseguir e instalar o PHP.

4. Instale PHP

Para instalar o PHP, execute:

pkg install php56-mysql php56-mysqli

Depois de instalar o PHP, copie o arquivo de configuração PHP de amostra  /usr/local/etc/php.ini-production  para o diretório /usr/local/etc/ conforme mostrado abaixo.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Se você fizer alguma alteração, deverá atualizá-la usando o comando:

rehash

Agora, precisamos configurar o PHP com o servidor web Nginx.

Configurar PHP com servidor web Nginx

Edite o arquivo /usr/local/etc/php-fpm.conf:

nano /usr/local/etc/php-fpm.conf

Encontre a seguinte linha:

listen = 127.0.0.1:9000

E substitua por:

listen = /var/run/php-fpm.sock

Em seguida, encontre as seguintes linhas e descomente-as.

listen.owner = www
listen.group = www
listen.mode = 0660

Salve e feche o arquivo.

Testar PHP

Crie um arquivo PHP de amostra no diretório raiz da web:

nano /usr/local/www/nginx/test.php

Adicione a seguinte linha:

<?php phpinfo(); ?>

Salve e feche o arquivo.

Em seguida, ative e inicie o serviço PHP-FPM com os seguintes comandos:

sysrc php_fpm_enable=yes
service php-fpm start

Finalmente, reinicie o serviço nginx usando o comando:

service nginx restart

Agora, abra seu navegador e navegue até: http://IP-Address/info.php

Você deverá ver a seguinte página de teste PHP.

Instale módulos PHP

Precisamos instalar módulos PHP (extensões) para aprimorar a funcionalidade do PHP. Isso é opcional, você pode ignorá-lo se não precisar instalar nenhuma extensão.

Para visualizar a lista de módulos disponíveis, basta executar:

pkg search php56

Você pode verificar o que cada módulo faz na seção de comentários na saída acima ou apenas executar o seguinte comando

pkg search -f php56-curl

Exemplo de resultado:

php56-curl-5.6.18
Name : php56-curl
Version : 5.6.18
Origin : ftp/php56-curl
Architecture : freebsd:10:x86:64
Prefix : /usr/local
Repository : FreeBSD [pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/quarterly]
Categories : ftp
Licenses : PHP301
Maintainer : ale@FreeBSD.org
WWW : http://www.php.net/
Comment : The curl shared extension for php
[...]

Para instalar uma extensão PHP, por exemplo php56-curl-5.6.18, execute:

pkg install php56-curl

Parabéns! Nesta fase, a pilha FEMP está pronta para hospedar seus sites ou qualquer aplicativo baseado na web.

É tudo por agora. Obrigado por ler este tutorial. Se você tiver alguma dúvida, sinta-se à vontade para perguntar na seção de comentários abaixo. Nós resolveremos isso o mais rápido possível.

Se você achar este tutorial útil, compartilhe-o em suas redes sociais e apoie a OSTechNix.

Saúde!

Artigos relacionados