Como instalar uma pilha Nginx, MySQL e PHP (FEMP) no FreeBSD 12.0

Uma pilha FEMP, que é comparável a uma pilha LEMP no Linux, é uma coleção de software de código aberto que normalmente é instalado em conjunto para permitir que um servidor FreeBSD hospede sites e aplicativos da web dinâmicos. FEMP é um acrônimo que significa FreeBSD, Nginx, MySQL e PHP.

Neste guia, implementaremos elementos de uma pilha FEMP em uma instância do FreeBSD 12.0 Vultr usando pkgo gerenciador de pacotes do FreeBSD.

Exigências

Antes de iniciar este guia, você precisará do seguinte:

  • Um FreeBSD 12.0 VPS.
  • Um usuário com privilégios de root ou sudousuário para fazer alterações na configuração.
  • Recomenda-se familiaridade básica com o sistema FreeBSD e a interface da linha de comandos.

Antes de você começar

Verifique a versão do FreeBSD.

uname -ro
# FreeBSD 12.0-RELEASE-p6

Verifique se o seu sistema FreeBSD está atualizado.

freebsd-update fetch install
pkg update && pkg upgrade -y

Instale os pacotes necessários.

pkg install -y sudo vim bash curl

Crie uma nova conta de usuário com seu nome de usuário preferido. Nós usamos johndoe.

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Execute o visudocomando e remova o comentário da %wheel ALL=(ALL) ALLlinha, para permitir que os membros do wheelgrupo executem qualquer comando.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Agora, mude para o usuário recém-criado com su:

su - johndoe

NOTA: Substitua johndoepelo seu nome de usuário.

Configure o fuso horário:

sudo tzsetup

Instalando o Nginx da linha principal

Você pode instalar o Nginx usando o gerenciador de pacotes do FreeBSD pkg,. Um gerenciador de pacotes permite que você instale a maioria dos softwares sem esforço a partir de um repositório mantido pelo FreeBSD. Você pode aprender mais sobre como usar pkgaqui .

Para instalar o Nginx da linha principal mais recente, emita o seguinte comando:

sudo pkg install -y nginx-devel

Verifique a versão:

nginx -v
# nginx version: nginx/1.17.1

Este comando instalará a versão mais recente da linha principal, que pode ser usada com segurança em um servidor de produção. Se você deseja instalar a última versão estável, use o nginxpacote em vez de nginx-devel.

Agora, ative e inicie o Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Para verificar se o Nginx foi iniciado, você pode executar o seguinte comando:

sudo service nginx status

Como resultado, você verá algo semelhante ao seguinte:

# Output
nginx is running as pid 17607.

Você pode verificar se o Nginx foi instalado e funcionando sem erros, visitando o endereço IP público do servidor em seu navegador. Navegue para your_server_IP. Você verá o padrão "Bem-vindo ao nginx!" página.

Instalando o MySQL

Novamente, você pode utilizar pkgpara obter e instalar seu software.

Instale o MySQL usando pkg:

sudo pkg install -y mysql80-client mysql80-server

Verifique a versão:

mysql --version
# mysql  Ver 8.0.16 for FreeBSD12.0 on amd64 (Source distribution)

Agora, ative e inicie o MySQL:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Para verificar se o MySQL foi iniciado, você pode executar o seguinte comando:

sudo service mysql-server status

Você verá algo semelhante ao seguinte:

# Output
mysql is running as pid 19066.

Como boa prática, você deve executar o mysql_secure_installationscript de segurança que removerá alguns padrões inseguros e limitará levemente o acesso ao seu sistema de banco de dados.

sudo mysql_secure_installation

Você será solicitado a definir uma senha, seguida de outras perguntas. Digite uma senha forte e, nas demais perguntas, pressione ENTERpara selecionar os padrões.

Instalando o PHP 7.3

Para instalar o PHP 7.3com pkg, execute este comando:

sudo pkg install -y php73

Verifique a versão.

php --version
# PHP 7.3.7 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

Soft-link php.ini-productionpara php.ini.

sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Agora, ative e inicie o PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Para verificar se o PHP-FPM foi iniciado, você pode executar o seguinte comando:

sudo service php-fpm status

Como resultado, você verá algo semelhante:

# Output
php_fpm is running as pid 23005.

Instalando Módulos PHP (Opcional)

Para aprimorar a funcionalidade do PHP, você pode instalar opcionalmente alguns módulos adicionais.

Para ver atualmente compilado em módulos PHP, você pode executar isto:

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard

# [Zend Modules]

Para procurar módulos PHP disponíveis, você pode usar este comando:

pkg search ^php73-*

Os resultados serão principalmente módulos PHP 7.3 que você pode instalar:

# Output
# php73-7.3.7                    PHP Scripting Language
# php73-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php73-aphpunit-1.8             Testing framework for unit tests
# php73-bcmath-7.3.7             The bcmath shared extension for php
# php73-brotli-0.7.0             Brotli extension for PHP
# php73-bsdconv-11.5.0           PHP wrapper for bsdconv
# php73-bz2-7.3.7                The bz2 shared extension for php
# php73-calendar-7.3.7           The calendar shared extension for php
# php73-composer-1.8.6           Dependency Manager for PHP
# php73-ctype-7.3.7              The ctype shared extension for php
# php73-curl-7.3.7               The curl shared extension for php
# . . .

Se, após a pesquisa, você decidir que precisa instalar um pacote, poderá fazê-lo usando o pkg installcomando A maioria dos aplicativos Web PHP requer módulos adicionais, por isso é bom saber como procurá-los.

Configurando o Nginx para usar o módulo PHP

Antes de usar o PHP, você deve configurá-lo para funcionar com o Nginx.

Execute sudo vim /usr/local/etc/nginx/test.confe preencha o arquivo com o seguinte conteúdo:

server {

  listen 80;
  server_name SERVER_IP; # Replace with your IP or hostname
  root /usr/local/www/nginx-dist;
  index index.php index.html index.htm;

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

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

}

Salve o arquivo e saia com :+ W+Q

Agora precisamos incluir test.confno nginx.confarquivo principal . O principal arquivo de configuração do Nginx reside em /usr/local/etc/nginxcomo nginx.conf.

Execute sudo vim /usr/local/etc/nginx/nginx.confpara abrir o arquivo de configuração principal no Vim e adicione a seguinte linha ao http {}bloco.

include test.conf;

Teste a configuração do Nginx:

sudo nginx -t

Como você fez alterações na configuração do Nginx, é necessário recarregar o serviço para que elas sejam aplicadas. Caso contrário, o Nginx ainda funcionará com a configuração anterior.

sudo service nginx reload

Testando o processamento PHP

Para testar se seu sistema está configurado corretamente para PHP, você pode criar um script PHP muito básico. Você chamará esse script info.php. Por padrão, o rootestá definido como /usr/local/www/nginx-dist. Você pode criar o info.phparquivo nesse local:

sudo vim /usr/local/www/nginx-dist/info.php

Adicione este código a esse arquivo:

<?php phpinfo(); ?>

Navegue até http://your_server_IP/ìnfo.phpe você verá a seguinte página:

Como instalar uma pilha Nginx, MySQL e PHP (FEMP) no FreeBSD 12.0

Após a instalação e configuração, você deve remover o info.phparquivo para evitar a divulgação de informações sobre o servidor ao público.

sudo rm /usr/local/www/nginx-dist/info.php

Conclusão

Parabéns, você instalou com sucesso uma pilha FEMP no seu FreeBSD 12.0 VPS. Agora você tem várias opções para o que fazer em seguida. Você instalou uma plataforma que permitirá instalar a maioria dos tipos de sites e software da web em cima dela.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.