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 PHP7, Apache2, MariaDB, 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:
- A instalação perguntará se você quer instalar o Apache2 ou o Lighttpd, escolha o Apache2 e continue.
- A próxima pergunta será se você quer instalar a configuração padrão para o banco de dados do phpmyadmin, confirme e continue.
- 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
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
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
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