Tutorial Debian 9: ISPConfig com NginX e Múltiplas Versões do PHP

Neste tutorial mostrarei como instalar o Debian 9 “Stretch” em um servidor cloud, seja ele VPS ou dedicado, seguindo o padrão aqui do site com ISPConfig e NginX. A grande novidade é que vamos configurar o painel contendo múltiplas versões do PHP, ao final teremos as versões 5.6, 7,0 e 7,1 podendo-se adicionar outras pelo método demonstrado aqui.

Além do PHP 7 ainda teremos o MariaDB como padrão (MariaDB é um fork do MySQL)  e o UFW instalado para ser usado em conjunto com o ISPConfig e o Fail2Ban, o que é um aprimoramento da configuração que usamos em nosso último tutorial de Debian 8. A versão do NginX também teve um upgrade para a 1.1x.

Com o mesmo setup que eu publico nos tutoriais (Linux Debian + ISPConfig e NginX) atendo hoje aproximadamente 1.000 sites distribuídos em mais de 130 servidores de clientes, sendo pelo menos 60% destes sites WordPress e os demais lojas virtuais Magento, Opencart, Prestashop, WooCommerce e sites PHP que usam os mais diversos frameworks como CodeIgniter e Laravel, e ainda ferramentas de Marketing como Mautic e Mailwizz. Presto consultoria e faço o gerenciamento de servidores para grandes lojas virtuais atualmente. Mas logicamente que para conseguir gerenciar tudo isso é necessário um sistema de monitoramento avançado (NOC) com firewall monitorado (SOC) e otimizações que vão muito além do escopo dos tutoriais. Para saber mais sobre os serviços do Fator Binário envie um email para [email protected] e agende uma chamada por Skype para avaliação do seu projeto (a avaliação não será cobrada).

Para o deploy do ISPConfig e as demais ferramentas será necessário contratar um servidor dedicado ou VPS. Hoje eu instalo, configuro e gerencio servidores nas maiores empresas do mercado. Atendo servidores na Amazon, OVH, Online, Contabo, Digital Ocean, Linode, Vultr, Locaweb, entre muitas outras.. e posso assegurar que tanto o painel como os apps publicados em meus tutoriais funcionam bem em qualquer uma delas.

Usarei como exemplo um servidor VPS da Digital Ocean, os meus tutoriais podem ser usados para configurar o ISPConfig em qualquer empresa que revende servidores, mas eu indico a Digital Ocean que agora tem servidores melhores pelo mesmo preço de antes, eles praticamente dobraram a CPU, RAM e disco em Janeiro de 2018.

*Havia uma indicação para uma hospedagem brasileira aqui, mas após a Digital Ocean dobrar os recursos dos servidores mantendo o mesmo preço decidi voltar a colocar o link deles nos tutoriais.

Com o Debian 9, Nginx, PHP 7 e MariaDB eu posso garantir que o seu site irá “voar” de tão rápido.

Você pode assinar a Digital Ocean pelo link abaixo que ganhará um BÔNUS de $10 dólares imediatamente após a assinatura e confirmação do método de pagamento, que pode ser Paypal ou cartão de crédito.

CONTRATE O SERVIDOR CLICANDO NESTE LINK E GANHE $10 DÓLARES

Tutorial Debian 9 Stretch x64: ISPConfig 3.x, NginX e Múltiplas versões do PHP

* O servidor recomendado para esta instalação é o de $ 5 dólares da Digital Ocean (1Gb RAM, 1 CPUs e 25Gb SSD), mas caso tenha muito tráfego no site poderá optar pelo de $15 dólares com 3 CPUs que tem muito mais estabilidade.

Deploy do sistema Linux Debian 9.x Stretch

» Choose an Image: <– Debian 9.x x64 (escolha a última versão disponível, 9.x indica que você deve instalar a última revisão de Debian 9, exemplo 9,2 ou 9.3 etc..)

» Choose a Size: <– $5/mo (mesmo que você pretenda instalar em um VPS mais robusto a Digital Ocean permite fazer um “resize” aumentando a capacidade do servidor a qualquer momento. *A Digital Ocean cobra por minuto, o valor que aparece é informativo para o mês todo)

» Choose a Datacenter Region: <– Qualquer servidor em New York, por ter a menor latência para o Brasil (NYC1 , NYC2 ou NYC3)

» Select Additional Options: <– Backups (Opcional porém recomendável. Acionando esta opção um backup automático semanal será criado de todo o seu VPS. O custo para o serviço é de 20% o valor do Droplet. Também será cobrado por hora)

» Add you SSH Keys: <– Não usaremos esta opção

» How Many Droplets: <– 1 Droplet

» Choose a Hostname: <– cp.seu_dominio.com.br (Substitua cp.seu_dominio.com.br pelo nome de um domínio válido e que exista (não precisa estar propagado ainda, mas deverá ser quando estiver em produção), e escreva um prefixo ao nome como o “cp” que utilizamos no exemplo. *A Digital Ocean finalmente nos escutou e mudou essa opção para maior clareza. Este será o seu Hostname FQDN, se quiser que os seus emails sejam entregues na caixa de entrada siga o exemplo. No meu servidor criei este nome como: debian8.fatorbinario.com (lembrando que fatorbinario.com é um domínio válido e que existe. Substitua pelo seu domínio válido aqui)

» Clique no botão Create

* Caso erre algum parâmetro e queira refazer os passos pode-se deletar o Droplet e criá-lo novamente quantas vezes forem necessárias.

Após criar o Droplet um email será enviado para você com as informações de acesso ao servidor. Será necessário e OBRIGATÓRIO a mudança da senha do superusuário root.

*Para acessar o servidor e os arquivos remotos eu indico o WinSCP com PuTTY e Notepad++ que ensino como integrar e usar neste tutorial.

• Acesse o servidor pelo endereço IP enviado ao email. Utilize uma ferramenta SSH como o PuTTY (só será possível acessar com o WinSCP via SFTP após trocar a senha do root. Mas se você seguiu o tutorial e integrou o PuTTY ao WinSCP então basta criar uma conexão e clicar ao lado do botão “Login” e escolher “Open in PuTTY”)

• O usuário para acesso será o root e a senha alterada desta maneira:

* Ao acessar o endereço IP pela primeira vez, seja via PuTTY ou WinSCP, uma mensagem de alerta será exibida solicitando a confirmação da chave de criptografia, clique em “Sim

» Password: <– Digite a senha enviada ao seu email (pode-se colar a senha no terminal SSH clicando com o botão direito do mouse e teclando ENTER)

» (current) UNIX password: <– DIGITE A MESMA SENHA ENVIADA PELO EMAIL

» Enter  new UNIX password: <– Digite uma nova senha

» Retype new UNIX password: <– Repita a nova senha

Configurações pré-instalação

Antes de começarmos a instalar o ISPConfig é necessário executar alguns comandos para preparar o sistema e evitar avisos e erros do script. Para isso acesse o console SSH com o super usuário root e siga atentamente os passos abaixo.

A Edite o arquivo /etc/apt/sources.list e certifique-se que nas linhas apontando para os repositórios exista a opção “non-free” ao final de cada uma. Salve o arquivo caso tenha modificado.

B Digite os seguintes comandos para atualizar a lista de pacotes, fazer upgrade deles para as últimas versões disponíveis e verificar a versão do Debian.

*Note que neste tutorial escreverei vários comandos separados por ponto e vírgula ou “&&”, que funcionarão da mesma maneira como se fossem digitados um de cada vez. No comando abaixo por exemplo são 4 comandos em uma única linha.

> apt-get update && apt-get -y upgrade; cat /etc/debian_version; getconf LONG_BIT

C Reconfigure o interpretador de comandos de Dash para Bash, caso contrário o script poderá falhar. Digite o comando abaixo e escolha <NO>.

> dpkg-reconfigure dash

D Instale o sincronizador de timezone e o pacote snmp-mips para evitar logs de erros desnecessários. Quando perguntado a região e o timezone selecione <America> e <Sao Paulo> ou o seu fuso horário caso seja diferente.

> apt-get -y install ntp ntpdate; dpkg-reconfigure tzdata

> apt-get -y install snmp-mibs-downloader

E É importante instalar também o Jailkit para colocar os usuários shell em chroot, executando este passo antes do script pois há um bug no instalador automático que não permite a compilação do pacote.

> apt-get -y install build-essential autoconf automake libtool flex bison debhelper binutils

> cd /tmp; apt-get install python; wget --no-check-certificate http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz; tar xvfz jailkit-2.19.tar.gz; cd jailkit-2.19; echo 5 > debian/compat && ./debian/rules binary && cd .. && dpkg -i jailkit_2.19-1_*.deb && rm -rf jailkit-2.19*; /etc/init.d/jailkit status

F Durante a instalação poderá ocorrer um erro de falta de memória se o servidor tiver somente 512mb de RAM. Para evitar isso adicione SWAP ao sistema.

#Verifique se a SWAP já não foi criada no deploy do sistema com o comando:
> free -m

#Caso a linha de SWAP estiver com todos os valores zerados adicione-a com o comando:
> fallocate -l 1G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile; free -m

#E por último adicione o mount da SWAP ao fstab:
> printf '\n/swapfile none swap sw 0 0\n' | tee -a /etc/fstab; mount -a
Instalação do ISPConfig 3

O script usado para a instalação do ISPConfig é mantido por Matteo Temporini, o mesmo do Debian Jessie. Após a instalação será necessário várias tunagens, otimizações e acertos que não estão no script mas que você poderá encontrar aqui no Fator Binário.

A Baixe e execute o script de instalação do ISPConfig 3:

> cd /tmp; wget --no-check-certificate -O installer.tgz https://github.com/servisys/ispconfig_setup/tarball/master; tar zxvf installer.tgz; cd servisys-ispconfig*

> bash install.sh

B Eu sempre configuro servidores com o NginX ao invés do Apache em meus tutoriais, responda atentamente as perguntas na tela seguindo os passos abaixo. Caso decida usar opções diferentes daquelas citadas aqui talvez o resultado esperado não seja o mesmo.

a) Is this correct? (y/n): y

b) MySQL: Please specify a root password: <digite uma senha forte para o admin do MySQL>

c) Webserver: Select webserver type: <nginx>

d) By default ISPConfig comes with php 7, do you want to install also php 5.6 version?: <yes>

e) Do you want to install HHVM?: <no>

f) You want to install phpMyAdmin during install?: <yes>

g) You want to update Antivirus Database during install?: <no>

h) Setup user quota?: <yes>

i) Would you like full unattended setup of expert mode for ISPConfig?: <standard>

j) Would you like to install Jailkit?: <yes>

k) Select your webmail client: <roundcube>

l) SSL Configuration (Não use acentuação ou caracteres especiais nas respostas):
- Country (ex. EN) : BR
- STATE (ex. Italy): SAO PAULO
- Locality (ex. Udine): SAO PAULO
- Organization (ex. Company L.t.d.): Nome_do_seu_site
- Organization Unit (ex. IT Department): TI

Aguarde...

m) Please choose the web server that should be automatically configured to run phpMyAdmin: <NAO SELECIONAR NADA> (usaremos o NginX)

n) Configure database for phpmyadmin with dbconfig-common?: <yes>

o) MySQL application password for phpmyadmin: <DEIXAR EM BRANCO> será gerada uma senha automaticamente

Aguarde o término da instalação...

C Imediatamente após instalar acesse o painel do ISPConfig e troque a senha que por padrão é “admin“. A URL para acesso é https://IP_DO_SERVIDOR:8080 e o usuário é “admin” também. ***Na última versão do script notei que foi gerado uma senha aleatória para o admin do ISPConfig, verifique na tela do instalador, logo abaixo das linhas que mostram a instalação do painel por algo assim “Admin password [5s4a0a7b]”. Esta é a senha.

Para trocar a senha acesse: “Tools” e em seguida “Password and Language“. Configure o idioma para “pt-BR“.

E ainda no painel ative o firewall em: “Sistema” / “Firewall“. Só precisa confirmar as portas padrões que estão lá. E note que nesta versão do sistema estaremos usando o UFW ao invés do IPTables somente.

Versões adicionais do PHP

Durante o script selecionamos a instalação do PHP 5.6 que foi configurado como alternativa ao 7.0 (padrão). Ambas versões foram instaladas mas queremos também a 7.1 que é a melhor e mais atual para Magento 2 e outros CMS como WordPress e Joomla, e também instalaremos os módulos adicionais que não foram configurados pelo script.

*NOTA: A última versão instalada substituirá o link de comando /usr/bin/php para ela. Então ao final deste tutorial quando for necessário usar uma versão específica use o comando dela, por exemplo: /usr/bin/php5.6. E lembre-se também de apontar o caminho da versão correta quando configurar crons (Mautic por exemplo).

A Módulos adicionais para PHP 7.0. O comando abaixo irá adicionar a maioria dos módulos requeridos por sites e lojas virtuais.

# Módulos adicionais PHP 7.0

> apt-get -y install php7.0-apc php7.0-apcu php7.0-bcmath php7.0-bz2 php7.0-dba php7.0-dom php7.0-memcache php7.0-memcached php7.0-mysqli php7.0-mysqlnd php7.0-soap

B Adicione o PHP 7.1 ao sistema e os módulos necessários.

# PHP 7.1 e módulos

> apt-get -y install php7.1 php7.1-common php7.1-cli php7.1-cgi php7.1-xsl php7.1-fpm php7.1-mysql php7.1-gd php7.1-imap php-pear php7.1-mcrypt php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-zip php7.1-mbstring php7.1-imap php7.1-mcrypt php7.1-snmp php7.1-xmlrpc php7.1-xsl

> apt-get -y install php7.1-apc php7.1-bcmath php7.1-bz2 php7.1-dba php7.1-dom php7.1-mysqli php7.1-mysqlnd php7.1-soap

C Configure todos os 3 php.ini que estão em /etc/php/VERSAO_PHP/fpm/php.ini em cada um dos diretórios de acordo com o necessário para o servidor (memória, timezone, max_execution_time, etc..), e em seguida reinicie os PHPs.

> /etc/init.d/php5.6-fpm restart; /etc/init.d/php7.0-fpm restart; /etc/init.d/php7.1-fpm restart

D Por último só precisamos adicionar as versões PHP no painel do ISPConfig para que esteja disponível quando criarmos os sites.

Acesse o painel e navegue até “Sistema” / “Versões adicionais do php“. Clique em “Adicionar nova versão do PHP” e preencha conforme abaixo. Note que adicionaremos as 3 versões.

# PHP 5.6

#Aba [Nome]
Nome do PHP: PHP-5.6

#Aba [Configuracoes FastCGI]
Caminho do binário FastCGI: /usr/bin/php-cgi5.6
Caminho do diretório do php.ini: /etc/php/5.6/cgi

#Aba [Configuracoes PHP-FPM]
Caminho do script de inicialização do PHP-FPM: /etc/init.d/php5.6-fpm
Caminho do diretório do php.ini: /etc/php/5.6/fpm
Caminho do diretório de faixas (pool) do PHP-FPM: /etc/php/5.6/fpm/pool.d

# PHP 7.0

#Aba [Nome]
Nome do PHP: PHP-7.0

#Aba [Configuracoes FastCGI]
Caminho do binário FastCGI: /usr/bin/php-cgi7.0
Caminho do diretório do php.ini: /etc/php/7.0/cgi

#Aba [Configuracoes PHP-FPM]
Caminho do script de inicialização do PHP-FPM: /etc/init.d/php7.0-fpm
Caminho do diretório do php.ini: /etc/php/7.0/fpm
Caminho do diretório de faixas (pool) do PHP-FPM: /etc/php/7.0/fpm/pool.d

# PHP 7.1

#Aba [Nome]
Nome do PHP: PHP-7.1

#Aba [Configuracoes FastCGI]
Caminho do binário FastCGI: /usr/bin/php-cgi7.1
Caminho do diretório do php.ini: /etc/php/7.1/cgi

#Aba [Configuracoes PHP-FPM]
Caminho do script de inicialização do PHP-FPM: /etc/init.d/php7.1-fpm
Caminho do diretório do php.ini: /etc/php/7.1/fpm
Caminho do diretório de faixas (pool) do PHP-FPM: /etc/php/7.1/fpm/pool.d

Após adicionar as versões elas aparecerão como opção na aba “Geral” da configuração dos sites. Sempre selecione a versão para o site lá, nunca deixe como “Default”.

Reinicie o sistema

Após finalizar a instalação é importante reiniciar o servidor. Execute o seguinte comando:

> shutdown -r now

NOTAS:

Haverá outros artigos seguidos deste orientando como tunar as configurações, que serão parecidos com os já publicados no Tutorial de Debian 8, você poderá seguir as instruções pós instalação naquelas publicações.

Fator Binário: Monitoramento 24/7 com tunagens de performance e firewall otimizado para cada tipo de projeto e servidor. Sites de notícia, lojas virtuais, instalação de ferramentas para campanha (email marketing). Servidores e sites otimizados para SEO e performance. Mensalidades acessíveis para agências de marketing e desenvolvedores. Contate-nos pelo email [email protected]

©2014-2018 Fator Binário - Todos os direitos reservados

Fazer login com suas credenciais

ou    

Esqueceu sua senha?

Create Account