Configurando LAMP em seu servidor Linux.

LAMP = Linux, Apache, MySQL e PHP.

Adquiriu aquele servidor dedicado linux, mas agora não sabe como configura-lo?

Hoje vamos mostrar algo que todos fazem, mas dessa vez da forma correta, sem 777, sem rodar o site com root e por ai vai. Já iremos deixar o servidor pronto com certificado SSL e com a possibilidade de hospedar múltiplos sites.

Todos sabemos que existe o cPanel para facilitar nossa vida, porem quando queremos um sistema enxuto  e com maior desempenho, é melhor deixar ele de lado e utilizar o sistema o mais clean possível.

Vamos iniciar.

Altere o nome da maquina

# vim /etc/hosts

127.0.0.1 localhost
127.0.0.1 meusite.com.br
IPDEDICADO webserver.meusite.com.br webserver

vim /etc/hostname
webserver

Atualize seu ambiente e reinicie.

# apt-get update && apt-get upgrade && apt-get dist-upgrade && reboot

Instale o servidor web apache.

# apt-get install apache2

Adicione um usuário que ira trabalhar com o apache e atribua a permissão.

adduser administrador

gpasswd -a administrador www-data

# gpasswd -a www-data administrador

Altere a umask do sistema.

# umask 002

Crie a pasta onde irá colocar os arquivos do site e atribua as permissões

# mkdir /var/www/meusite.com.br; cd /var/www

# chown www-data:www-data meusite.com.br

# chmod u=rwx,g=rwx,o= meusite.com.br

Permita a reescrita do apache alterando AllowOverride

# vim /etc/apache2/apache2.conf

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

Vamos configurar e ativar o site com utilizando o virtualhost

Copie o arquivo 000-default.com

$ cp -v /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/seusite.com.br.conf

Edite o arquivo igual ao exemplo abaixo.

# vim /etc/apache2/sites-available/seusite.com.br.conf

#################Inicio########################
ServerName seusite.com.br
ServerAlias www.seusite.com.br

ServerAdmin webmaster@localhost
DocumentRoot /var/www/meusite.com.br

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

#################FIM#######################

Habilite o ambiente

# a2ensite meusite.com.br.conf

Pode testar o funcionamento através do site hosts.cx

Configure a prioridade dos arquivos.

# vim /etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Recarregue o serviço.

# service apache2 graceful

Instalando MySQL

# apt-get install mysql-server mysql-client

Instalando PHP

# apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-mysql

Instalando Dependências.

# apt-get install php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-cgi php5-cli php5-common php5-curl php5-dbg php5-dev php5-gd

Criando e configurando o banco de dados.

# mysql -u root -p

CREATE USER ‘meusite_user’@’localhost’ IDENTIFIED BY ‘6wXHcZWNnw0B’;
CREATE DATABASE meusite_db; // CREATE DATABASE banco_de_dados DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON meusite_db.* TO ‘meusite_user’@’localhost’;
FLUSH PRIVILEGES;
exit

GRANT ALL ON *.* TO ‘meusite’@’%’ IDENTIFIED BY ‘6wXHcZWNnw0B’ WITH GRANT OPTION;

Senha do banco de dados pode ser gerada pelo site -> https://www.geradordesenha.com.br/

Instalando e configurando certificado Let’s Encrypt com certbots.

Adicione o repositório e instale o certbot.

# add-apt-repository ppa:certbot/certbot

# apt update

apt install python-certbot-apache

Obtendo o certificado para os domínios

# certbot –apache -d meusite.com.br -d www.meusite.com.br

Haverá uma pergunta se deseja cadastrar o e-mail, você decidirá o que deseja.

Ao final do processo, ele perguntará se desejá ou não fazer o redirecionamento.

Por favor, escolha se deseja ou não redirecionar o tráfego HTTP para HTTPS, removendo o acesso HTTP.
——————————————————————————-
1: Sem redirecionamento – Não faça mais alterações na configuração do servidor da web.
2: Redirecionar – Redirecionar todas as solicitações para o acesso HTTPS seguro. Escolha isto para
novos sites ou se tiver certeza de que seu site funciona em HTTPS. Você pode desfazer isso
mudar editando a configuração do seu servidor web.
————————————————– —————————–
Selecione o número apropriado [1-2] e depois [enter] (pressione ‘c’ para cancelar):

Obs: Para que o certificado seja validado, você precisa que as entradas de DNS existam, em resumo. O ponteiro A e WWW do site devem está configurados para servidor, caso contrario Let’s Encrypt não poderá validar.

Para verificar os certificados, execute o comando abaixo.

# certbot renew –dry-run

Ficou extenso, porem completo.

Espero que seja útil para vocês.