Preparando meu VPS com Ubuntu 14.10 e LAMP

Introdução

Vou mostrar neste passo a passo como eu configuro meu VPS no Ubuntu 16.10 com LAMP.

Passo 1: Atualizar o servidor

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install zip unzip nmap
$ sudo timedatectl set-timezone America/New_York

Passo 2: Instalar e configurar o apache

Instalando o apache

$ sudo apt-get install apache2

Ativando a módulo rewrite do apache

$ sudo a2enmod rewrite

Com o modulo rewrite ativo, agora precisamos liberar globalmente para todos os servidores virtuais.

Abrimos o arquivo de configuração do apache para edição.

$ sudo vim /etc/apache2/apache2.conf

Com o arquivo aberto, altere a parte:

AllowOverride None
para
AllowOverride All

e Definir ServerName Global para Suprimir Avisos de Sintaxe

. . .
ServerName nome_de_domínio_do_servidor_ou_IP
. . .

<Directory /home/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Reiniciar o apache

$ sudo systemctl restart apache2

Efetuar o teste para ver se tem algum erro de sintaxe

$ sudo apache2ctl configtest

Se estiver tudo ok, a seguinte mensagem deverá aparecer.

[secondary-label Output]
Syntax OK

Precisamos alterar um 2° arquivo.

$ sudo vim /etc/apache2/sites-available/000-default.conf

Altere: DocumentRoot /var/www
Para: DocumentRoot /home/html

Reiniciar o apache

$ sudo systemctl restart apache2

Instalando o modulo “mpm-itk” para ser possivel acessar o VirtualServer com usuarios diferentes, será configurado mais a frente

$ sudo apt-get install libapache2-mpm-itk
$ sudo a2enmod mpm_itk
$ sudo systemctl restart apache2

Resolvendo o erro:
Invalid command ‘Header’, perhaps misspelled or defined by a module not included in the server configuration

$ cd /etc/apache2/mods-available
$ sudo a2enmod headers
$ sudo systemctl restart apache2

Reinicie o Apache para implementar suas alterações:

$ sudo systemctl restart apache2

Ajustar o Firewall para Permitir Tráfego Web, caso o mesmo esteja configurado.

$ sudo ufw app list
Output
Available applications:
    Apache
    Apache Full
    Apache Secure
    OpenSSH

Verifique as portas abertas para Apache Full

$ sudo ufw app info "Apache Full"

Permita o tráfego entrante para esse perfil:

$ sudo ufw allow in "Apache Full"

Agora vamos testar

Acesse: http://endereço_IP_do_seu_servidor

Vamos solicitar ao apache para ler primeiro os arquivos .php adicionando o index.php em primeiro lugar.

$ sudo vim /etc/apache2/mods-enabled/dir.conf
$ sudo systemctl restart apache2

Podemos ver o status do apache

$ sudo systemctl status apache2

Passo 2.1: Configurar o Virtual Host

Preparando o ambiente do usuario

$ useradd -d /home/$USER $USER
$ mkdir -p /home/$USER/$SITE/public_html
$ mkdir -p /home/$USER/temp
$ mkdir -p /home/$USER/log
$ chmod 755 /home/$USER
$ sudo vim /home/$USER/$SITE/public_html/index.html

Insira este código html no seu novo arquivo.

<html>
  <head>
    <title>Bem vindo ao site XXX!</title>
  </head>
  <body>
    <h1>Sucesso!  O site XXX em virtual host está funcionando!</h1>
  </body>
</html>
$ chown -R $USER:$USER /home/$USER

Preparar a ativação do site no apache

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/$SITE.conf
$ sudo vim /etc/apache2/sites-available/$SITE.conf

Edite seu arquivo para se parecer com esse

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName [server_name]
    ServerAlias www.[server_name]
    AssignUserID $USER $USER
    DocumentRoot /home/$USER/$SITE/public_html
    ErrorLog /home/$USER/log/$SITE_error.log
    CustomLog /home/$USER/log/$SITE_access.log combined
</VirtualHost>
$ sudo a2ensite $SITE.conf

Vamos desativar o host padrão *opcional

$ sudo a2dissite 000-default.conf
$ sudo chown -R $USER:$USER /home/$USER/
$ sudo systemctl restart apache2

Opcional quando estiver configurando em localhost

$ sudo vim /etc/hosts

Adicione uma linha com seu dominio e IP da maquina.

127.0.0.1   localhost
127.0.1.1   guest-desktop
111.111.111.111 $SITE

Passo 3: Instalando o MySQL

$ sudo apt-get install mysql-server
$ sudo mysql_secure_installation

Será pedido que você digite a senha que você definiu para a conta root do MySQL. Depois, será perguntado se você quer configurar o plugin VALIDATE PASSWORD PLUGIN. No meu caso é não.

Passo 4: Instalar o PHP

$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql php-curl php-gd libapache2-mod-php php-mcrypt php-xdebug php-cli php-pgsql php-imagick php-intl

echo "<?php echo phpinfo();" > /home/$USER/$SITE/public_html/info.php 
echo "<?php echo exec('id');" > /home/$USER/$SITE/public_html/test.php

Instalar o phpmyadmin: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-16-04

Instalar e configurar ssh_key: https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets

Instalar e configurar o firewall: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04

Instalar o sftp: https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-16-04

Configurar o SMTP para envio somente: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-16-04

Fonte:
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04
https://www.digitalocean.com/community/tutorials/como-instalar-a-pilha-linux-apache-mysql-php-lamp-no-ubuntu-16-04-pt

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.