Configurando um servidor Ubuntu 20.04 simples com apache2, php7.4, mysql e SSL

Instalando servidor web no Linux pelo Terminal e configurando URL amigável, hostVirtual e PHP.

Olá amigos, tudo bem?

Hoje iremos aprender a instalar um servidor web completo no seu Linux

Instalando o servidor web

Vamos começar instalando o PHP7Apache2MariaDB, Certbot  e o PhpMyAdmin.

OBS. recomendo rodar linha por linha dos comandos abaixo caso de algum erro fica mais facil encontrar o problema.

apt update
apt install apache2 php libapache2-mod-php mariadb-server phpmyadmin certbot python3-certbot-apache

Assim que a instalação estiver em curso você terá que fazer algumas interações que são:

  1. A instalação perguntará se você quer instalar o Apache2 ou o Lighttpd, escolha o Apache2 e continue.
  2. A próxima pergunta será se você quer instalar a configuração padrão para o banco de dados do phpmyadmin, confirme e continue.
  3. Em seguida, será pedido a senha do MySql e para o phpmyadmin, digite as senhas e prossiga.

Antes de continuar, você deve saber que terá que instalar alguns módulos para o PHP funcionar dependendo do seu projeto. Vamos destacar os principais agora:

  • php7.4-mysql – Usado para o PHP trabalhar com MySql
  • php7.4-curl – Usado para o PHP trabalhar com cUrl
  • php7.4-xml – Usado para o PHP trabalhar com XML
  • php7.4-mbstring – Usado para o PHP trabalhar com strings
  • php7.4-json – Usado para o PHP trabalhar com Json
  • php7.4-zip – Usado para o PHP trabalhar com ZIP
  • php7.4-gd – Usado para o PHP trabalhar com imagens
  • php7.4-soap – Usado para o PHP trabalhar com SOAP

Esses foram os principais mas a lista é bem grande, para você escolher o que deseja, vou deixar um apt-get com todas as opções:

apt install php7.4-cli php7.4-dev php7.4-gmp php7.4-json php7.4-mysql php7.4-phpdbg php7.4-snmp php7.4-tidy php7.4-zip php7.4-bcmath php7.4-common php7.4-enchant php7.4-imap php7.4-ldap php7.4-odbc php7.4-pspell php7.4-soap php7.4-xml php7.4-bz2 php7.4-curl php7.4-fpm php7.4-interbase php7.4-mbstring php7.4-opcache php7.4-readline php7.4-sqlite3 php7.4-xmlrpc php7.4-cgi php7.4-dba php7.4-gd php7.4-intl php7.4-pgsql php7.4-sybase php7.4-xsl

Firewall

depois de instalar vamos ativar e configurar o firewall liberando o apache e o ssh

ufw enable
ufw allow 'Apache Full'
ufw allow ssh

Verifica se deu tudo certo

systemctl status apache2 #verificar o status do apache
ufw status #verificar o status do firewall
php -v #verificar o php esta funcionando
mysql -u root -p #acesse usando a senha que configurou na hora da instalação

Configurando o PHP

O PHP tem várias configurações e aqui vou apontar algumas que acho importantes. Todas as configurações do PHP estão no arquivo php.ini em /etc/php/7.4/apache2.

Vamos começar ativando ou desativando os erros do PHP, para isso mude a linha display_errors para on ou off.

#display_errors Off
display_errors On
Sempre que você mudar alguma configuração, terá que reiniciar o apache com o comando sudo /etc/init.d/apache2 restart, para as alterações surtirem efeito.

Outra configuração importante é a que permite fazer uploads com mais de 2MB, muito utilizada para fazer a importação de grandes bancos de dados pelo PhpMyadmin. Para isso mude as linhas post_max_size e upload_max_filesize para os valores desejados.

post_max_size 50M
upload_max_filesize 50M

Agora damos permissão a pasta www que e onde vamos colocar o nosso site

chown -R $USER:$USER /var/www

Alterando o dono do arquivo

chmod -R 755 /var/www

Alterando a permissão dos arquivos

Bom com isso ja e possível acessar e enviar os arquivos via FTP usando um clienten FTP

sftp://ipv4
root
senha

Configurando o Virtual Host

agora vamos configurar o dominio no Virtual Hosts basta acessar a pasta do site-available e criar o arquivo de configuração site.conf

cd /etc/apache2/sites-available/
vi site.conf

agora vamos configurar o dominio no Virtual Hosts

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName 7click.com.br
    ServerAlias www.7click.com.br
    DocumentRoot /var/www
    Options All +Indexes
    IndexIgnore *
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

agora so salvar essas configuração usando o

ESC + :wq

Comandos basícos no VI

vamos remover a configuração padrão do apache e deixar essa que acabamos de criar como padrão

a2dissite 000-default.conf
a2ensite site.conf

na seguencia um reload das config

systemctl reload apache2

Configurando a URL Amigável

Agora vamos ativar o módulo rewrite.

a2enmod rewrite

Depois precisamos criar um arquivo .htaccess no diretório do site.

vim /var/www/html/siteteste_adp/public_html/.htaccess

No arquivo cole o seguinte código:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

Por fim, vamos reiniciar o apache.

sudo /etc/init.d/apache2 restart

Configurando o SSL

Apartir desso ponto vamos configurar o SSL ou Certificado HTTPS Gratuito com Let’s Encrypt para que isso funciona corretamente o dominio ja deve esta apontando para o IP da VPS

certbot --apache

Ele vai solicitar alguma irformações

  • Seu e-mail
  • Que você aceite o termos de serviços
  • Se pode mandar e-mail marketing
  • Qual o dominio que ele vai usar pra configurar o certificado
    • Pode deixar em branco (aperta enter)
  • Ele vai pedir se le pode criar um force https

Criando um bot para renovar a cada 3 meses o certificado pois ele tem validade apenas desse prazo

verifica se ta tudo certo com o certbot

systemctl status certbot.timer

Inicia o processo de automatização do certificado

certbot renew --dry-run

Was this article helpful?

Related Articles

1 Comment

  1. kubatoto login

    Nice blog! Is your theme custom made or did you download it from
    somewhere? A theme like yours with a few simple adjustements would really make my blog
    stand out. Please let me know where you got your design. Many thanks

Leave A Comment?