Como instalar o Drupal no Ubuntu 20.04. 18.04 com Nginx e Let's Encrypt

  • Eustace Evans
  • 0
  • 2548
  • 689

Este breve tutorial mostra aos alunos e novos usuários como instalar o sistema de gerenciamento de conteúdo (CMS) Drupal no Ubuntu 18.04 | 20.04 com servidor Nginx HTTP e vamos criptografar certificados SSL curinga.

Drupal, um sistema de gerenciamento de conteúdo gratuito e de código aberto construído com PHP é fácil de instalar e gerenciar.

Você pode usar o Drupal para executar seus sites de conteúdo e construir experiências digitais incríveis com poucos esforços.

Quando você está procurando um CMS para executar seu conteúdo online, o Drupal provavelmente deve ser um ponto de partida para você. E se você quiser aprender como instalá-lo e gerenciá-lo facilmente, este post é tudo que você precisa.

Para mais informações sobre o Drupal, verifique a página inicial deles

Para começar a instalar o Drupal, siga as etapas abaixo:

Etapa 1: instalar o servidor HTTP Nginx

O Drupal requer um servidor web para funcionar, e o Nginx é um dos servidores de código aberto mais populares disponíveis hoje.

Para instalar o Nginx no Ubuntu, execute os comandos abaixo:

sudo apt update sudo apt install nginx

Depois de instalar o Nginx, os comandos abaixo podem ser usados ​​para parar, iniciar e habilitar o serviço Nginx para sempre inicializar com as inicializações do servidor.

sudo systemctl stop nginx.service sudo systemctl start nginx.service sudo systemctl enable nginx.service

Para testar se o Nginx está instalado e funcionando, abra seu navegador e navegue até o endereço IP ou nome de host do servidor.

http: // localhost

Se você vir a página acima em seu navegador, o Nginx está funcionando conforme o esperado.

Etapa 2: Instale o servidor de banco de dados MariaDB

Você também precisará de um servidor de banco de dados para executar o Drupal. Um servidor de banco de dados é onde o conteúdo do Drupal é armazenado.

Um verdadeiro servidor de banco de dados de código aberto que você pode usar com o Drupal é o servidor de banco de dados MariaDB. É rápido, seguro e o servidor padrão para quase todos os servidores Linux.

Para instalar o MariaDB, execute os comandos abaixo:

sudo apt-get install mariadb-server mariadb-client

Depois de instalar o MariaDB, os comandos abaixo podem ser usados ​​para parar, iniciar e permitir que o serviço MariaDB sempre inicialize quando o servidor for inicializado.

sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl enable mariadb.service

Em seguida, execute os comandos abaixo para proteger o servidor de banco de dados com uma senha root, caso não seja solicitado durante a instalação.

sudo mysql_secure_installation

Quando solicitado, responda às perguntas abaixo seguindo o guia.

  • Digite a senha atual do root (digite nenhum): Basta pressionar Enter
  • Definir senha de root? [S / n]: S
  • Nova senha: Digite a senha
  • Digite a nova senha novamente: repita a senha
  • Remover usuários anônimos? [S / n]: S
  • Desautorizar login de root remotamente? [S / n]: S
  • Remover banco de dados de teste e acesso a ele? [S / n]: S
  • Recarregar tabelas de privilégios agora? [S / n]: S

Para verificar e validar se o MariaDB está instalado e funcionando, faça login no console do banco de dados usando os comandos abaixo:

sudo mysql -u root -p

digite a senha de root quando solicitado.

Se você vir uma tela semelhante à mostrada acima, o servidor foi instalado com sucesso.

Etapa 3: instalar o PHP 7.4 e módulos relacionados

Drupal é um aplicativo baseado em PHP, e PHP é necessário para executá-lo. Como algumas versões do Ubuntu não têm a versão mais recente do PHP, você pode adicionar um repositório PPA de terceiros para instalar o PHP a partir dele.

O comando abaixo irá adicionar um PPA de terceiros ao Ubuntu.

sudo apt-get install software-propriedades-common sudo add-apt-repository ppa: ondrej / php

Em seguida, atualize e atualize para PHP 7.4

atualização apt sudo

Em seguida, execute os comandos abaixo para instalar o PHP 7.4 e módulos relacionados.

sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7. 4-xml php7.4-cli php7.4-zip

Depois de instalar o PHP 7.4, vá e defina algumas configurações básicas que podem ser necessárias para o Drupal funcionar corretamente.

Execute os comandos abaixo para abrir o PHP

sudo nano /etc/php/7.4/fpm/php.ini

Abaixo estão as boas configurações para definir para a maioria dos sites Drupal.

file_uploads = Ligado allow_url_fopen = Ligado short_open_tag = Ligado memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360 date.timezone = América / Chicago

Isso deve ter o PHP 7.4 instalado com algumas configurações básicas para permitir que o Drupal funcione.

Etapa 4: Criar banco de dados Drupal

Quando todos os servidores instalados acima, agora é hora de começar a configurar o ambiente Drupal. Primeiro, execute as etapas abaixo para criar um banco de dados em branco para o Drupal usar.

Faça logon no console do banco de dados MariaDB usando os comandos abaixo:

sudo mysql -u root -p

Em seguida, crie um banco de dados chamado drupal

CREATE DATABASE drupal;

Em seguida, crie um usuário de banco de dados chamado drupaluser e definir a senha

CRIAR USUÁRIO 'drupaluser' @ 'localhost' IDENTIFICADO POR 'new_password_here';

Em seguida, conceda ao usuário acesso total ao banco de dados.

GRANT ALL ON drupal. * TO 'drupaluser' @ 'localhost' WITH GRANT OPTION;

Por fim, salve suas alterações e saia.

FLUSH PRIVILEGES; SAÍDA;

Etapa 5: Baixe o Drupal

Neste ponto, o Drupal está pronto para ser baixado e instalado. Use os comandos abaixo para baixar a versão mais recente do Drupal.

Para obter a versão mais recente do Drupal, você pode querer usar o repositório Github… Instale o Composer, Curl e outras dependências para começar…

sudo apt install curl git curl -sS https://getcomposer.org/installer | sudo php - --install-dir = / usr / local / bin --filename = composer

Depois de instalar o curl e o Composer acima, mude para o diretório raiz do Nginx e baixe os pacotes Drupal do Github ... Sempre substitua o número do branch pelo último branch.

Para ver os lançamentos do Drupal, consulte esta página.

cd / var / www / sudo git clone --branch 8.8.5 https://git.drupal.org/project/drupal.git cd / var / www / drupal sudo composer install

Em seguida, execute o comando abaixo para permitir www-data usuário possuir o diretório Drupal.

sudo chown -R www-data: www-data / var / www / drupal / sudo chmod -R 755 / var / www / drupal /

Etapa 6: configurar o Nginx

Abaixo, você configura o arquivo Nginx VirtualHost para o site Drupal que está criando. Este arquivo define como as solicitações do cliente são tratadas e processadas.

Execute os comandos abaixo para criar um novo arquivo VirtualHost chamado drupal no / etc / nginx / sites-available / diretório.

sudo nano / etc / nginx / sites-available / drupal

Abaixo, há opções de configuração muito boas para a maioria dos sites Drupal no servidor Nginx. Esta configuração deve funcionar bem.

Copie o conteúdo abaixo e salve no arquivo criado acima.

servidor escuta 80; escute [::]: 80; root / var / www / drupal; index index.php index.html index.htm; server_name example.com www.example.com; client_max_body_size 100M; autoindex desligado; localização ~ \… * /. * \. php $ return 403;  localização ~ ^ / sites /.*/ privado / retorno 403;  # Bloqueia o acesso aos scripts na localização do diretório de arquivos do site ~ ^ / sites / [^ /] + / files /.* \. Php $ deny all;  # Bloqueia o acesso a arquivos e diretórios "ocultos" cujos nomes começam com um ponto #. Isso inclui diretórios usados ​​por sistemas de controle de versão # como Subversion ou Git para armazenar arquivos de controle. localização ~ (^ | /) \. return 403;  location / try_files $ uri /index.php?$query_string;  localização @rewrite reescrever ^ / (. *) $ /index.php?q=$1;  # Não permita acesso direto aos arquivos PHP no diretório do fornecedor. localização ~ /vendor/.*\.php$ negar todos; return 404;  localização ~ '\ .php $ | ^ / update.php' include snippets / fastcgi-php.conf; fastcgi_pass unix: /run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; incluem fastcgi_params;  # Lutando com estilos? Esta pequena joia é incrível. # location ~ ^ / sites /.*/ files / imagecache / # Para Drupal <= 6 location ~ ^/sites/.*/files/styles/  # For Drupal >= 7 try_files $ uri @rewrite;  # Manipule arquivos privados por meio do Drupal. O caminho do arquivo privado pode vir # com um prefixo de idioma. localização ~ ^ (/ [a-z \ -] +)? / system / files / # For Drupal> = 7 try_files $ uri /index.php?$query_string; 

Salve o arquivo e saia.

Depois de salvar o arquivo acima, execute os comandos abaixo para habilitar o novo site e reinicie o servidor Nginx.

sudo ln -s / etc / nginx / sites-available / drupal / etc / nginx / sites-enabled / sudo systemctl restart nginx.service

Neste estágio, o drupal está pronto e pode ser iniciado acessando o IP ou nome do host do servidor.

http: // localhost

No entanto, se você deseja habilitar SSL ou aceitar o tráfego da web em HTTPS, você pode continuar a seguir para instalar e configurar o Let's Encrypt certificados SSL gratuitos.

Etapa 7: Instale o Let's Encrypt Wildcard Certificates

Na etapa 6, o Drupal está pronto para uso sem SSL. No entanto, se você deseja servir o tráfego da web por HTTPS, então instalar e configurar o certificado Let's Encrypt SSL ou outros certificados públicos é uma obrigação.

Para instalar o Let's Encrypt, execute os comandos abaixo.

sudo apt update sudo apt-get install letsencrypt

Os comandos acima irão instalar a ferramenta certbot e todas as dependências que serão permitidas para fazer a ferramenta funcionar.

O Let's Encrypt oferece muitas maneiras de desafiá-lo a validar se você possui o domínio para o qual deseja fornecer certificados SSL. Você não poderá gerar certificados se não puder provar que é o proprietário do domínio que deseja proteger.

Para certificados curinga, o único método de desafio que Let's Encrypt aceita é o desafio de DNS, que podemos invocar por meio do preferido-desafios = dns bandeira.

Portanto, para gerar um certificado curinga para o domínio * .example.com, você executa os comandos abaixo:

sudo certbot certonly --manual --preferred-challenge = dns --email [email protected] --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d example.com - d * .example.com

As opções de comando acima são explicadas abaixo:

  • certonly: Obtenha ou renove um certificado, mas não instale
  • -manual: Obtenha certificados interativamente
  • -preferido-desafios = dns: Use dns para autenticar a propriedade do domínio
  • -servidor: Especifique o endpoint a ser usado para gerar
  • -concordar: Concordar com os termos de assinante do servidor ACME
  • -d: Nome de domínio para fornecer certificados para

Depois de executar o comando acima, Let's Encrypt fornecerá uma string de texto para adicionar um registro de texto à sua entrada DNS ...

Exemplo:

Salvando log de depuração em /var/log/letsencrypt/letsencrypt.log Plug-ins selecionados: Manual do autenticador, instalador nenhum ---------------------------- -------------------------------------------------- - Você gostaria de compartilhar seu endereço de e-mail com a Electronic Frontier Foundation, um parceiro fundador do projeto Let's Encrypt e a organização sem fins lucrativos que desenvolve o Certbot? Gostaríamos de enviar um e-mail sobre a EFF e nosso trabalho para criptografar a web, proteger seus usuários e defender os direitos digitais. -------------------------------------------------- ----------------------------- (S) es / (N) o: s Obtenção de um novo certificado Realizando os seguintes desafios: dns -01 desafio para example.com ------------------------------------------- ------------------------------------ NOTA: O IP desta máquina será registrado publicamente como tendo solicitado este certificado. Se você estiver executando o certbot no modo manual em uma máquina que não seja o seu servidor, certifique-se de que está tudo bem. Você está bem com o seu IP sendo registrado? -------------------------------------------------- ----------------------------- (S) es / (N) o: s ---------- -------------------------------------------------- ------------------- Implante um registro TXT DNS com o nome _acme-challenge.example.com com o seguinte valor: x4MrZ6y-JqFJQRmq_lGi9ReRQHPa1aTC9J2O7wDKzq8 Antes de continuar, verifique se o registro é implantado.

Vá para o portal do seu provedor de DNS e adicione um registro de texto para a string acima e salve ...

Espere alguns minutos antes de continuar a partir do prompt.

Alguns provedores de DNS tentam propagar as mudanças, então isso pode depender da plataforma do seu provedor.

Depois que as alterações acima e Let's encrypt for capaz de validar que você possui o domínio, você verá uma mensagem de sucesso como abaixo:

NOTAS IMPORTANTES: - Parabéns! Seu certificado e cadeia foram salvos em: /etc/letsencrypt/live/example.com/fullchain.pem Seu arquivo de chave foi salvo em: /etc/letsencrypt/live/example.com/privkey.pem Seu certificado irá expirar em 2020-01-09. Para obter uma versão nova ou ajustada deste certificado no futuro, basta executar o certbot novamente. Para renovar de forma não interativa * todos * os seus certificados, execute "renovbot certbot" 

O certificado curinga agora é gerado e pronto para ser usado.

Para verificar se o certificado está pronto, execute os comandos abaixo:

certificados sudo certbot

Isso deve exibir uma tela semelhante à abaixo:

Encontrados os seguintes certificados: Nome do certificado: example.com Domínios: * .example.com Data de validade: 2020-01-05 07: 48: 04 + 00: 00 (VÁLIDO: 85 dias) Caminho do certificado: / etc / letsencrypt / live /example.com/fullchain.pem Caminho da chave privada: /etc/letsencrypt/live/example.com/privkey.pem

Agora, os certificados do Let's Encrypt são válidos por 90 dias ... Você vai querer configurar um crob job para automatizar o processo de renovação ... Para fazer isso, abra o crontab e adicione a entrada abaixo:

sudo crontab -e

Em seguida, adicione a linha abaixo e salve ...

0 1 * * * / usr / bin / certbot renew >> /var/log/letsencrypt/renew.log

Salve e pronto!

Com o Let's Encrypt instalado, reabra o arquivo Nginx VirtualHost criado acima e adicione as configurações do Let's Encrypt para proteger o seu site.

Execute os comandos abaixo para abrir o arquivo.

sudo nano / etc / nginx / sites-available / drupal

Em seguida, adicione as linhas destacadas ao arquivo VirtualHost conforme mostrado abaixo:

servidor escuta 80; escute [::]: 80; server_name * .example.com; return 301 https: // $ host $ request_uri;  servidor ouvir 443 ssl http2; ouvir [::]: 443 ssl http2; root / var / www / drupal; index index.php; server_name example.com www.example.com; if ($ host! = "example.com") return 301 https: //example.com$request_uri;  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13 + AESGCM + AES128: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AESHE128-ECAM: GCDHE-SHD-AESHE128-AES256-AES256 GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128: ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA: ECDHE-RSA-AES256-SHE: DHE: RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE-RSA-AES256-SHA256: DHE-RSA-AES256-SHA: ECDHE-ECDSA-DES-CBC3-SHA: ECDHE-RSA-DES-CBC3-SHA: EDH-RSA-DES-CBC3-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: DES-CBC3-SHA:! DSS '; ssl_prefer_server_ciphers ativado; ssl_session_cache compartilhado: SSL: 50m; ssl_session_timeout 1d; ssl_session_tickets off; ssl_ecdh_curve X25519: sect571r1: secp521r1: secp384r1; client_max_body_size 100M; autoindex desligado; localização ~ \… * /. * \. php $ return 403;  localização ~ ^ / sites /.*/ privado / retorno 403;  # Bloqueia o acesso aos scripts na localização do diretório de arquivos do site ~ ^ / sites / [^ /] + / files /.* \. Php $ deny all;  # Bloqueia o acesso a arquivos e diretórios "ocultos" cujos nomes começam com um ponto #. Isso inclui diretórios usados ​​por sistemas de controle de versão # como Subversion ou Git para armazenar arquivos de controle. localização ~ (^ | /) \. return 403;  location / try_files $ uri /index.php?$query_string;  localização @rewrite reescrever ^ / (. *) $ /index.php?q=$1;  # Não permita acesso direto aos arquivos PHP no diretório do fornecedor. localização ~ /vendor/.*\.php$ negar todos; return 404;  localização ~ '\ .php $ | ^ / update.php' include snippets / fastcgi-php.conf; fastcgi_pass unix: /run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; incluem fastcgi_params;  # Lutando com estilos? Esta pequena joia é incrível. # location ~ ^ / sites /.*/ files / imagecache / # Para Drupal <= 6 location ~ ^/sites/.*/files/styles/  # For Drupal >= 7 try_files $ uri @rewrite;  # Manipule arquivos privados por meio do Drupal. O caminho do arquivo privado pode vir # com um prefixo de idioma. localização ~ ^ (/ [a-z \ -] +)? / system / files / # For Drupal> = 7 try_files $ uri /index.php?$query_string; 

Após o acima, reinicie o Nginx e PHP 7.4-FPM

sudo systemctl reload nginx sudo systemctl reload php7.4-fpm

Em seguida, abra seu navegador e navegue até o nome de domínio do servidor. Você deverá ver o assistente de configuração do Drupal para concluir. Por favor, siga o assistente cuidadosamente.

https://example.com/

Em seguida, siga as instruções na tela ... Selecione o idioma de instalação e clique em Salvar e continuar.

Na próxima tela, escolha a opção de instalação padrão para incluir recursos comumente usados ​​que são pré-configurados.

Estas são as opções mais populares para a maioria dos sites que executam Drupal CMS.

Em seguida, digite as informações de conexão do banco de dados e clique em Salvar e continuar.

Depois disso, insira as informações do site, incluindo o nome do site, endereço de e-mail do administrador do site, nome de usuário e senha e continue.

Quando terminar, o Drupal deve estar instalado e pronto para uso. Faça login como administrador e comece a configurar seu site.

No futuro, quando você quiser atualizar para uma nova versão lançada, basta executar os comandos abaixo para atualizar ...

sudo composer update / var / www / drupal / core --with-dependencies cd / var / www / drupal sudo composer requer drush / drush cd / var / www / drupal / vendor / drush / drush ./drush updatedb ./drush cr sudo chown www-data: www-data / var / www / drupal sudo chmod 755 / var / www / drupal

É isso aí!

Parabéns! Você instalou com êxito o Drupal CMS no Ubuntu 18.04 | 20.04. Se você encontrar algum erro acima, por favor use o formulário de comentários abaixo para relatá-lo.

obrigado,




Ainda sem comentários

Uma coleção de informações úteis sobre o sistema operacional Linux e novas tecnologias
Artigos novos, dicas práticas, revisões detalhadas e guias. Sinta-se em casa no mundo do sistema operacional Linux