Tutorial instalar e configurar servidor web (HTTP) no Ubuntu com Apache, MySQL, PHP, FTP, TLS e PHP-FPM

Objetivos

  • Entender o que é um servidor web
  • Saber quais softwares básicos um servidor web precisa
  • Passo a passo para configurar um servidor web instalando o MySQL, PHP, FTP com TLS, PHP-FPM e Apache

O que é um servidor web

Há certa ambiguidade ao se referir a um servidor web ou servidor http. Esta ambiguidade se deve ao fato de um servidor ser referido tanto ao seu aspecto de hardware, quanto de software.
Para facilitar o entendimento, um servidor web possui recursos como um computador pessoal: processador, armazenamento, memória ram, etc; estas características são referentes ao hardware do servidor web.
Um servidor no geral, provê serviços aos usuários, no caso do servidor web, ele provê o serviço de páginas de websites. Para ter esta funcionalidade, de prover páginas, o servidor precisa ter um software de servidor http instalado e configurado; desta forma, no aspecto de software, um servidor web pode ser entendido como o software de servidor http, como o : apache, nginx, lighttpd, iis, etc.

Saber quais softwares básicos um servidor web precisa

Caso o servidor web forneça somente páginas no formato html, é necessário somente instalar um software de servidor http, como dito anteriormente: nginx, iis, apache, etc.
Mas é muito comum os servidores utilizarem uma linguagem de programação, que pode ser o php, python, java, etc. Desta forma o servidor precisa ter suporte a estas linguagens também.
Alguns websites precisam de acesso ao banco de dados para armazenar informações, como sistema de login e senha, aplicativos em formato de site, etc. Desta forma, o suporte a um banco de dados também é pertinente, como exemplo temos o postgre, mysql, oracle, etc.
É comum também que se conecte no servidor por SSH ou FTP para a transferência de arquivos das páginas web. Então é necessário a instalação de softwares que oferecem este suporte de transferência de arquivos.

Boa parte dos sites na internet utilizam um sistema gerenciador de conteúdo (CMS). Como exemplo, temos o wordpress, que possui mais de 40% da fatia de mercado. Neste caso específico, para termos um servidor web que possa ser capaz de hospedar sites com a estrutura do wordpress, precisamos instalar:

  • Servidor Http: o de sua preferência (apache, nginx, etc)
  • Linguagem de programação: PHP
  • Banco de dados: MySQL
  • Transferência de arquivos: SSH ou SSH e FTP

Quais softwares vamos utilizar para o setup do servidor HTTP deste exemplo?

Neste exemplo será feito a instalação conhecida como LAMP:

  • Linux
  • Apache
  • MySQL
  • PHP

Lembrando que para este tutorial, levamos em conta que a instalação do sistema operacional com o Linux Ubuntu já foi realizada, juntamente com a instalação do OpenSSH. É possível rever estes passos neste Tutorial para Instalar Sistema Operacional para Servidor. Adicionalmente vamos realizar a instalação do FTP neste tutorial, juntamente com a opção de encriptação do FTP com TLS e a instalação do interpretador PHP-FPM Fast CGI.

Passo a passo para configurar um servidor web instalando o MySQL, PHP, FTP com TLS, Apache e PHP-FPM

Instalando servidor HTTP Apache

Passo 1

Primeiramente é necessário verificar os updates disponíveis com o comando:

sudo apt update

Em seguida, vamos realizar o upgrade dos softwares disponíveis:

sudo apt upgrade

ubuntu sudo apt update
ubuntu sudo apt upgrade

Passo 2

Agora vamos instalar o software de servidor HTTP chamado apache:

sudo apt install apache2

ubuntu sudo apt install apache2

Passo 3

Vamos verificar o IP do servidor com o comando:

ip a

ubuntu ip a

Passo 4

Agora vamos digitar o IP do servidor em um browser de internet e verificar se a página padrão do apache irá aparecer.

Apache default page

Passo 5

Tudo certo! Software de servidor http apache instalado e funcionando corretamente! Servidor pronto para servir páginas em HTML.

Instalando Banco de Dados MySQL

Passo 6

Utilize o comando abaixo para instalar o MySQL:

sudo apt install mysql-server

ubuntu sudo apt install mysql server

Passo 7

Agora vamos definir a senha @@@senha123 para ser a senha do usuário root:

sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '@@@senha123';"

Em um próximo passo vamos atualizar esta senha, então não se preocupe em trocar ela neste momento.

ubuntu mysql root password change

Passo 8

Agora vamos executar o seguinte comando para finalizar a instalação do banco de dados:

sudo mysql_secure_installation

Durante a execução do comando acima, será necessário realizar as operações:

  1. Digitar a senha de root previamente criada: @@@senha123
  2. Não habilitar componente para verificar força de senha. Este módulo geralmente causa bastante dor de cabeça na maioria das vezes. Recomendação é não habilitar.
  3. Agora é a oportunidade de trocar a senha do usuário root do banco de dados (não confundir com usuário root do login do sistema operacional). Lembre de anotar a senha em um local seguro, pois será necessária futuramente para criação de novos usuários e bancos de dados.
  4. Agora remova os usuários anônimos de teste.
  5. Remova acesso remoto de usuário root ao banco de dados.
  6. Remova banco de dados de teste.
  7. Atualize as tabelas de privilégios para que as mudanças tenham efeito imediato.

ubuntu sudo mysql_secure_installation
ubuntu sudo mysql_secure_installation
ubuntu sudo mysql_secure_installation

Instalando linguagem de programação PHP

Passo 9

Para instalar o suporte PHP para o servidor apache, utilize o comando:

sudo apt install php

ubuntu sudo apt install php

Passo 10

Para instalar o software de manipulação de imagens ImageMagick, utilize o comando:

sudo apt install imagemagick

ubuntu sudo apt install imagemagick

Passo 11

Para instalar o software de manipulação e criação de arquivos pdf e postscript, utilize o comando:

sudo apt install ghostscript

ubuntu sudo apt install ghostscript

Passo 12

Para instalar pacotes adicionais do PHP que são recomendados para uma instalação do wordpress, utilize o comando:

sudo apt install php-{json,mysqli,curl,imagick,mbstring,xml,zip,memcache,opcache,redis,intl,ssh2,common}

ubuntu sudo apt install php extensions wordpress

Passo 13

Para instalar algumas extensões populares, utilize o comando:

sudo apt install php-{gd,cli,dev,imap,soap}

ubuntu sudo apt install php popular extensions

Passo 14

Para instalar alguns pacotes populares, utilize o comando:

sudo apt install openssl bc filter zlib1g wget unzip

ubuntu sudo apt install popular packages

Passo 15

Agora, com o comando abaixo, ele vai criar um arquivo chamado info.php que chama a função phpinfo() e mostra todas as configurações do php instalado. Este arquivo (info.php) poderá ser acessado pelo browser.

ubuntu create phpinfo file

Passo 16

Para visualizar o arquivo info.php criado, abra o browser de intenet, digite o IP do seu servidor seguido de /info.php. Como exemplo, temos:

http://192.168.1.135/info.php

Phpinfo Apache 2.0 Handler

Instalando Interface de administração do MySQL (phpmyadmin)

Passo 17

O phpmyadmin é uma interface web para administração do banco de dados MySQL.
Para instalar o phpmyadmin, execute o comando:

sudo apt install phpmyadmin

Lembrando que o phpmyadmin necessita de extensões adicionais do PHP que foram previamente instaladas. Caso não tenha instalado, basta executar o comando:

sudo apt install php-mbstring php-zip php-gd php-json php-curl

Durante a instalação do phpmyadmin, será necessário definir algumas configurações de instalação:

  1. Será necessário informar qual servidor http temos configurado no servidor. Neste tutorial, estamos utilizando o servidor Apache (apache2). Atenção! Utilize as setas do teclado e fique em cima da seleção do Apache2 e tecle ESPAÇO uma vez para selecionar sua escolha. Somente após escolher a opção, tecle enter. É muito comum as pessoas apertarem ENTER sem selecionar o servidor Apache2 e ter que executar o dpkg-reconfigure phpmyadmin para refazer a instalação do phpmyadmin e selecionar corretamente o servidor http.
  2. Aceite a opção de utilizar o dbconfig-common para configurar o banco do phpmyadmin.
  3. Na última etapa é preciso escolher uma senha para o phpmyadmin se conectar ao banco de dados. Escolha uma senha forte. Esta senha será utilizada somente pelo phpmyadmin. Após escolher a senha, confirme ela novamente na próxima etapa. Caso deixe o campo em branco, uma senha aleatória será criada automaticamente.

ubuntu sudo apt install phpmyadmin php extensions needed
ubuntu sudo apt install phpmyadmin
ubuntu sudo apt install phpmyadmin http server selection
ubuntu sudo apt install phpmyadmin http server selected
ubuntu sudo apt install phpmyadmin dbconfig common
ubuntu sudo apt install phpmyadmin password creation

Passo 18

Para acessar a interface do phpmyadmin, utilize o browser de internet, digite o IP do servidor seguido de /phpmyadmin. Como exemplo, temos:

http://192.168.1.104/phpmyadmin

É interessante realizar login com o usuário root e senha. E criar um login de usuário pessoal para o responsável por administrar o banco de dados. Evitar sempre que possível utilizar o login do usuário root no dia a dia. Lembre-se de garantir privilégios de administrador no momento da criação de seu novo usuário.

phpmyadmin login page

Passo 19

Como estamos utilizando o apache para nosso servidor http, uma opção possível, é criar uma segunda camada de login em cima do phpmyadmin. O phpmyadmin é um aplicativo muito conhecido e hackers podem buscar brechas de segurança para ter acesso ao bando de dados. Com uma segunda camada de login, aumentamos o nível de segurança do servidor. O Apache permite utilizarmos um arquivo .htaccess e .htpasswd para gerenciar permissões por diretório, neste caso, vamos criar permissões de acesso. Primeiramente vamos editar o arquivo de configuração do phpmyadmin com o comando:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Procure a linha com o texto “DirectoryIndex index.php”. Abaixo desta linha vamos inserir o seguinte texto:

AllowOverride All

Salve as modificações e feche o nano.

ubuntu sudo nano phpmyadmin.conf
ubuntu sudo nano phpmyadmin.conf
ubuntu sudo nano phpmyadmin.conf

Passo 20

Agora vamos reiniciar o Apache para que a modificação do passo anterior tenha efeito:

sudo service apache2 restart

ubuntu sudo service apache2 restart

Passo 21

Neste passo vamos criar um arquivo .htaccess dentro do diretório do phpmyadmin (/usr/share/phpmyadmin/) e configurar um método de login baseado em usuário e senha armazenado no arquivo .htpasswd. Isso tudo é feito com o comando:

echo -e 'AuthType Basic\nAuthName "Restricted Files"\nAuthUserFile /etc/phpmyadmin/.htpasswd\nRequire valid-user' | sudo tee -a /usr/share/phpmyadmin/.htaccess

ubuntu phpmyadmin htpasswd protection

Passo 22

Agora precisamos criar o arquivo .htpasswd com os usuários que têm permissão de acesso da página de login do phpmyadmin. Para criar o primeiro usuário, utilize o comando:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd nomeusuario

Lembre-se de substituir o “nomeusuario” do comando acima, para o nome de usuário de sua escolha. Para criar os demais usuários, utilize sempre este segundo comando:

sudo htpasswd /etc/phpmyadmin/.htpasswd usuario2

O prefixo -c do primeiro comando entende que o arquivo .htpasswd não existe, e desta forma cria o arquivo. Porém, se o arquivo já exista, o comando -c irá apagar o arquivo original e criar um arquivo novo. Então preste bastante atenção ao criar os demais usuários para não sobrescrever o arquivo de usuário/senha (htpasswd).
Atenção! Anote os usuários e senhas criados nesta etapa, pois serão necessário para acessar a interface de login do phpmyadmin.

ubuntu create first user htpasswd
ubuntu create second user htpasswd

Passo 23

Agora vamos reiniciar o Apache para que a modificação do passo anterior tenha efeito:

sudo service apache2 restart

ubuntu sudo service apache2 restart

Passo 24

Agora acessando novamente o servidor pelo IP e url do phpmyadmin:

http://192.168.1.104/phpmyadmin

Repare que aparece um pedido de login antes da página de login do phpmyadmin. Esta primeira solicitação é diante do login criado na etapa do htpasswd. Este login do htpasswd fica salvo no cache, então, se estiver ativo no browser, provavelmente não pedirá login novamente se fechar e abrir a página do phpmyadmin. Mas se utilizar um browser diferente, reiniciar o computador, etc; será necessário realizar o login novamente.

htpasswd login window

Passo 25

Caso tenha realizado a etapa de segurança do .htaccess e .htpasswd corretamente e realizado a primeira etapa de login, agora basta inserir seu login e senha do phpmyadmin para acessar o banco de dados.

phpmyadmin login page

Instalação servidor FTP

Passo 26

Neste tutorial vamos utilizar o software proftpd como servidor de FTP. Existem outros softwares disponíveis para a mesma finalidade. Para instalar, utilize o comando:

sudo apt install proftpd

ubuntu sudo apt install proftpd

Passo 27

Para a conexão FTP no servidor é possível utilizar seu usuário pessoal de login do linux com a senha do sistema. É possível também criar uma lista de usuários independente, para acesso somente por conexão FTP. Neste exemplo optamos por criar um usuário de sistema do linux:

sudo useradd -m usuarioFTP1

Após criar o usuário, precisamos definir/alterar sua senha:

sudo passwd usuarioFTP1

ubuntu sudo useradd -m user
ubuntu sudo passwd user

Passo 28

No seu computador pessoal, recomendamos que instale o software cliente de FTP chamado de Filezilla. Segue url do site para download do software:

https://filezilla-project.org/download.php?type=client

Passo 29

No seu computador pessoal, execute o programa FileZilla. No campo de host, coloque o IP do seu servidor. No campo de login, coloque o usuário de teste criado usuarioFTP1. No campo de senha, coloque a senha que selecionou para este usuário. Clique agora em QuickConnect ou Conexão Rápida. É possível que apareça um popup perguntando se deseja salvar a senhas, etc. Por segurança, não recomendo salvar nenhuma senha.

Filezilla interface

Passo 30

Caso os passos tenham sido executados corretamente, a conexão entre cliente (computador pessoal) e servidor (servidor web) será bem sucedida. Para entender a interface do FileZilla, na figura do passo anterior, deixei selecionado em verde o lado esquerdo que são as pastas e arquivos do seu computador, e ao se conectar, do lado direito (em azul) serão as pastas e arquivos do servidor. Você poderá passar os arquivos de um lado para o outro como desejar. Caso apareça algum erro nessa operação de enviar arquivos, possivelmente é por permissão de escrita no diretório. Em um outro tutorial será explicado como entender tais permissões para organizar corretamente os arquivos. Mas por padrão, o usuário sempre terá acesso de leitura e escrita em sua pasta pessoal.

Passo 31

Uma etapa importante de segurança para o envio de arquivos por FTP é configurar encriptação TLS. No passo anterior o processo de envio e recebimento de arquivos já está funcional, mas os dados estão sendo enviados sem criptografia, podendo ser interceptados, assim como as credenciais de acesso ao servidor por FTP. Vamos então iniciar o processo de configuração de criptografia TLS, instalando o software openssl, caso ainda não tenha sido instalado:

sudo apt install openssl

ubuntu sudo apt install openssl

Passo 32

Agora precisamos criar um certificado para ser utilizado na conexão. Vamos gerar uma chave de certificado e um certificado com validade de 10 anos:

sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 3650

No processo de criação do certificado é necessário responder a estas perguntas:

  • Sigla do País: BR
  • Estado: (escreva o nome do estado onde você ou o servidor está)
  • Cidade: (escreva o nome da cidade onde você ou o servidor está)
  • Nome da sua empresa: (pode utilizar seu nome pessoal se não tiver empresa)
  • Unidade da sua empresa: (matriz, filial, etc)
  • Nome do seu domínio: (ou o seu nome se não tiver domínio registrado)
  • Email: (usar um email ou um alias próprio para esta função, para evitar spam na sua caixa pessoal)

ubuntu create tls certificate for proftpd with 2048 bits
ubuntu create tls certificate for proftpd with 2048 bits - part2
ubuntu create tls certificate for proftpd with 2048 bits part 3

Passo 33

Com o certificado criado, precisamos definir as permissões de arquivo corretas para a chave e certificado:

sudo chmod 600 /etc/ssl/private/proftpd.key
sudo chmod 600 /etc/ssl/certs/proftpd.crt

ubuntu sudo chmod 600 certificate files

Passo 34

Nesta etapa vamos editar o arquivo de configuração do proftpd.

sudo nano /etc/proftpd/proftpd.conf

ubuntu sudo nano proftpd.conf

Passo 35

Agora precisamos encontrar a linha: #Include /etc/proftpd/tls.conf e remover o caracter # do começo da linha. O caracter # transforma a linha em um “comentário”, desabilitando sua funcionalidade. Como queremos habilitar e encriptação TLS, precisamos “descomentar” a linha. Esta linha deve ficar da seguinte forma:

Include /etc/proftpd/tls.conf

ubuntu sudo nano proftpd.conf enable tls.confubuntu sudo nano proftpd.conf enabled tls.conf

Passo 36

No passo anterior habilitamos o proftpd a utilizar o arquivo de configuração tls.conf. Mas agora, precisamos editar este arquivo e verificar se as informações estão corretamente configuradas:

sudo nano /etc/proftpd/tls.conf

Com o arquivo aberto, precisamos descomentar as seguintes linhas:

#TLSEngine			on
#TLSLog				/var/log/proftpd/tls.log
#TLSProtocol			SSLv23

#TLSRSACertificateFile		/etc/ssl/certs/proftpd.crt
#TLSRSACertificateKeyFile	/etc/ssl/private/proftpd.key

#TLSOptions			AllowClientRenegotiations	

#TLSRequired			on

Desta forma, é preciso remover o # destas linhas acima. Como resultado elas devem ficar:

TLSEngine			on
TLSLog				/var/log/proftpd/tls.log
TLSProtocol			SSLv23

TLSRSACertificateFile		/etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile	/etc/ssl/private/proftpd.key

TLSOptions			AllowClientRenegotiations	

TLSRequired			on

Lembrando para não alterar as demais linhas do arquivo. Salve o arquivo e saia do editor nano.

ubuntu sudo nano tls.conf
ubuntu sudo nano tls.conf
ubuntu sudo nano tls.conf
ubuntu sudo nano tls.conf
ubuntu sudo nano tls.conf
ubuntu sudo nano tls.conf
ubuntu sudo nano tls.conf

Passo 37

Neste passo agora precisamos habilitar o módulo TLS dentro do arquivo modules.conf:

sudo nano /etc/proftpd/modules.conf

Agora encontre a linha #LoadModule mod_tls.c e remova o caracter #. Desta forma estamos “descomentando” a linha e habilitando o módulo mod_tls.c. Após editar a linha, esta deverá ficar como:

LoadModule mod_tls.c

Salve o arquivo e feche o editor nano.

ubuntu sudo nano modules.conf
ubuntu sudo nano modules.conf
ubuntu sudo nano modules.conf

Passo 38

Para o TLS agora funcionar no proftpd, precisamos instalar o seu módulo de encriptação com o comando:

sudo apt install proftpd-mod-crypto

ubuntu sudo apt install proftpd-mod-crypto

Passo 39

Para finalizar a configuração da encriptação TLS no FTP, precisamos reiniciar o serviço:

sudo service proftpd restart

ubuntu sudo service proftpd restart

Passo 40

No seu computador pessoal agora conecte novamente ao seu servidor por FTP utilizando o FileZilla. Na primeira conexão será necessário aceitar o certificado criado. Repare no rodapé do FileZilla, ao se conectar no servidor com criptografia, um cadeado irá aparecer.

Filezilla interfaceproftpd ftp certificado for tls
filezilla connected user with tls

Instalando PHP FastCGI Process Manager: PHP-FPM

Passo 41

Nesta estapa opcional, como estamos utilizando o servidor http Apache, temos a opção de trocar o interpretador PHP do Apache, pelo FastCGI. É uma etapa recomendada, pois o PHP-FPM garante diversas vantagens para processamento dos arquivos PHP, além de auxiliar em permissões de arquivos gerenciadas pelo servidor HTTP. Se pretende utilizar WordPress em seu servidor, é uma etapa altamente recomendada, para não ter dor de cabeça com permissão de arquivos, instalação de plugins, temas, updates, etc.
Para instalar o PHP-FPM, utilize o comando:

sudo apt install php-fpm

Durante a instalação é importante reparar qual versão do PHP-FPM está sendo instalada, pois o número da versão impacta no caminho dos arquivos que vamos precisar editar e habilitar.

ubuntu sudo apt install php-fm

Passo 42

Agora precisamos habilitar alguns módulos do apache, utilizando o comando:

sudo a2enmod proxy_fcgi setenvif

Estes módulos servem para gerenciar o proxy interno utilizado pelo PHP-FPM e as variáveis de ambiente internas.

ubuntu a2enmod proxy-fcgi setenvif

Passo 43

Agora vamos habilitar o PHP-FPM instalado. Como neste exemplo utilizamos a versão 8.1, o comando fica como:

sudo a2enconf php8.1-fpm

ubuntu sudo a2enconf php8.1-fpm

Passo 44

Agora é necessário reiniciar o servidor http, para que os módulos sejam ativados:

sudo service apache2 restart

ubuntu sudo service apache2 restart

Passo 45

Agora precisamos criar uma pool para o acesso a páginas php do servidor. Como não temos SSL instalado neste momento, nem mesmo um domínio, esta etapa surtirá efeito para o acesso ao servidor pelo IP, e sem ssl. Primeiramente vamos navegar até a pasta do php:

sudo cd /etc/php

Agora vamos verificar quais arquivos e diretórios existem dentro da pasta do php:

ls -lah

Neste exemplo, temos a versão 8.1 do php instalada, que podemos verificar pelo diretório presente.
Sabendo então qual a versão do php instalada, vamos direto para o diretório do PHP-FPM desta versão do php:

cd /etc/php/8.1/fpm/pool.d/

Agora precisamos criar/editar uma pool para o PHP-FPM. Vamos primeiro verificar se já existe alguma pool configurada dentro do diretório:

ls -lah

Verificamos a existência do arquivo www.conf. Que é a pool padrão ao instalar o PHP-FPM.

ubuntu cd /etc/php
ls -lah /etc/php
cd /etc/php/8.1/fpm/pool.d/
ls -lah /etc/php/8.1/fpm/pool.d/

Passo 46

Vamos editar o arquivo de pool www.conf, com o editor nano:

sudo nano www.conf

Dentro do arquivo www.conf, temos a opção de alterar diversas configurações. Mas nesta etapa é importante mudar somente o usuário que será responsável em executar os arquivos pelo servidor HTTP. No meu caso, meu usuário de exemplo (viniciuspaes) é o responsável por todos os arquivos dentro da pasta /var/www/, onde são publicadas as páginas web do servidor. Como pretendo utilizar o wordpress neste servidor, já vou alterar esta pool, definindo o usuário como viniciuspaes. Posteriormente, quando tivermos vários domínios configurados no servidor, com permissão de usuário para cada pasta distinta de cada site, podemos criar uma pool individual para cada site e definir um usuário distinto. Pensando em um servidor compartilhado com várias equipes, faz sentido este setup posterior. Então, para este exemplo, vou alterar a linha user = www-data para:

user = viniciuspaes

ubuntu sudo nano www.conf
ubuntu sudo nano www.conf
ubuntu sudo nano www.conf

Passo 47

Agora vamos habilitar suporte ao HTTP 2. Nesta etapa vamos habilitar o módulo:

sudo a2enmod http2

ubuntu sudo a2enmod http2

Passo 48

Agora precisamos reiniciar o serviço do PHP-FPM. Como estou com a versão 8.1 instalada, utilizo o comando:

sudo service php8.1-fpm restart

ubuntu sudo service php fpm restart

Passo 49

Como comentei em um dos passos anteriores, só estamos acessando o site pelo IP, pois não temos domínios configurados. Então neste momento, só vamos ativar o HTTP 2 para acesso por IP e sem criptografia SSL (https). Para isso, vamos editar o arquivo padrão de acesso ao servidor:

sudo nano /etc/apache2/sites-available/000-default.conf

Abaixo da linha DocumentRoot /var/www/html, insira o texto:

Protocols h2 http/1.1

Salve o arquivo e feche o editor nano.

ubuntu sudo nano 000-default
ubuntu sudo nano 000-default
ubuntu sudo nano 000-default

Passo 50

Agora reinicie o servidor HTTP e o PHP-FPM:

sudo service php8.1-fpm restart
sudo service apache2 restart

ubuntu sudo service php fpm restart
ubuntu sudo service apache2 restart

Passo 51

Agora vamos verificar se a instalação do PHP-FPM está funcional. Caso não tenha um arquivo info.php criado na sua pasta de publicação de páginas do servidor, utilize o comando:

ubuntu create phpinfo file

Passo 52

No seu computador pessoal, abra o browser de internet, acesse o IP do seu site seguido de /info.php. No meu exemplo, será:

http://192.168.1.104/info.php

Caso tenha feito os passos de forma correta, na linha Server API é possível verificar FPM/FastCGI. Desta forma o PHP-FPM foi instalado e configurado corretamente.

Phpinfo FPM FastCGI

Considerações Finais – Questões de Segurança

  • Criamos o usuarioFTP1 de exemplo para acesso ao FTP, se não for utilizá-lo, lembre-se de deletar o usuário:
sudo userdel usuarioFTP1
  • Utilizamos uma senha padrão @@@mudar123 para o usuário root do MySQL. Se não atualizou esta senha para uma mais forte, lembre-se de fazer.
  • Criamos o arquivo info.php para verificar a instalação do php. Lembre-se de remover este arquivo após o fim deste tutorial:
sudo rm /var/www/html/info.php

Conclusões

Partindo de base que já possui um computador local ou remoto com uma distribuição linux ubuntu instalada e com acesso SSH, este tutorial ensinou os passos para instalar uma configuração LAMP típica.
O servidor está pronto para receber e hospedar websites na pasta /var/www/html. Para os próximos passos, é importante entender como configurar domínios no servidor. Configurar uma pool distinta do PHP-FPM para cada domínio. Entender como funcionam as permissões de arquivos para que os websites fiquem funcionais. Caso tenha o desejo de utilizar sites com o CMS WordPress no seu servidor configurado, basta ficar atento nas publicações, que um tutorial está a caminho.
Revisando as instalações realizadas neste tutorial: Banco de Dados MySQL, Linguagem programação PHP, interface web para gerenciamento do banco de dados: Phpmyadmin, servidor HTTP apache (apache2), segunda camada de login no phpmyadmin com htaccess e htpasswd e interpretador php PHP-FPM FastCGI.