Tutorial Debian 8 x64 com ISPConfig e NginX: Instalação do Site

Neste artigo mostrarei como fazer o deploy (instalação e configuração) do website. Os exemplos serão apresentados para um site WordPress no Linux Debian 8 com painel de controle ISPConfig e servidor web NginX configurados anteriormente, mas pode-se adaptar para qualquer outra situação.

Existem muitas maneiras de se instalar ou migrar um site, mas pelas estatísticas dos leitores que me procuram aqui no Fator Binário somente algumas são as preferidas da galera. Escreverei sobre as que achei mais descomplicadas mesmo para iniciantes (se você tiver outras sugestões e caso queira compartilhar entre em contato ou escreva nos comentários).

Instalação do Site
  • Ao adicionar um espaço de site o ISPConfig por padrão criar um arquivo index.html. Antes de instalar os arquivos de um site novo ou copiá-los de outro servidor delete o arquivo /web/index.html para que o browser não o interprete como a página padrão do site.
1 Instalação de um novo site

Essa primeira opção é para quem decidir criar um espaço de site novo e iniciar um projeto, ou ainda para operadores avançados que farão a instalação/migração manualmente mas querem saber como adicionar um site ao painel somente.

Para usar o módulo de gerenciamento de sites no ISPConfig acesse: ISPConfig → Sites

1a ⇒ Adicione um novo site: Clique em “Add new website” e preencha conforme abaixo (note que a maioria dos campos não são obrigatórios, e se desejar usar o módulo Clientes sempre escolha para qual cliente o site pertence, mas isso é opcional):

[Aba Domain]

» Domínio: <– fatorbinario.com (substitua pelo seu domínio e NUNCA coloque o prefixo “www” neste campo)

» Auto SubDomínio: <– www. (pode-se ainda optar pelo catch all “*.” aqui mas na maioria dos casos isso é desnecessário. Lembre-se também de criar um registro Tipo A para o www na tabela DNS deste domínio)

» PHP: <– PHP-FPM (na nova versão do ISPConfig note que você DEVE selecionar uma opção neste campo pois ele é nulo por padrão. Caso queira poderá selecionar HHVM que usa o compilador JIT, mas faça isso por sua conta e risco)

[Aba Estatísticas]

» Tipo de Estatística Web: <– None (quando incluimos um novo espaço de site no ISPConfig automaticamente o Webalizer começa a coletar estatísticas, configure para não usar este recurso para o site)

[Aba Opções]

» NginX Directives: (em sites WordPress ou Magento é necessário adicionar diretivas personalizadas para que os permalinks (Links Permanentes com “Nome do Post”) funcionem corretamente). Desligaremos também os logs de acesso ao site pois os arquivos podem ficar muito grandes deixando-o lento:

* Observe que listei abaixo diferentes diretivas para os tipos de sites mais conhecidos, escolha somente a que representa o seu site.

#Desativando os logs para melhorar a performance
access_log off;
log_not_found off;
#Diretivas NginX para WORDPRESS
location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
} 
#Note a alteracao na diretiva location para o Magento. Se for usada a diretiva antiga uma URL aparecerá na caixa de pesquisa da loja dando a impressao de que a instalacao esta bugada.
#Para maiores informacoes veja o arquivo nginx.conf.example que esta incluido no download do proprio Magento

#Diretivas NginX para MAGENTO
location / {
    #try_files $uri $uri/ /index.php?q=$uri&$args;
    #Nas ultimas versoes do Magento esta diretiva foi alterada, use a linha abaixo
    try_files $uri $uri/ /index.php?$args;
}
location ~* \.php/ {
    rewrite ^(.*.php)/ $1 last;
}
#Diretivas NginX para JOOMLA
location / {
   try_files $uri $uri/ /index.php?$args;
}
#Diretivas NginX para OPENCART
location / {
   try_files $uri @opencart;
}
location @opencart {
   rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
location /admin {
   index index.php;
}
location /image/data {
   autoindex on;
}
#Diretivas NginX para PRESTASHOP
location / {
   try_files $uri $uri/ /index.php?q=$uri&$args;

   rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$1$2$3.jpg last;
   rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
   rewrite ^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
   rewrite ^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
   rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
   rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
   rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
   rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
   rewrite ^/c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2$3.jpg last;
   rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2.jpg last;
   rewrite ^/images_ie/?([^/]+)\.(jpe?g|png|gif)$ /js/jquery/plugins/fancybox/images/$1.$2 last;
}
#Diretivas NginX para SENDY da Amazon
#Sendy é a ferramenta de email marketing da Amazon
#As diretivas abaixo são para uma instalação em subdiretório (/sendy)
#Além destas diretivas ainda será necessário criar as tarefas no CRON para a ferramenta funcionar
location / {
   # try_files $uri $uri/ =404;
   index index.htm index.html index.php;
}

location /sendy {
   try_files $uri $uri/ $uri.php?$args;
}

location /sendy/l/ {
   rewrite ^/sendy/l/([a-zA-Z0-9/]+)$ /sendy/l.php?i=$1 last;
}

location /sendy/t/ {
   rewrite ^/sendy/t/([a-zA-Z0-9/]+)$ /sendy/t.php?i=$1 last;
}

location /sendy/w/ {
   rewrite ^/sendy/w/([a-zA-Z0-9/]+)$ /sendy/w.php?i=$1 last;
}

location /sendy/unsubscribe/ {
   rewrite ^/sendy/unsubscribe/(.*)$ /sendy/unsubscribe.php?i=$1 last;
}

location /sendy/subscribe/ {
   rewrite ^/sendy/subscribe/(.*)$ /sendy/subscribe.php?i=$1 last;
}

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
   expires max;
   add_header Pragma public;
   add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
#Diretivas NginX para LARAVEL
#As regras abaixo são para uma instalação na pasta public dentro do site
location / {
   root {DOCROOT}public;
   try_files $uri /public/$uri/ /public/index.php$is_args$args;
}

» Após tudo configurado clique em Salvar

• Para criar sites de subdomínios usa-se este mesmo formulário que deverá ser preenchido com o prefixo em Domínio (exemplo: blog.fatorbinario.com), e no campo Auto-Subdomínio escolher “Não“.

• Para sites instalados em subdiretórios (exemplo: https://fatorbinario.com/blog) deve-se proceder adicionar o domínio principal em Sites e nas diretivas NginX acrescentar as linhas abaixo:

#Diretiva para permalinks de site instalado em subdiretório (adicionar este bloco logo abaixo do principal. Exemplo para sites WordPress em subdiretórios)
location /blog/ {
   try_files $uri $uri/ /blog/index.php?q=$uri&$args;
}

• O ISPConfig criará um diretório para o site em /var/www/nome_do_site e o subdiretório onde você deverá copiar/instalar os arquivos do site é /web. As duas maneiras mais conhecidas de se instalar os arquivos é via FTP ou SSH, neste exemplo mostrarei como fazer isso usando um usuário SSH em chroot (JailKit) baixando e descompactando o WordPress diretamente do repositório brasileiro.

1b ⇒ Crie um usuário Shell específico para o site: Como eu disse acima vamos adicionar um usuário em Jail e gerenciar os arquivos do site com ele para evitar problemas com permissões (pode-se usar o root e alterar as permissões manualmente, mas veremos isso em outro exemplo abaixo).

No ISPConfig acesse: Sites → Usuários de Shell → Adicionar novo usuário de shell

» Site: <– <selecione o site> (selecione para qual site o usuário shell será criado, isso fará com que todos os arquivos manipulados por este usuário fiquem com as permissões corretas)

» Nome do Usuário: <– usrsshwp (digite um nome sugestivo para o usuário do site como neste exemplo. Note que um prefixo será adicionado ao nome de usuário (para evitar que o sistema adicione um prefixo no ISPConfig acesse: Sistema → Interface → Main Config e delete os prefixos nos 5 primeiros campos daquele formulário))

» Senha: <– sgvKG9zQMRbR (digite uma senha segura como a do exemplo e redigite-a no próximo campo)

» Shell em Chroot: <– JailKit (se você não criar usuários shell de site em Jail então melhor nem usar essa opção, tente a próxima)

» Clique em Salvar

1c ⇒ Crie um banco de dados para o site:

No ISPConfig acesse: Sites → Database Users → Add New User

» Database User: <– usrdbwp (nome do usuário para o banco de dados, substitua por um de sua preferência)

» Database Password: <– sgvKG9zQMRbR (digite uma senha segura como a do exemplo e redigite-a no próximo campo)

Acesse: Sites → Banco de Dados → Add New Database

» Site: <– <selecione o site para qual irá adicionar o banco>

» Nome do Banco de Dados: <– dbsitewp (nome do banco de dados)

» Usuário do Banco de Dados: <– <selecione o usuário do BD que criamos acima>

* Em “Read Only Database” sempre deixar em branco

» Charset do Banco de Dados: <– <selecione a codificação do Banco de Dados, a mais usada é UTF8>

» Clique em Salvar

1d ⇒ Acesse o terminal SSH com o usuário em Jail: Pode-se usar o Putty. Digite os comandos abaixo para baixar e descompactar o WordPress, note que o site deverá ser instalado no diretório /web do usuário (o caminho de sistema completo é /var/www/seu_site/web)

usuario# cd /web

usuario# rm index.html; wget --no-check-certificate http://br.wordpress.org/latest-pt_BR.tar.gz; tar xzvf latest-pt_BR.tar.gz --strip-components=1; rm latest-pt_BR.tar.gz

1e ⇒ Acesse a URL do site pelo navegador e finalize a instalação do WordPress, note que por este método o banco de dados será configurado durante a instalação sendo desnecessário editar o arquivo wp-config.php para inserir as credenciais. Após clicar em “Vamos lá” preencha todos os campos com atenção ao “Servidor do banco de dados” que deverá ser localhost (preencha com as credenciais de banco de dados criadas no passo 1c). Ao prosseguir uma nova tela aparecerá com um botão de instalar, clique e preencha com as credenciais para o usuário administrador do WordPress.

• Caso o domínio ainda não esteja propagado para o novo servidor então use o método alternativo apresentado neste link.

2 Migração de site usando plugin

Tenho aqui no site dois tutoriais ensinando como fazer backup e restaurar usando o UpdraftPlus. Este é o meu método preferido para sites de pequeno porte (até 500mb), pois facilita muito o trabalho.

2a ⇒ Crie um espaço de site e faça uma instalação nova de WordPress seguindo os passos do primeiro método acima

2b ⇒ Instale o plugin UpdraftPlus no site da hospedagem antiga. Clique em adicionar plugin no WordPress e procure por “UpdraftPlus”, o que nos interessa é o “UpdraftPlus Backup and Restoration” com mais de 600 mil downloads

Após ativar o plugin clique em “Configurações/Backups do UpdraftPlus”. Na tela da ferramenta clique em “Backup Agora” e confirme as próximas telas incluindo o banco de dados no backup

Serão gravados alguns arquivos compactados no diretório /wp-content/updraft. Copie o conjunto de backup para o seu desktop (ou se você for um operador avançado tente mover os arquivos para a raiz do site e recupere-os logado no servidor novo usando o comando wget, isso economizará tempo nas transferências)

2c ⇒ Instale o UpdraftPlus no WordPress novo, lembre-se que se o domínio não estiver propagado ainda use a dica de alterar o arquivo hosts do Windows/Mac

2d ⇒ Copie os arquivos para o diretório /wp-content/updraft do site no servidor novo. Pode-se fazer isso via upload do desktop ou usando wget como mencionei acima.

2e ⇒ Acesse o painel do UpdraftPlus e clique em “Restaurar“, ao lado do conjunto de backup que aparece clique novamente em “Restaurar“. Caso solicite outras opções ou confirmações siga o que está na tela.

* Importante: após finalizar a restauração provavelmente você terá que fazer login no WordPress novamente com as credenciais do site original. Depois de fazer login note uma mensagem do UpdraftPlus exibida no topo da página admin avisando para deletar os arquivos antigos, clique na mensagem e delete os arquivos (se não fizer isso as imagens do site não abrem corretamente)

3 Migração de site via SSH com o usuário root

Pelas minhas estatísticas este é o método mais utilizado pelos usuários experientes e curiosamente também pelos novatos. E o problema que mais acontece é com as permissões de arquivos exibindo erros diversos após a descompactação (Erro 404, 500, 503, etc)

3a ⇒ Backup: Se a hospedagem anterior estiver em um cPanel existe uma opção no painel para gerar o backup do site em arquivo compactado, se der escolha a cópia em .tar ou .gz. No painel existe também a opção de se fazer o dump do banco de dados.

• Caso tenha acesso SSH no servidor antigo pode-se fazer o backup dos arquivos com o comando (supondo que você esteja dentro do diretório do site):

root# tar czvf backupsite.tar.gz *

• E caso decida fazer o dump do banco de dados pelo phpMyAdmin faça login na ferramenta, selecione o Banco de Dados do site e clique na aba “Exportar“. Selecione exportação rápida e formato SQL. Ao clicar em Executar será solicitado o local onde salvar o dump, pode salvá-lo no seu desktop.

3b ⇒ Restauração: Crie um espaço e uma tabela para o site seguindo os passos do primeiro método acima, mas não precisa fazer download do WordPress nem instalá-lo, e também não precisa criar um usuário SSH para o site pois faremos com o root (e novamente falando, estranhamente este é o método mais usado)

• Para restaurar os arquivos faça upload no servidor novo do arquivo .tar.gz criado acima, e dentro do diretório /var/www/seu_site/web digite o comando para descompactá-lo:

root# tar xzvf backupsite.tar.gz

• Para restaurar o banco de dados, e assumindo que você já criou uma tabela nova seguindo o primeiro método, faça login no phpMyAdmin, selecione o Banco de Dados e clique em “Importar“. Siga as instruções da tela selecionando o arquivo de dump salvo anteriormente.

• E por último altere as permissões dos arquivos para que o site funcione corretamente. Mas antes verifique qual o dono e grupo dos arquivos para o site, o ISPConfig cria um dono e grupo diferentes para cada site. Liste o diretório /var/www/seu_site/web e veja qual o dono e grupo da pasta (se este é o seu primeiro site no ISPConfig deverá estar como web1:client0)

Supondo que seja web1 e client0, dentro do diretório /web digite este comando:

root# chown -R web1:client0 *

Caso tenha feito alguma coisa errada o problema mais comum apresentado, mesmo conseguindo fazer login no wp-admin, é: ao tentar deletar ou adicionar plugins o WordPress solicitar as credenciais de FTP

4 Migração de site via SSH com usuário limitado em Jail (chroot)

Este método é bem simples e pode ser usado quando você tem acesso aos dois servidores via SSH. Faremos login SSH com um usuário limitado, assim o risco de danificar o servidor é baixo.

4a ⇒ Execute os passos do primeiro método acima (1a, 1b e 1c), mas no passo 1d não há necessidade de baixar o WordPress pois iremos copiá-lo da hospedagem antiga.

4b ⇒ Lembre-se de acessar o terminal com usuário em Jail limitado. Dentro do diretório do site (em jail o diretório é /web) digite o comando rsync para copiar todos os arquivos da hospedagem antiga para o novo servidor:

> rsync -avz -e ssh usuario_hospedagem_antiga@IP_DO_SERVIDOR:/web/ .

# Substitua usuario_hospedagem_antiga pelo seu usuário SSH da hospedagem onde o site está, e troque IP_DO_SERVIDOR pelo IP da hospedagem antiga.

# No exemplo acima eu presumi que o seu site está no diretório "/web" da hospedagem antiga, troque pelo diretório correto, ou em alguns casos ele estará diretamente na raiz.

# Quando digitar o comando pela primeira vez será solicitado a adição da chave criptográfica, esponda "yes" e em seguida digite a senha para o usuário shell na hospedagem antiga.

# Note que usando o rsync com um usuário limitado próprio do site as permissões e dono/grupo dos arquivos ficam todas certas.


* Observação: Em algumas empresas de hospedagem como por exemplo a BlueHost o comando rsync talvez não seja encontrado, então use o SCP como alternativa da seguinte maneira:

> scp -r -p usuario_hospedagem_antiga@IP_DO_SERVIDOR:/home/nome_do_usuario/public_html/* .

 4c ⇒ Migrando o Banco de Dados: Execute o dump e o restore do banco de dados do site pelo phpMyAdmin.

Na hospedagem antiga selecione o banco de dados do site e clique na aba “Exportar” salvando o dump SQL no seu desktop.

No phpMyAdmin do servidor novo selecione o banco de dados criado no passo 1C e clique na aba “Importar” selecionando o dump SQL salvo no desktop.

 4d ⇒ Altere o arquivo wp-config.php do site (você copiou o arquivo com o rsync mas no servidor novo o nome do banco de dados e credenciais provavelmente são diferentes).

É só isso. Recentemente migrei o Fator Binário para o servidor Debian 8 usando este método que além de ser muito rápido é o mais seguro.

• O terceiro método com usuário root é o mais “perigoso” para novatos pois um único erro e poderá ter que refazer o servidor todo.

• Existem outros métodos alternativos como é o caso do ManageWP, ferramenta paga mas que permite migrar ou clonar sites inteiros com somente alguns cliques.

Índice do Tutorial:

Gestão em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing.
Envie um email para [email protected] e solicite uma análise gratuita!

  • Willian Junior

    Prezado Luis, desculpe incomoda-lo novamente. É possível acessar o phpMyAdmin pelo domínio direto? Qual seria o link de acesso? Obrigado.

  • O link após a instalação pelo tutorial é http://IP_DO_SERVIDOR:8081/phpmyadmin

    Mas se quiser customizar a URL para cada site siga este tutorial:
    https://fatorbinario.com/comunidade/topico/nginx-como-configurar-a-url-para-o-phpmyadmin/

  • Leo Borlot

    Luiz, resolvi desfazer e configurar tudo de novo, seguindo esta nova versão do Debian, foi tudo muito bem até que cheguei nesse ponto. Quando tento acessar com o usuário Shell, entro com o login e a senha, mas ele não me permite acessar os dados do site. Peço um cd web e nada, tento list (ls) e nada, peço cd /var/www/clients/client0/web2/web e nada. Eu sei que eu to errando na associação do usuário com o site, mas aonde é a falha?

  • O usuário shell em Jail para o site pode dar algum delay na criação. Tente desligar o Jail dele colocando como “none”.

    Quando criar um site aguarde uns minutos e em seguida crie o usuário, aguarde alguns minutos e tente o login. O problema é que se você tentar mais do que 3 vezes o Fail2Ban bloqueia o seu acesso ao servidor por 10 minutos.

  • Leo Borlot

    Funcionou deligando o Jail. Valeu.

  • Walther Alves Almeida

    Olá estou com um problema em um site que migrei. Migrei tudo normal arquivos e bando de dados o site rodou legal, mais quando vou fazer qualquer tipo de atualização do WordPress apresenta uma tela pedindo informações do servidor, ftp usuário e senha.

    Coloquei a constante FS_METHOD parou de dar o erro mais agora esta com seguinte erro:

    Não foi possível criar o diretório.

    Falha na instalação

    Poderia me ajudar como faço pra resolver essa falha??}

    Agradeço desde já!

  • O seu problema é idêntico a este aqui:
    https://fatorbinario.com/comunidade/topico/tutorial-debian-7-wheezy-com-ispconfig-3-servidor-de-emails-wordpress/page/6/#post-12202

    As permissões de arquivo do site ficaram erradas, além disso é perigoso deixar daquela forma.

  • Walther Alves Almeida

    Deu certo aqui tbem estava dando o problema no Jail ai deixei nome pq vi um comentário abaixo e deu certo. Depois me passa informações de como fazer uma doação, quando descobri o tutorial ja tinha conta na digital ocean, não deu pra usar seu código.

  • Opa Walther, doações são sempre bem vindas.
    Eu não anuncio isso no site mas quem faz doação de qualquer valor tem sempre suporte comigo.

    Você pode fazer doação pelo PagSeguro acessando este link (na lateral esquerda tem o botão de doação):
    https://fatorbinario.com/sobre/

    Um abraço.

  • Walther Alves Almeida

    Acabei de fazer lá depois da uma olhada!

  • Já vi aqui.. Muito Obrigado!

    Sempre que tiver dificuldades me procure até mesmo por email se achar necessário.

  • Walther Alves Almeida

    Gostaria de saber uma coisa, geralmente todo site WordPress tem uma página de erro 404, mais usando o servidor que criei sempre vai pra tela de erro error 404 not found do ispconfig, tem como mudar isso?

  • Tem sim Walther, uso isso aqui no Fator.

    olhe meu tutorial que mostra como fazer: https://fatorbinario.com/comunidade/topico/paginas-de-erro-configure-o-nginx-para-que-o-site-trate-as-excecoes/

    Preste atenção lá com aquele “webx” que vai na diretiva.

  • Michael William

    Luis, desde já, obrigado pelo excelente tutorial. Estou tentando rodar um site em joomla, porém quando as urls amigáveis estão habilitadas, não consigo acessar os artigos, porque da tipo página não encontrada. Você sabe alguma diretiva pro nginx que resolveria o problema, ou eu devo trocar o nginx pelo apache?

  • Nas diretivas NginX do site (aba Opções do site selecionado) adicione estas linhas. *Caso já tenha colado a diretiva location para permalinks do WordPress substitua por esta abaixo :

    location / {
    try_files $uri $uri/ /index.php?$args;
    }

    Altere, aguarde uns 3 minutos que é o tempo necessário para que o ISPConfig reinicie todas as requisições pendentes para o site, e teste. E se possível reporte aqui se solucionou.

  • Michael William

    Caramba, funcionou como uma luva. Muito obrigado.

  • Com a colaboração do leitor Dan Rezende acrescentei as diretivas para OpenCart ao tutorial.

  • André Nascimento

    Luis, boa noite tudo bem?

    Segui todo o tutorial, não estou instalando ou migrando o WordPress, tenho uma aplicação em php, seria um CMS que desenvolvemos aqui, ele ta rodando legal, porém dentro do admin deste CMs, aparece algumas mensagens de erro, ex:

    “Erro na Linha: #33 :: fopen(sitemap.txt): failed to open stream: Permission denied”

    “Erro na Linha: #34 :: fgets() expects parameter 1 to be resource, boolean given”

    É ina mensagem diz que é algo relacionado à permissão, mas lembro que você disse em algum comentário aqui no Blog, que colocar permissão 777 não é o certo, neste caso gostaria de saber o que fazer, como posso resolver esta dificuldade.

    Outro ponto é que as imagens dentro do admin do CMs também não aparecem e quando tento abrir elas através da Url absoluta da erro 503!.

    Gostaria muito de poder solucionar este que talvez tenha sido a maior dor de cabeça que estou tendo no momento!

    Muito obrigado por disponibilizar conteúdo de primeira,

    Abraços!

  • Como eu explico neste artigo o certo é criar um usuário em Jail para o site, independente de ser WordPress ou não, ae instala os arquivos com este usuário que as permissões ficam ok. Alternativamente você pode copiar os arquivos via FTP, criando o usuário FTP para o site no painel.

    E talvez o problema com as URLs seja de diretivas, note acima que para cada caso as diretivas NginX mudam, você instalou com NginX ou Apache?

  • André Nascimento

    Entendi Luis, neste caso vou criar u usuario em Jail e refazer a instalação do site. Com relação ao Server foi com NginX. Vou verificar aqui e volto a falar contigo,muito obrigado pela resposta!

  • André Nascimento

    Bom dia Luis e pessoal do Blog,

    Realmente era Permissão, criei o usuario em Jail e deu tudo certo, Muito obrigado pela ajuda! forte abraço!

  • Isso ae..

    Para você ter uma ideia de estatísticas eu respondo de 300 a 500 dúvidas por mês, e pelo menos em 50% dos casos é permissão de arquivos. Seguindo à risca o que eu publico você dificilmente terá qualquer problema.

  • André Nascimento

    Luis, olha eu aqui novamente :-p tenho uma dúvida, se eu criar um subdomínio tenho que criar outro usuário em Jail correto? Pergunto pois criei um subdominio http://teste.meusite.com.br/ e mesmo usando o usuário em jail criado anteriomente não consigo enviar arquivos usando o WinSCP ele diz que não tenho permissão.

    Neste caso o que teria que ser feito?

    Obrigado!

  • Não pode e nem deve ser capaz de enviar arquivos para outro site, esse é o princípio da Jail.

    Para criar subdomínios você deve ter notado que é no mesmo lugar onde cria domínios normais (aquele menu subdominios na lateral esquerda tem outra utilidade).

    Crie o espaço de site, neste caso com subdominio, e adicione usuário SSH/FTP e o banco de dados, como se estivesse fazendo tudo novamente como no domínio principal. O ISPConfig criará toda a estrutura tratando como um site separado com permissões somente para aquele site (subdominios desta maneira são criados como sites isolados deixando de pertencer ou herdar algo do domínio principal).

  • TonyDney

    Olá Luis, meu problema é que gostaria de instalar num mesmo servidor dois sites, (o que a principio deveria ser simples) consigo instalar normal o primeiro wordpress, porém o segundo após baixado e abrindo o navegador para dar inicio a instalação do wordpress abre a url do primeiro site, tentei no segundo instalar o maltic e da mesma forma não abre a url de configuração do maltic, mas a do primeiro site, tentando instalar em sub-domínio acontece o mesmo. Só assume o primeiro site, se for wordpress fica ele, se for instalado o maltic primeiro as outras instalações não funcionam independente das urls serem diferentes. Segui os tutoriais para Debian8 com nginx, ja te fiz esta pergunta por email e me instrui para colocar no caso de sub-domínio o nome completo ex: blog.meusite.net, mas já estava assim e também foi feito na mesma aba onde se faz o site normal, como tu ja tinha ensinado, onde esta acontecendo este erro.

  • Para cada espaço de site novo que você inclui no ISPConfig, seja domínio ou domínio, deverá sempre criar um usuário SSH ou FTP para instalar o site, alguns leitores fazem confusão achando que só devem criar um único usuário para todos os sites.

    Se não for isso o problema então envie no email os seguintes dados que vou dar uma olhada:
    – IP do servidor
    – senha do root
    – senha do ISPConfig

  • Encontrei o problema.

    Na aba “Geral” de cada site você havia preenchido com o endereço IP em 2 deles e o IPV6 em outro. NÃO digite nada ali, deixe o padrão que é asterisco em IP4 e em branco em IPV6.

    Após consertar ali os 3 sites normalizaram..
    E caso o seu browser não apresente as páginas atualizadas pressione CTRL + F5 para forçar.

  • TonyDney

    Quem sabe, sabe! obrigado pela ajuda, são erros aparentemente simples destes que nos fazem sofrer. Muito obrigado pela ajuda, espero que todo este teu esforço em ajudar tantos novatos seja muito bem recompensado, todo bom profissional merece ser bem recompensado, pena nem sempre isto acontecer. Fica bem, e tudo de bom!

    Em 11 de maio de 2016 16:47, Disqus escreveu:

  • Donizete Queiroz

    ERROR 404 – Not Found!

    The following error occurred:

    The requested URL was not found on this server.

    Please check the URL or contact the webmaster.

    Boa noite Luiz obrigado desde ja pela ajuda que esta me dando, cheguei na parte de instalação do wordpress fiz usuario no ispconfig, banco , usuario do banco, acessei via putty, baixei os arquivos na web do dominio mais vou rodar instalador do worpress da essa messagem de erro.

  • Colocou as diretivas NginX na aba Opções do site?

    E quando abre outras páginas dá o mesmo erro ou só no instalador?
    Tente acessar o endereço: https://seudominio.com.br/readme.html ou qualquer outro arquivo que não seja PHP do site.

  • Donizete Queiroz

    Bom dia 1- tava tentando como no tutoria jogando arquivos na cd /web como esta no tutorial mais ai dava erro, ai mudei, joguei os as arquivos na no dominio, descopactei ai http://www.dominio.com.br ai abriu tela pra instalar wordpress ai cosegui instalar obrigado man continuando aqui, depois passa seu email eu passar acesso pra voce da olhada ve se ta tudo ok se ja posso colocar em produção, fiz todos os passo de segurança e mais a tarde vou por mais um dominio pelo ispconfig pra ver se ta funcionando com outros dominio tambem. obrigado desde ja ja virei fa do seu site man tiro todas minhas duvidas por aqui. obrigado.

  • André Nascimento

    Luis, boa noite tudo bem?

    Que tipo de diretivas eu posso incluir dentro do ISPconfig para sites em php, pois estou com o seguinte problema, todo link que clico de algum posto ele não abre o mesmo somente a url é atualizada e o conteúdo exibido é o mesmo.

    Gostaria de saber o que poso fazer para resolver esta pequena dificuldade,

    Desde muito obrigado,

  • Acho que não entendi muito bem a pergunta Abdré.. Escreva um exemplo aqui ou envie a URL pelo meu email.

  • André Nascimento

    Luis, te enviei outro e-mail fico no aguardo de uma resposta, muito obrigado pela ajuda!

    Abraço!

  • Perae André, eu já vi lá.
    O fato é que hoje está uma loucura aqui hoje, 14 atendimentos de clientes e contando..

    Assim que der um break te chamo.

  • André Nascimento

    Opa Luis, tudo bem?

    Entendo cara, trabalho é trabalho neh, mas fique tranquilo já consegui resolver, e gostaria de aproveitar para fazer outra pergunta, eu posso migrar o conteúdo do site antigo para o novo usando o UpdraftPlus somente acessando pelo IP e depois que tudo estiver pronto eu faço os apontamentos na tabela DNS? Outra coisa uso SSL terei que refazer a configuração do SSL no novo servidor?

    Obrigado pela Ajuda!

  • Melhor maneira de migrar site, se tiver acesso SSH ou SCP é aquele no método 4 acima. Mas se quiser usar o UpdraftPlus use este truque aqui:
    https://fatorbinario.com/comunidade/topico/acessando-um-website-pelo-nginx-antes-de-direcionar-o-dominio/

    Se você comprou o certificado SSL pode usá-lo em qualquer servidor. Mas caso refira-se aquele criado na instalação um novo é criado toda vez..

  • André Nascimento

    Obrigado Luis pela dica, resolvi seguir o passo 4 que você menciou deu tudo certo com a migração porém quando tento acessar o Ip do servidor ele direciona para uma pagina do apache, estou usando um usuario em Jail e não sei o que pode ter acontecido, pode me ajudar por favor?

    Obrigado

  • Não há como digitar o IP do servidor e abrir um site. O ISPConfig permite “N” sites e contas pelo painel, como ele poderia deduzir qual deles abrir pelo IP?

    Se quiser testar o site antes de direcionar a tabela DNS então use a dica acima que falei.

  • André Nascimento

    Ok Luis, eu fiz isso também mas ele exibe a pagina do Nginx seguindo a dica mexendo no arquivo hosts dentro do meu PC, neste caso o que posso fazer?

    Mais uma vez muito obrigado!

  • André Nascimento

    Luis, fiz o apontamento do domínio na tabela dns para o novo servidor só troquei os IPs e mesmo assim digitando agora pelo domínio aparece esta página de boa vindas do Nginx, o site é modauepa.com.br.

    Preciso muito da sua ajuda

    obrigado

  • Aqui abre o site normal. Não esqueça que tem o tempo de propagação e dependendo do seu provedor de internet existe um delay bem grande até aparecer a página atualizada.

    Tente sempre com CTRL + F5 que ajuda.

  • Virtual

    Olá! Estou extremamente feliz que consegui colocar um site no ar utilizando o teu tutorial. Obrigado! Estou fazendo alguns testes para então ter segurança em colocar todos os sites que preciso.

    Acabei instalando o wordpress em um dos sites que eu não queria. Qual a forma correta de retirar ele?

  • Interessante você ter perguntado, pois isso tem uma importância bem relevante e quase ninguém se preocupa em perguntar.

    Para excluir um site pelo painel do ISPConfig siga o caminho inverso do que você fez para criá-lo:

    – Delete primeiro o banco de dados, depois o usuário do banco de dados.
    – Em seguida delete os usuários SSH/FTP daquele site
    – E por último delete o site

    Se não fizer dessa forma acaba ficando alguma configuração nos arquivos e depois é um pouco complicado para arrumar.

  • Virtual

    Luis,
    Obrigado.

    Vale ressaltar que eu quero continuar com o site, mas não com o wordpress que instalei nele. Devo seguir esses passos e depois criar tudo novamente? Achei que seria somente um comando no putty.

  • Tem o banco de dados..
    Pode continuar sim mas lembre-se de apagar os dados do BD ou deletar ele por completo e criar outro.

    E para apagar os arquivos, tenha certeza que está no diretório /web como usuário em Jail e digite:
    > rm -fr *

    Ou simplesmente mande apagar pelo explorer do WinSCP ou outra ferramenta FTP qualquer.

  • Virtual

    Show! Obrigado.

  • Virtual

    Luis,
    funcionou QUASE por completo.

    Quando cria um site no ISPConfig, automaticamente é criado um diretório var > www> nomesite.com . E então coloco o site dentro da pasta web. Tambem é criado uma pasta “/var/www/clients/client0/web2/web” que é exatamente a mesma coisa. (o web2 muda de acordo com cada site.

    Problema: Depois que deletei o site seguindo os passos e criei novamente, não consigo acessar a pasta pelo nome do site. Somente por /var/www/clients/client0/web6/web (veja que mudou o web6 que é o “novo” site criado). O erro que aparece quando vou acessar no ftp o diretorio var > www> nomesite.com é: error listing directory /var/www/clients/client0/web2 / no such file or directory. Error code 2. Error message from server: no such file

    Tem como corrigir para conseguir utilizar o diretório com o nome do site?

  • O certo é deletar naquela ordem pra não dar esse tipo de problema.
    Mas tente adicionar um novo usuário ao site, com nome diferente daqueles que tentou anteriormente.

  • CRJ

    Então instalei tudo certinho mais meu site esta dando este erro: ERROR 503 – Service Unavailable!

    The following error occurred:

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    Please contact the webmaster with any queries.

    Tentei resturar pelo banco de dados e pelo Plugin mencionado acima, deu o mesmo erro.. Já tentei resolver mais nada feito!

  • O que mais acontece é a galera errar as credenciais do banco de dados ou esquecer de adicionar SWAP ao sistema, ai o MySQL cai. Veja este tópico.

  • CRJ

    Fiz a memoria SWAP, segui o tutorial direitinho, mas continua dando o mesmo erro infelizmente. Parece que são nos sites mais pesados que tenho. E o mais importantes da minha empresa e de um cliente.. Consegui instalar outro site rodando ok, mais nesses 2 sites enfrento esse problema.

  • Isso não tem nada a ver com site pesado. Tenho clientes com servidores de $5 dólares rodando mais de 30 sites wordpress com revslider e visual composer.

    E se você instalou a última versão do Debian 8 e seguiu todo o tutorial notará que os sites nesses servidores suportam mais de 500 requisições por segundo totalizando quase 50 milhões de requisições diárias.

    Se quiser enviar no meu email a URL do site posso ajudar a ver isso, o email é [email protected]

  • corrija

    Luis, este tutorial funciona para migração de multisite em wp?
    O que muda?
    Vlw.

  • É que o Multisite tem aquelas diretivas a mais só..

    E se não me engano tem que usar wildcard (*) na tabela DNS e na config do site pelo ispconfig

  • corrija

    Mas eu teria que fazer a instalação da rede multisite no novo server antes de migrar o antigo multisite, ou após a instalçao do wordpress eu já posso usar o plugin? (seguindo o passo 1)? Por que o plugin avisa que n~é uma restauração e sim migração.
    Eu fiz aquela instalação de 1 click d digital ocean, daí n tenho acesso ao phpmyadmin.
    Por isso to tentando migar através d plugin.

  • corrija

    minha configuração está para subdiretórios ao invés de subdomínio…
    Será que precisa de widlcard tb?

  • Wildcard só usa em subdominios.

    Qual one-click-install você fez pela Digital? Normalmente aquilo é bem tosco e sem qualquer segurança, ferramenta ou qualquer noção de realidade..

  • corrija

    Eu fiz p ver como era, mas é bem tosco mesmo…
    Eu usei o “Ubuntu WordPress on 14.04”, mas na primeira semana já sofri inúmeros ataques xml-rpc…maior loucura. Mas consegui ter o site funcionando novamente após algumas configurações..
    Então optei p usar um painel de controle, no caso, to seguindo esse seu tutorial do ispconfig em outro servidor. Daí quero migrar o multisite p n ter que refazer…

    Estou tentando usar o plugin duplicator e dá essa msg:

    Open Base Dir:
    ‘/var/www/clients/client0/web2/web:/var/www/clients/client0/web2/private:/var/www/clients/client0/web2/tmp:/var/www/ericloyal.com.br/web:/srv/www/ericloyal.com.br/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin’
    Issues might occur when [open_basedir] is enabled. Work with your server admin to disable this value in the php.ini file if you’re having issues building a package. [details]

    ONDE DESABILITO ESSE base_opendir?

    Vlw.

  • corrija

    Resolvido Luis.
    Segue a resolução p quem tiver esse problema.
    Eu encontrei essa opção em no ispconfig em : SITE – ABA OPÇÕES – open_basedir do PHP – apaguei tudo e COLOQUEI “none”.

    Vou seguir tentando migrar o multisite aqui…
    Vlw.

  • Eu estava escrevendo pra você isso quando você mesmo respondeu..

    Quanto aos ataques de GET RPC, recentemente fiz o bloqueio de ataques XML-RPC em um site de um jornal. Tem como bloquear com as configurações dos meus servidores mas o firewall para aquilo não está nos tutoriais, eu oferto um curso que ensino sobre como acertar o firewall e barrar os ataques.

  • corrija

    Na configuração multisite wp(do zero, sem migração), depois que criamos um novo site, não conseguimos acessar o painel do segundo site.
    Dá o seguinte erro:

    “Redirecionamento em excesso por “meudominio.com.br”
    Tente:
    Atualizar a página
    Limpar os cookies”
    ERR_TOO_MANY_REDIRECTS ”

    SERIA ALGUMA CONFIGURAÇÃO QUE ESTÁ FALTANDO NO ISPCONFIG?

    obs: multisite com subdiretórios.

  • corrija

    E esse curso custará quanto?

  • Tenho vários leitores que já compraram, o curso é individual. Cada aluno que adquire, além do curso, fica nos meus contatos de Skype para consultoria e assistência. Cada aula é definida pelo aluno que customiza os horários e eu adapto o conteúdo baseado no projeto dele, além de que passo muito conteúdo extra como por exemplo o SSL da LetsEncrypt e rotinas de monitoramento e segurança. O valor é de R$ 550,00 pelo PagSeguro podendo ser pago em 3X sem juros ou em até 18X pelo sistema deles.

  • Veja se não é porque você está configurando o www para redirecionar para o domínio principal, dê uma olhada neste link:
    http://www.wpbeginner.com/wp-tutorials/how-to-fix-error-too-many-redirects-issue-in-wordpress/

  • corrija

    Quanto ao artigo, estava tudo certo. Resolvi desinstalar e refazer o multisite, aí me encontrei com esse artigo:
    https://codex.wordpress.org/Nginx
    Estou lendo pra ver, mas parece que o nginx precisa de outras configurações pra funcionar com multisite.

    Vlw Luis.

  • corrija

    Grande Luis,
    Como acessar o debian via root novamente?
    Parece q depois que criamos usuário no shell, ele n~aceita mais a senha root. E pra fazer algumas mudanças to precisando fazer com super user…

  • Veja o passo 2 deste link: https://fatorbinario.com/tutorial-debian-8-x64-com-ispconfig-e-nginx-deploy-do-linux/

    Após criar o servidor ou pedir para mudar a senha pelo painel da Digital a senha reseta e tem que trocar ela obrigatoriamente pelo console SSH, o explorer do WinSCP não dá certo nesses casos..

  • corrija

    Grande Luis, na verdade eu já fiz essa parte e troquei a senha pelo console lá no começo, então segui o tutorial e instalei o ispconfig.
    No ispconfig configuramos um usuário em jail, até aqui tudo certo.
    So´que quando fui acessar o usuário em root pelo console ssh, ele não aceita mais a senha, entende? E eu n~sei como alterar essa senha do root, ou tornar o usuário em jail um super user.
    OBS: Preciso fazer alterações o nginx p instalar o multisite, mas p isso preciso logar como root.

    Obrigado pela ajuda. 😉

  • corrija

    Luis, consegui fazer num teste muito louco aqui…rsrs
    Num arquivo chamado shadow…
    Obrigado.

  • corrija

    resolvido. N~consegui trocara senha mas consegui logar como root.

  • Não mexa no shadow, para criar usuários com poder de SUDO veja o passo 1 deste link:
    https://fatorbinario.com/linux-acessando-a-interface-grafica-do-vps-via-vnc/

  • corrija

    Fiz conforme você mostrou nesse link e criei um super user com sudo. Mas só deu pra criar usando o root, ou seja, com o “usuário em jail” n~deu pra aplicar aqueles comandos nem p criar usuario e nem pra dar privilégios SUDO..
    OBs: Não vou mais alterar o shadow*

    Obrigaodo pelo conteúdo Luís. Fera!

  • corrija

    Luis, poderia criar um post com instalação de multisite wordpress no nginx + ispconfig, hein!
    Fica a sugestão.
    Obrigado pelo conteúdo man. o site é 10! 😉

  • corrija

    Fiz algumas modificações no arquivo do site na pasta nginx/site-avaliable e consegui instalar meu multisite no nginx com sua configuração…
    Pesquisei p cacete p achar uma configuração que funcionasse…
    ta tudo ok!
    Vlw man!
    sigo acompanhando seu trabalho por aqui…

  • Lucas Lennon

    Olá, uma dúvida que tenho por exemplo: Caso eu queira migrar um site e ver como esta ficando sem apontar os DNS, ou seja deixar tudo pronto antes. Tem algum URL que eu possa acessar para ver como esta ficando a migração e se tudo esta configurado correto?

  • Lucas Lennon

    Migrei um site hoje, e infelizmente só aparece isto: “500 Internal Server Error nginx/1.6.2” o que preciso fazer? Já tentei rever tudo e não consegui resolver.

    Agradeço desde já por sua atenção!

  • O que mais acontece com migrações é erro de permissão de arquivo ou credenciais erradas no wp-config.

    Como foi que você migrou o seu site? Vou chutar que você acessou lá como root e descompactou os arquivos..

  • Lucas Lennon

    Eu baixei todos arquivos do antigo host via FTP e depois baixei o banco para importar, subi os arquivos e importei o banco e logo após alterei os valores do banco no config.

  • Achei que havia algum erro no arquivo mesmo.. para você ter uma ideia, aproximadamente 90% dos problemas com migrações resume-se a estes dois casos somente.

  • TonyDney

    Boa noite Luis, estou a receber uma mensagem de erro 500 do nginx/ 1.6.2 quando dentro da administração do wordpress, em links permanentes mudo a opção de padrão para personalizado ( nome do post ), apenas a página home permanece as outras páginas do menu e os posts nenhum redireciona como deveria, Retornando ao padrão tudo volta ao normal. Saberia me ensinar como resolver para que o nome do post apareça. Meu site foi realizado todo com Live Composer. Obrigado!

  • A diretiva NginX para permalinks é esta:

    #Sites em WORDPRESS
    location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    Mas se o site estiver em subdiretório ela é um pouco diferente.. O seu site está em subdiretório ou está com plugin de cache??

  • TonyDney

    Ola Luis muito obrigado, funcionou corretamente a diretiva que ensinaste, vou postar a resposta lá na página também. Valeu mesmo.

    Em 11 de agosto de 2016 21:41, Disqus escreveu:

  • Ricardo

    Olá Luis FatorBinario, primeiramente queria te parabenizar pelo site, é o melhor site que já vi se tratando desse nicho espero que continue trabalhando nele.

    Queria te pedir uma ajuda. Segui todos os tutoriais, o NGINX e ISPCONFIG são novos para mim por isso prestei bastante atenção, deu tudo certo (menos a parte do E-mail, mas vou falar disso em outro comentário) até chegar na parte da instalação do WordPress. Criei o BD fiz a instalação dos ficheiros do cms por linhas de comando, até ai tudo certo, foi rápido e prático, quando fui instalar o wordpress via navegador, apresentava erro 500, configurei o bd direto no wp.config, o erro permaneceu, então tentei abrir o phpmyadmin através do ISPCONFIG que me direcionou para https://149.xx.xx.xxx:8080/phpmyadmin esse link, meu ip seguido da porta e o diretório, não abriu deu esse erro 404 Not Found, e sim tava errado, então acessei o phpmyadmin através de http://149.xx.xx.xx:8081/phpmyadmin/ e me assustei quando vi que o ISPCONFIG não tinha gravado a tabela que eu criei, ai tive que criar um novo bd e user direto no phpmyadmin.

    O que eu queria saber é o que eu fiz de errado pra ter acontecido isso e como posso resolver esse problema, criar BD através do ISPCONFIG é importante pra mim, como devo proceder ? OBS: Também não consegui usar o ZonaDNS do ISPCONFIG.

  • Editar a zona DNS diretamente no próprio servidor é uma prática ruim que leva a várias dores de cabeça, evite isso, escreva a tabela DNS na CloudFlare.

    O link para o phpMyAdmin dentro do painel fica estranho com NginX, sempre acesse com link próprio.

    Não gravar a tabela nunca vi acontecer, provavelmente você pode ter esquecido de selecionar o site que a tabela pertencia. Você ainda deve ter o BD adicionado configurado no painel, envie um print screen para eu dar uma olhada, migro dezenas de sites por mês e posso lhe garantir que isso funciona bem.

  • Ricardo

    Bom saber, valeu pela dica, a melhor forma que eu encontrei foi no Cloudflare mesmo.

    Enviei o printscreen por email, mas ta tudo configurado como no tutorial.

  • O print está ok mas lembrei de uma coisa que você pode verificar, veja se a SWAP foi adicionada ao sistema, vi lá que você usa OVH e não lembro se eles já colocam SWAP no deploy do sistema (a maioria das empresas de hosting adicionam automaticamente uma SWAP baixa para venderem upgrade mais facilmente, o truque é uma SWAP com pelo menos o dobro da RAM).

    Outro problema que pode estar ocorrendo é a versão do sistema e os módulos compilados com o kernel, a Digital Ocean otimiza o kernel para performance e eu adapto os tutoriais ao kernel deles.

    Faça o seguinte, verifique se tem SWAP e o tamanho dela. Crie um subdominio do seu site no painel (no mesmo lugar que você cria dominios, aquela função “subdominios” no menu do ISPConfig tem outra finalidade). Adicione o banco de dados e verifique no phpMyAdmin se está lá, mas aguarde uns 2 minutos antes e faça logout/login no phpMyAdmin para checar isso.

    Caso não consiga me avise. E responda aqui com o resultado destes 2 comandos:
    > lsb_release -da
    > getconf LONG_BIT

  • Ricardo

    Adicionei 4GB de memória SWAP, só que com um método um pouco diferente do ensinado no tutorial 4 pois aquele não funcionou.

    Fiz o que você disse criei o subdomínio na mesma página do panel que se cria os domínios, criei um novo usuário e uma nova base de dados, loguei e desloguei do phpmyadmin depois loguei novamente e nada.

    Enviei o printscreen dos comandos por email.

  • Se você instalou a versão Stable do ISPConfig e todo o resto está funcionando só resta mais uma situação provável. Você alterou a senha do phpMyAdmin, tipo após a instalação?

    Existe um arquivo de sistema onde o ISPConfig guarda a senha root do MySQL para que ele mesmo possa gerenciar os DB. O arquivo é o: /usr/local/ispconfig/server/lib/mysql_clientdb.conf

  • Ricardo

    Cara, incrível, parece até que você adivinhou rsrs, eu fiz a senha errada para o servidor mysql e depois alterei para ficar igual a do phpmyadmin, foi esse o meu erro, obrigado pela paciência e pelo excelente suporte prestado aqui.

  • Felipe

    Terminei de ver as configurações do debian 7, instalei o wordpress na pasta web certinho, quando abro a página diz “ERROR 403 – Forbidden!”

  • Felipe

    outra coisa, coloquei o codigo do open files limit, mas continua 1024…

  • Está misturando os tutoriais do Debian 8 e Debian 7 ?
    Se sim isso não deve dar muito certo.

    Como você instalou o WordPress lá?

  • Felipe

    eita, troquei mesmo…instalei sim, só que aparece o erro 403

  • Felipe

    Consegui instalar tudo, até agora nenhum bug, pois tudo do conteúdo eu usei, bom, só quero mesmo agradecer pelo ótimo site, o servidor fica TOP rápido até o talo, misericórdia, nenhuma hospedagem poderia ser melhor do que isso, bom agora só queria saber como adicionar mais sites ao mesmo ispconfig, se tiver algum tutorial, seria perfeito pra mim, extremamente grato!!

    obrigado!!

  • Neste mesmo artigo que você postou. Adicione mais sites da mesma maneira que fez o primeiro no Passo 1.

  • Felipe

    ok vou tentar…obrigado!!

  • Felipe

    Boa noite, algumas perguntas.
    Como eu crio um DNS personalizado para meu site,seria no ispconfig ?
    Como eu crio um cliente no ispconfig para que outra pessoa tenha acesso ao ispconfig dela ?
    pois meu irmão gostaria de compartilhar o mesmo comigo
    Grato

  • A CloudFlare não permite NameServers customizados mas você pode fazer usando a tabela na DigitalOcean, veja: https://fatorbinario.com/comunidade/topico/nameservers-customizados-o-que-sao-e-como-fazer-para-configura-los/

    Para criar acessos de clientes siga este tutorial:
    https://fatorbinario.com/comunidade/topico/como-criar-um-usuario-cliente-no-ispconfig-limitado-ao-modulo-de-emails-somente/

  • Dereck Andrews

    Fábio, segui o tutorial e consegui instalar um site na Digital Ocean. Mesmo sem conteúdo e com um tema qualquer do wp, ele está muito rápido. To acostumado a criar vários sites em wordpress e nunca senti essa diferença!

    Mas encontrei um erro: ao tentar instalar qualquer plugin,um popup se abre com a mensagem:
    “Informação de conexão:
    Para executar a ação solicitada, o WordPress precisa acessar seu servidor web. Digite suas credenciais FTP para continuar. Se você não lembrar suas credenciais, contate seu servidor de hospedagem.”

    Deveria aparecer isso? Como posso resolver?

    E outra dúvida: não estou recebendo notificações do wordpress no meu e-mail. Quando o site é criado, um e-mail normalmente é enviado para o que foi informado no momento da instalação… mas não recebi.
    Fiz um teste também, escrevendo um comentário e não recebi a notificação por e-mail de que há um novo comentário no site aguardando aprovação.

    Poderia me orientar? Obrigado!

  • O problema de conexão com FTP é porque você copiou os arquivos do site com outro usuário diferente do usuário SSH em Jail que ensino no tutorial. Você provavelmente acessou lá com o root, o que além de errado é extremamente perigoso para a segurança do site.

    Para enviar emails do seu Droplet você precisa liberar o envio com a DigitalOcean, eu explico isso na parte do tutorial onde trata do servidor de email. Porém melhor mesmo é instalar um plugin de envio por SMTP Relay, criar uma conta na SparkPost e enviar por relay os emails, isso vai te livrar de muitos problemas com a Digital.

  • Dereck Andrews

    Entendi. Vou refazer esse passo e recriar o site.
    Aproveitando: no tutorial você mostra como desativar o Clamav, para ter ganho em performance. Mas não é arriscado excluir o anti-vírus?

  • O Clamav + Amavis usam mais de 512Mb de RAM pra funcionar.. E eles são instalados por causa do servidor de emails mas navegando pelo Fator você notará que a melhor coisa a se fazer é usar um email externo como o Zoho ou fazer como eu faço, configurando as caixas de email no servidor mas baixando tudo que chega para um cliente externo como o Gmail.

  • Dereck Andrews

    Ok. Vou seguir sua dica com o SparkPost, ou mesmo com o Zoho.
    Refiz os passos aqui e agora deu tudo certo. Rapaz, isso é complicado demais, rs!
    Ainda bem que existem pessoas como você, que é um mestre nessa doidera toda e ainda está disposto a nos ajudar com esses tutoriais perfeitos. Sem dúvidas, o melhor site do gênero é esse!
    Parabéns pelo site e pelo seu conteúdo incrível!
    E obrigado por compartilhar esse conhecimento tão valioso!

  • Dereck Andrews

    Luís, será que já viu esse problema?
    Estou preparando o site no novo servidor que configurei na DO.
    Está indo tudo bem, exceto pelo plugin Yoast SEO.
    Consigo instalar ele sem problemas, porém na hora de configurá-lo, ele só mostra o seu painel inicial. Mais nenhuma das opções que ele tem pra editar arquivos, sitemaps, configurações, etc… não mostra nada.

    Já exclui todos os plugins para instalar só ele, já subi os arquivos dele na pasta plugins… e deu no mesmo.

    Será algum problema com permissões? Já viu algum problema parecido?
    Muito obrigado!

  • Eu nem uso o Yoast mas presto consultoria e assistência para várias empresas de marketing. O Yoast tem um novo botão de configuração no painel que você habilita o modo avançado e aparece todas aquelas telas antigas.

    Seguindo os meus tutoriais NUNCA altere permissões de arquivos, fazendo isso você pode se meter em muitas enrascadas.

  • Dereck Andrews

    Poxa, tinha mesmo e eu nem notei. Fiquei tão preocupado em ser um possível erro, que nem pensei em ler as opções.
    Mais uma vez, obrigado! Você é nota 10! Sabe tudo!

    Aproveitando o contato aqui, gostaria de tirar mais uma dúvida:
    Quando eu hospedava com a hostgator, eu precisava definir qual seria o domínio principal, e os arquivos desse site ficariam na raiz da pasta public_html deles. Os arquivos de cada novo site, deveriam ficar em uma pasta separada, mas dentro de public_html (junto com os arquivos do domínio principal). Um pouco bagunçado, mas era assim…

    Seguindo seu tutorial do Debian 8 com IPSConfig, a estrutura acaba sendo outra, certo? Cada usuário shell acessa a respectiva estrutura de pastas do site que definimos acesso a ele. Com ele, acessamos e subimos os arquivos do site no local exato. Assim fica ótimo!

    Mas dessa forma, o que define quem é o domínio principal é o nome que colocamos no droplet, como subdomínio?
    Eu já subi dois sites, e estou assumindo que o primeiro que subi (e que nomeei no droplet como nome.dominio.com.br) é o principal. É isso mesmo?

    Obrigado!

  • Com o ISPConfig não tem essa bagunça que o cPanel cria. Cada site tem seu espaço reservado, e siga meu tutorial de adicionar site criando um usuário SSH em Jail para cada um. Isso serve também para subdominios, é só adicionar como se fosse um site comum mas coloca o dominio com o sub junto naquele campo.

    O subdominio do servidor que deve ser FQDN é usado para várias tarefas importantes. Uma delas é acessar o painel do ISPConfig. Não precisa adicionar ele novamente no painel, é só criar a entrada DNS mesmo.

  • Joao Francisco Melo

    Boa noite Luis!
    Estou com um dúvida aqui, acabei de criar um site pelo painel, adicionei um usuário ftp pra ele e copiei os arquivos de um site estático para o servidor, porém gostaria de testar como o site está antes de mudar o DNS, tem algum ip que eu consiga acessar o site ? tipo 192.241.156.212/novo_site ? valeu!

  • Estes servidores com NginX e ISPConfig não têm essa funcionalidade.

    Mas ao invés disso faça o que 99% dos desenvolvedores de sites fazem, use este método aqui:
    https://fatorbinario.com/comunidade/topico/acessando-um-website-pelo-nginx-antes-de-direcionar-o-dominio/

    Desta maneira você irá “enganar” o seu PC e ele irá acessar o site no IP novo. Mas não esqueça de desfazer as alterações depois.

  • Joao Francisco Melo

    Luis, mais uma dúvida!! hehehe
    migrei com sucesso um site em wp seguindo tuas dicas e consegui criar e-mail com esse novo domínio,os formulários de contato do site estão enviando normalmente o form para o e-mail novo, contudo como faço para conseguir acessar o webmail pelo meu novo domínio ? pois eu criei um domínio apenas para o droplet e configurei todo o servidor nele, só que agora que inclui um site novo domínio lá eu não entendi muito bem o que devo fazer! obrigado!

  • Tem que acessar o Roundcube e o login é o novo email.

  • Joao Francisco Melo

    isso, e pra acessar o roundcube pelo novo dominio como faço ? pq pra passar pro pessoal fica ruim mandar o dominio que eu instalei o isp, entende? valeu!

  • Note que um nome de endereço nada mais é que um aliás para um número IP.

    Talvez o que você queira é acessar o Roundcube por um endereço parecido com este:
    MEUDOMINIO.COM/webmail

    Se for isso então acesse este tutorial (passo 3) e adicione as diretivas para o Roundcube ao site no ISPConfig:
    https://fatorbinario.com/configurando-o-roundcube-como-webmail-no-vps/

  • JMiranda

    Olá Luis, tenho acompanhado seu trabalho e gosto muito de seu modo de explicar e ensinar, parabéns!
    Estou tentando trabalhar com a VPS da Digital Ocean e usei seu script acima. Como sou muito leigo no assunto estou apanhando demais, rsrsrs.
    Ao tentar colocar midias dentro do site eu recebo esta mensagem:
    Falha ao enviar “LogoMaisCompra.png”.
    Não foi possível criar o diretório wp-content/uploads/2017/03. O diretório pai possui permissão de escrita?
    Já tentei criar na unha o Diretório e o arquivo mas não consegui fazer o upload do mesmo.

    Me chamo JMiranda meu contato é: [email protected]

    Desde já agradeço demais sua ajuda.

  • Boa tarde JMiranda,
    sabe que eu tenho um sistema de consultoria com recorrência mensal que cobre instalações, configurações, análise e consultoria de infraestrutura, servidores de email, qualquer CMS ou loja virtual, SEO, sistemas de backup, seguranaça anti hacker e anti DDoS, etc… Trabalho também com parcerias para agências e desenvolvedores onde você mantém o cliente, ensino a operar todo o sistema, migrar sites, otimizar sites, etc.. tudo na mesma taxa de consultoria.

    Mas o seu problema neste caso é o seguinte. Você deve ter seguido o tutorial mas na hora de subir o site fez com o usuário root. Tem que criar um usuário SSH em jail no ISPConfig que as permissões ficam todas certas.

    Se tiver interesse em consultoria ou para uma avaliação e análise de projeto me contacte por Skype, o nickname é: fatorbinario

  • JMiranda

    Bom dia Luis,

    Muito obrigado pela sua pronta resposta, não recebemos este apoio das empresas de Hospedagem e nem dos Gurus que existem no meio digital, você é diferenciado!
    Você tem uma forma já pronta onde posso ler e acompanhar sobre como fazer dentro do ISPConfig, pois realmente não sei como fazer!
    Se der para você me ajudar eu de antemão agradeço muito!

    JMiranda

    Em 9 de março de 2017 17:50, Disqus escreveu:

  • JMiranda

    Uma outra pergunta Luis: posso apagar o site criado através do ISPConfig, apagando o Banco de Dados ou tenho que fazê-lo através de SSH usando o root? Se for por SSH quais diretórios eu apago?

    Grato.

    Em 10 de março de 2017 10:03, J Miranda escreveu:

  • Para deletar um site no ISPConfig você deve seguir o caminho contrário de quando criou ele.
    – Apaga primeiro o Banco de Dados
    – O usuário do Banco de Dados
    – Os usuários SSH e FTP do site
    – E somente por último apaga o site

    Tem tudo dentro do painel.

  • Há muita informação aqui no site, não tenho um sistema centralizado, até mesmo porque cada caso pode ser diferente. Por isso tenho o sistema de consultoria e assistência.

    Para criar o site, usuários, contas de email e banco de dados veja o Tutorial de Debian 8 na parte de Configuração dos Sites.

  • JMiranda

    Luis muito obrigado!
    Vou fazer desta forma e vou falar com você no Skype sobre a consultoria.
    Mais uma vez obrigado.

    JMiranda

    Em 10 de março de 2017 11:16, Disqus escreveu:

  • Samuel Batista

    se eu migrar um site WordPress cujo a versão PHP no servidor antigo é o 7.x para o servidor cujo a versão do PHP é o 5.x ele vai rodar ?
    estou perguntado isso pq ja tentei migrar meu site com todas as formas acima mais nao consegui então estou a procura da solução ou pelos menos entender o pq de dar erro 500

  • Não vejo motivo de não funcionar.

    Erro 500 é quase sempre PHP Fatal. Ou seja, há algum plugin ou código no seu site que está bugado. Acesse o diretório /log/error.log na raiz do seu usuário do site e veja lá nas linhas com PHP Fatal, normalmente mostra a linha e o arquivo com erro.

  • Luis, boa tarde,

    segui todo o tutorial, migrando do meu host compartilhado para meu droplet na DO. Contudo, depois de toda a importação do banco de dados no phpMyAdmin, transferência dos arquivos para o droplet e, por fim, instalação do WordPress, a minha página inicial carrega como no servidor antigo (apesar das imagens estarem corrompidas porque ainda não subi a pasta de uploads do WP), porém, ao clicar em qualquer link da página, seja para ir pra algum post ou quaisquer páginas, o URL carrega conforme deveria, porém a página não, mostrando apenas o plano de fundo do template e, na aba do navegador, o título da página index.php de manutenção que eu coloquei no diretório raiz do site (o WordPress eu instalei temporariamente em um diretório dentro do site).

    Será que fiz alguma coisa errada na migração? A única coisa diferente que eu fiz no tutorial, nessa parte, foi a importação do banco de dados via SSH e a instalação do WP manualmente (sem o comando) em um diretório dentro do site, como já mencionei.

    Aguardo sua ajuda, se possível. Estou há dias sozinho nesse projeto sem ter o mínimo de conhecimento em VPS, Linux etc. Estou me aventurando e com muita vontade de aprender mais.

    Parabéns pelo trabalho mas uma vez!

    Abraço!

  • Não há como instalar o WordPress em subdiretório sem alterar todas URLs no banco de dados pois o WordPress grava cada post e imagem com a URL completa. Para isso teria que usar uma ferramenta de migração. Se é que entendi direito sua dúvida.

  • Era isso mesmo, Luis! Quando coloquei o WP na raiz do site, funcionou. Só tinha achado estranho porque em vez de dar 404, caia na página de manutenção, que era temporariamente a index.php da raiz. Noobada. HAHAHAAH.

    Valeu pelo toque!

  • Feliciano sampaio

    Ola boa tarde Luis primeiramente parabéns pelo site e todo conteúdo muito bem detalhado e ótima qualidade, estou com um problema no WordPress. Quase tudo esta funcionando normal os post já publicado funciona normal, só o problema esta na visualização do post antes de publica hora da Erro 404 e hora da Erro 500, toda vez que vou Visualizar Alterações vem pagina do ERRO!

  • Para o www funcionar só há 3 lugares a configurar:
    – Tabela DNS: é necessário ter as 2 entradas lá, com e sem www
    – ISPConfig: na aba Geral do site tem lá a opção Auto Subdominio, configure para www
    – No seu site, se for WordPress: Em Configurações/Geral tem lá as URLS para o site. Se quer que sejam www tem que mudar lá também.

  • Rodrigo Carvalho

    Então, eu tenho as duas entradas A: www e meudominio.com apontadas para IP VPS. E no ISPConfig esta configurado Auto Subdominio para WWW . O site acessa com WWW e sem WWW . O problema que quando eu acesso com WWW ele carrega apenas os textos e o php. Mas ele nao encontra arquivos de css, js, images. Mas se eu acesso sem WWW ele carrega tudo normalmente.

  • Esse esquema de conseguir acessar com e sem www tá errado. Vai dar conteúdo duplicado no Google. Tem que forçar para somente com ou sem, tipo abrir sempre do mesmo jeito redirecionando sozinho, como os WordPress fazem. E os CSS não carregam porque em algum lugar no HEADER do seu PHP vocês fizeram um harlink para sem www, tem que acertar aquilo para link relativo.

  • Rodrigo Carvalho

    Oi, Luis já resolvi a questão do CSS. Eu recebo a seguinte mensagem do google:

    Evitar redirecionamentos da página de destino:

    http://meudominio.com/
    http://www.meudominio.com/
    https://www.meudominio.com/

    Eu devo criar alguma regra de HTTPS no Cloudflare? Ou Apenas um redirect no ISPConfig www / no-www force ssl?

  • Isso pode ser resolvido tudo na CloudFlare.. dá uma lida na opção “Page Rules”, pode-se criar Forwards lá.

  • Edson Correa

    Ei Luis, tudo bem?
    No droplet que fiz usando seu tutorial, instalei tudo tranquilo e tem rodado muito bem. Porém, começaram a ocorrer alguns erros de Kernel pelo Logwatch. O que recomendaria fazer? Talvez alguma manutenção periódica ou update do kernel do linux?

  • Quais erros aparecem?

  • Edson Correa

    Vou colá-los aqui:

    WARNING: Kernel Errors Present
    INFO: task jbd2/vda1-8:98 blocked for more th …: 1 Time(s)
    INFO: task sshd:7575 blocked for more than 12 …: 1 Time(s)
    INFO: task sshd:7577 blocked for more than 12 …: 1 Time(s)
    INFO: task sshd:7602 blocked for more than 12 …: 1 Time(s)
    INFO: task sshd:7604 blocked for more than 12 …: 1 Time(s)
    INFO: task sshd:7606 blocked for more than 12 …: 1 Time(s)
    6 Time(s): Not tainted 3.16.0-4-amd64 #1
    1 Time(s): 0000000000000002 ffffffff811d9a00 ffff88001f1a7c80 ffff88000d572960
    1 Time(s): 0000000000000002 ffffffffa01476c0 ffff8800169dfb30 ffff88000fa64a50
    1 Time(s): 0000000000012f40 ffff880003dde210 ffff880013812d28 ffff8800169f3da0
    1 Time(s): 0000000000012f40 ffff88000aa5cca0 ffff880013812d28 ffff88000f29fda0
    1 Time(s): 0000000000012f40 ffff88001688b530 ffff880013812d28 ffff8800030ebda0
    1 Time(s): 0000000000012f40 ffff88001a6a7570 ffff880013812d28 ffff880000203da0
    1 Time(s): 0000000000012f40 ffff88001d195430 ffff88001fc137f0 ffff88001ffc6930
    1 Time(s): 0000000000012f40 ffff88001f149330 ffff88001fc137f0 ffff88001ffc01c8
    1 Time(s): [] ? current_fs_time+0x12/0x60
    2 Time(s): [] ? kthread_create_on_node+0x180/0x180
    1 Time(s): [] ? kthread+0xbd/0xe0
    1 Time(s): [] ? pick_next_task_fair+0x3e3/0x820
    1 Time(s): [] ? prepare_to_wait_event+0xf0/0xf0
    2 Time(s): [] ? autoremove_wake_function+0x30/0x30
    1 Time(s): [] ? __generic_file_write_iter+0x132/0x340
    5 Time(s): [] ? new_sync_write+0x74/0xa0
    5 Time(s): [] ? vfs_write+0xb2/0x1f0
    5 Time(s): [] ? SyS_write+0x42/0xa0
    1 Time(s): [] ? update_time+0x81/0xc0
    1 Time(s): [] ? file_update_time+0x80/0xd0
    5 Time(s): [] ? __inode_wait_for_writeback+0x72/0xc0
    1 Time(s): [] ? __mark_inode_dirty+0x171/0x2b0
    2 Time(s): [] ? generic_block_bmap+0x50/0x50
    1 Time(s): [] ? sleep_on_buffer+0xa/0x10
    1 Time(s): [] ? __find_get_block+0xb4/0x260
    1 Time(s): [] ? __getblk_gfp+0x26/0x60
    1 Time(s): [] ? generic_make_request+0xb0/0x100
    2 Time(s): [] ? io_schedule+0x99/0x120
    4 Time(s): [] ? schedule_preempt_disabled+0x25/0x70
    2 Time(s): [] ? __wait_on_bit+0x5c/0x90
    2 Time(s): [] ? out_of_line_wait_on_bit+0x77/0x90
    4 Time(s): [] ? __mutex_lock_slowpath+0xd3/0x1c0
    4 Time(s): [] ? mutex_lock+0x1b/0x2a
    1 Time(s): [] ? ret_from_fork+0x58/0x90
    5 Time(s): [] ? system_call_fast_compare_end+0x10/0x15
    2 Time(s): [] ? start_this_handle+0x5a0/0x5a0 [jbd2]
    1 Time(s): [] ? sleep_on_shadow_bh+0xa/0x10 [jbd2]
    1 Time(s): [] ? do_get_write_access+0x29d/0x4f0 [jbd2]
    1 Time(s): [] ? jbd2_journal_get_write_access+0x22/0x40 [jbd2]
    1 Time(s): [] ? jbd2_journal_commit_transaction+0xe91/0x1a30 [jbd2]
    1 Time(s): [] ? commit_timeout+0x10/0x10 [jbd2]
    1 Time(s): [] ? kjournald2+0xb2/0x240 [jbd2]
    4 Time(s): [] ? ext4_file_write_iter+0x79/0x3a0 [ext4]
    1 Time(s): [] ? ext4_file_write_iter+0xf0/0x3a0 [ext4]
    1 Time(s): [] ? ext4_reserve_inode_write+0x68/0x90 [ext4]
    1 Time(s): [] ? ext4_mark_inode_dirty+0x3f/0x200 [ext4]
    2 Time(s): [] ? ext4_dirty_inode+0x3b/0x60 [ext4]
    1 Time(s): [] ? __ext4_journal_get_write_access+0x36/0x80 [ext4]
    1 Time(s): ffff880003dde210 0000000000000082 0000000000012f40 ffff8800169f3fd8
    1 Time(s): ffff88000aa5cca0 0000000000000082 0000000000012f40 ffff88000f29ffd8
    1 Time(s): ffff880013812d2c ffff880003dde210 00000000ffffffff ffff880013812d30
    1 Time(s): ffff880013812d2c ffff88000aa5cca0 00000000ffffffff ffff880013812d30
    1 Time(s): ffff880013812d2c ffff88001688b530 00000000ffffffff ffff880013812d30
    1 Time(s): ffff880013812d2c ffff88001a6a7570 00000000ffffffff ffff880013812d30
    1 Time(s): ffff88001688b530 0000000000000086 0000000000012f40 ffff8800030ebfd8
    1 Time(s): ffff88001a6a7570 0000000000000086 0000000000012f40 ffff880000203fd8
    1 Time(s): ffff88001d195430 0000000000000086 0000000000012f40 ffff8800169dffd8
    1 Time(s): ffff88001f149330 0000000000000046 0000000000012f40 ffff88001f1a7fd8
    6 Time(s): “echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
    6 Time(s): Call Trace:
    1 Time(s): jbd2/vda1-8 D ffff88001f149788 0 98 2 0x00000000
    1 Time(s): sshd D ffff880003dde668 0 7606 1653 0x00000004
    1 Time(s): sshd D ffff88000aa5d0f8 0 7604 1653 0x00000004
    1 Time(s): sshd D ffff88001688b988 0 7577 1653 0x00000004
    1 Time(s): sshd D ffff88001a6a79c8 0 7602 1653 0x00000004
    1 Time(s): sshd D ffff88001d195888 0 7575 1653 0x00000004

  • Nas linhas aparece cortado mas pelo jeito é “blocked more than 120 seconds”, é isso?
    Pode ser por causa do limite que o sistema tem de 120 segundos para fazer o flush de cache em memória para o disco. O seu servidor parece bem ocupado para se atrapalhar com isso.

    Veja se a solução abaixo te ajuda. digite os 3 comandos:
    > sysctl -w vm.dirty_ratio=10
    > sysctl -w vm.dirty_background_ratio=5
    > sysctl -p

    Se der certo torne permanente, edite o arquivo /etc/sysctl.conf e cole estas 2 linhas ao final:
    vm.dirty_ratio = 10
    vm.dirty_background_ratio = 5

  • Rafael Oliveira de Santana

    @fatorbinario:disqus : as directivas para Joomla não estão funcionando! Da a mensagem “Regras de reescrita inválidas”
    Os campos acima deixei em branco: Tipo Redirecionamento: Sem redirecionamento; Caminho do redirecionamento: Em branco. Redirecionamento SEO: de http://www.domain para domain.com

    Tentei copiar tambem do site oficial https://docs.joomla.org/Nginx/pt-br, e colar no campo de directivas do Nginx, mas sem sucesso.
    Alguma sugestão?

  • Rafael Oliveira de Santana

    Ainda sobre Directivas para Joomla. Nesse link, no ultimo tópico, ele conseguiu a solução, mas escreveu nos arquivos de configuração. Não sei se funciona pro ispconfig, ja que ele cria um automatico para cada site. http://stackoverflow.com/questions/20925210/joomla-with-nginx-rewrite-sef-url

  • Eu atendo aqui um monte de sites em Joomla, tudo funcionando com as mesmas diretivas.

  • Veja resposta abaixo.

  • Rafael Oliveira de Santana

    🙁 Acho que eu fiz uma grande confusão…rs Eu estava adicionando em lugar errado… Fui em Options, Directive Snippets, criei o nome dela, pus o “type” como Nginx e salvei. Depois fui em Sites, escolhi o meu site, clique na aba Options, fui ate o final, na parte “nginx Directives”, ai apareceu. Bem, vou testar então e te falo. Criei um user de ftp e vou subir um site e ver.

  • Rafael Oliveira de Santana

    Deu certo! Vc e o cara mesmo! Subi um site, e apliquei os directives e as url rewrite funcionaram lindamente!

  • Edson Correa

    Oi Luis, obrigado pela ajuda. Depois que implementei a solução sugerida os erros desapareceram. Estou hospedando sites em Joomla, que naturalmente acho mais pesados que os em wordpress. Porém, não tenho notado lentidão nos sites, nem picos constantes nos gráficos da DO. Mas, será que esse alerta, pode ser indício para migrar para um servidor com mais recursos? Atualmente estou em um básico de 5 dólares.

  • Eu acho os sites em Joomla bem mais leves que em WordPress, atendo clientes das mais variadas plataformas por aqui. Se não há lentidão ou picos de CPU ou RAM nem esquente muito a cabeça. O que aconteceu no seu servidor pode estar relacionado com alguma rotina, por exemplo sistema de cache, porque o fix que passei está relacionado com gravação em disco (i/O).

    É atribuição de um bom administrador de sistemas monitorar e zelar pelo funcionamento correto do servidor, solucionando bugs e alertas como esse, você agiu corretamente.

  • Everson Aguiar

    Olá Luis, Primeiramente parabéns pelo site, estou começando agora e com toda certeza seu site está sendo um forte aliado!
    Preciso de ajuda!
    Os sites que que eu trabalho tem a própria pagina 404, que tem objetivos definidos. Gostaria que meus sites não utilizassem a pagina padrão 404 carregada e sim a pagina de cada projeto. Não compreendi como eu faço isso!

  • Publiquei um artigo há alguns meses atrás falando sobre isso:
    https://fatorbinario.com/comunidade/topico/paginas-de-erro-configure-o-nginx-para-que-o-site-trate-as-excecoes/

    Divirta-se no site usando o sistema de busca para quaisquer outras dúvidas, e se não encontrar pode sempre perguntar..

  • Everson Aguiar

    Luis, Obrigado pelo retorno rápido!
    Segui o link que o senhor falou, mas não deu certo. 🙁 . Atualmente as diretivas da nginx esta assim:

    access_log off;
    log_not_found off;

    #Diretivas NginX por site para mitigar ataques DDoS
    limit_conn conn_limit_per_ip 6;
    limit_conn_log_level warn;
    limit_conn_status 444;

    location @php {
    try_files $uri =404;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/lib/php5-fpm/web1.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors off;
    }

    location /painel/ {
    try_files $uri $uri/ /painel/index.php?q=$uri&$args;
    }

    Também não compreendi muito bem sobre como funciona a criação de subdominios quando o mesmo está em um subdiretório. Eu acabei adicionado a chave na digital ocean para esse caso também. Não é necessário a chave na DO?

    Não compreendi o que fiz de errado em ambos os casos!

    Desde já agradeço sua contribuição com a comunidade!

  • Chave na Digital? Do quê?
    Para adicionar subdominios você cria eles da mesma maneira que websites, ao invés de digitar o dominio digita com o sub junto. Aquele esquema de subdiretórios dentro da mesma estrutura de todos os sites é coisa de cPanel, abandone aquela ideia.

    Se não deu certo as páginas de erro verifique se o usuário Linux do site é “web1”. E pode até ser que você cometeu algum erro nas diretivas, para verificar se está gravando certo navegue até o diretório: /etc/nginx/sites-available. Olhe lá se não criou o vhost do site com a extensão “.err”, se acontecer isso as diretivas não gravam mesmo. Desative aquelas 3 linhas de regras anti DDoS ali, geralmente são 6 linhas e você deve ter deixado algo sem fazer.

  • Everson Aguiar

    Olá Luis!

    “Chave” foi erro de expressão da minha parte, peço desculpas (erro de principiante). Me referia a tabela de DNS da Digital Ocean.
    Referente a parte do subdomínio, OK agora entendi. Obrigado!

    Referente ao DDoS, eu havia deixado de colocar a tratativa para problemas com css (burst), (já que meu site não apresentava esse problema). agora está conforme explicado no tutorial. Obrigado!

    Referente ao 404, o usuário do meu site é o “web1” mesmo, chequei a pasta /etc/nginx/sites-available, não há nenhum arquivo com a extensão .err, e o arquivo meusite.com.br.vhost, está com as mesmas informações adicionadas nas Diretivas do nginx do ispconfig.

    Fiz o Rebuild Droplet quatro vezes e comecei tudo novamente, afim de eliminar a possibilidade de eu ter pulado ou errado algo (e ainda não descarto essa possibilidade). Porém ainda esta assumindo o 404 do ispconfig.

    Será que comete mais algum erro?

    As diretivas do nginx, estão assim agora:

    access_log off;
    log_not_found off;

    limit_conn conn_limit_per_ip 6;
    limit_conn_log_level warn;
    limit_conn_status 444;

    limit_req zone=req_limit_per_ip burst=20;
    limit_req_log_level warn;
    limit_req_status 444;

    location @php {
    try_files $uri =404;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/lib/php5-fpm/web1.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors off;
    }

    Agradeço novamente!

  • Parece tudo certo..
    Veja ainda se existe a pasta /web/error do site e se existem arquivos de erro lá dentro. Se não houver a pasta copie ela de um outro site ISPConfig que tenha..

  • Everson Aguiar

    As pastas e os arquivos estão lá.

    Acho que entendi o problema, mas ainda não sei resolver…
    Em localhost esta instalado o apache com o mod_rewrite habilitado, já na vps, está com o nginx, a instalação está ignorando o htaccss do site, não permitindo a navegação correta do site.

    Vi que no /etc/nginx/sites-enabled/default está desabilitado as linhas que negam a leitura do htaccess

    Há como habilitar o uso do htaccess ou terei que utilizar métodos alternativos para essa reescrita? Ou ainda, terei que voltar para o apache?

    Ainda estou pesquisando como converter as ações que há no htaccess

  • O NginX não usa htaccess.. você escreve as diretivas direto na aba Opções do ISPConfig e somente as que ainda não estão no arquivo vhost. E tentar sobrescrever o vhost manualmente também não dá certo porque o ISPConfig vai regravar toda vez que alterar alguma coisa do site pelo painel.

    Quais diretivas você precisa? Isso é script personalizado ou outro CMS?

  • Everson Aguiar

    O CMS é próprio, que depende do htaccess (mod_rewrite ativo) para trabalhar com a url amigável, pelo que eu pesquisei na comunidade dos desenvolvedores que faço parte umas 20 pessoas que tentaram trabalhar com o nginx desistiram por esse mesmo problema, não conseguiram resolver e tiveram que voltar para o apache.

    O htaccess que trabalhamos é conforme abaixo:

    RewriteEngine On
    Options All -Indexes

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

    RewriteCond %{HTTP_HOST} ^meusite.com.br$
    RewriteRule ^/?$ “https://www.meusite.com.br/” [R=301,L]

    redirect 301 /rss.xml https://www.meusite.com.br/rss.php

  • As 2 únicas coisas que têm nesse seu htacces é reescrever a URL pegando ela como parâmetro do index.php e o redirecionamento de http para https.

    Olha um exemplo para o rewrite de permalink:
    location / {
    try_files $uri $uri/ @urlamigavel;
    }
    location @urlamigavel {
    rewrite ^/(.*)$ /index.php?url=$1 last;
    }

    E olha a segunda de http para https:
    if ($scheme != “https”) {
    rewrite ^ https://$host$request_uri permanent;
    }

  • Everson Aguiar

    Agora começou a dar certo, a navegação no site, incluído a 404 esta normal.

    Só as imagens onde foram tratadas onde foi utilizado o timthumb para redimensiona-la que não está indo!

    Vou editar o projeto para não utilizar mais o timthumb!

    Muito obrigado por toda a ajuda, nem escola EAD paga é tão prestativa!

  • Problema das imagens pode ser qualquer uma das 3 opções abaixo:
    – Regras anti DDoS no NginX
    – Cache do site
    – Rocket Loader ativado na CloudFlare

    *Sem problemas.. eu estou captando clientes desde o final do ano passado e sempre que chegar no próximo milestone, de valor total das mensalidades, irei publicar ainda mais documentações (artigos sobre ferramentas e scripts que já aplico nos servidores dos meus clientes).

  • No meu ele não criou o site no lugar que deveria. Ao inves disso, o site foi para o endereço /var/www/clients/client0/web

    O que faço?

  • Acabei no mesmo diretorio instalando manualmente o wordpress. Vou ver se funciona bem, mas já notei que as páginas do admin do wordpress ficaram um pouquinho lentas. Normal isso?

  • https://vidroid.com.br/screen.png
    Também tive isso na página de adicionar plugins

  • E agora um problema de bag wateway na mesma página de plugins kkk desculpa o incomodo todo

  • Consegui (aparentemente) corrigir todos os problemas acima, mas tem um último problema. O site não envia mais emails. Nos formulários de contato do próprio site, o site simplesmente não me envia emails para minha caixa de entrada, no Google Apps. O que posso fazer?

  • Seguindo meus tutoriais você aprenderá que o recurso de envio de email por script diretamente do servidor é bloqueado. Faço isso de propósito para evitar que você tenha o servidor de emails spoofado e você seja banido da empresa de hosting.

    No WordPress procure por um plugin de SMTP email e configure ele por um serviço externo como a SparkPost por exemplo.

  • Jonatan

    Olá, tudo bem? Eu tenho uma dúvida que está me deixando de cabelo em pé aqui rsrsrsrsrsr
    Seguinte, migrei de um servidor compartilhado para o VPS, fiz todo o procedimento do tutorial e está tudo ok. O que me intriga é o seguinte: quando acesso pela primeira vez o site, ele leva muito tempo para ser carregado, isso também nos sites de teste (pingdon tools, pagespeed, etc). Quando acesso pela segunda vez está tudo ok. Estou usando a plataforma prestashop e uso o cloudflare

    Obs: Eu sei que acessando o site sempre pela primeira vez ele demora mais para carregar, o problema é que leva muito tempo para ser carregado, algo em média de 25 segundos, os demais acessos ficam em 2 segundos, no máximo.

  • Tem coisa bem errada na instalação. Mas eu teria que olhar os arquivos e a infra para tentar resolver. Hoje até faço isso mas no plano de mensalidade.

    Tente deletar o cache. Eu presto consultoria para alguns clientes de Prestashop, te garanto que funciona rápido até mesmo em servidor de $5 dólares.

  • Jonatan

    Muito obrigado pela resposta.

    Eu fiz um novo teste aqui removendo algumas diretivas do nginx e pelo que verifiquei, removendo estes itens ele fica normal, o primeiro acesso fica em 3,5 segundos.

    #Diretivas NginX por site para mitigar ataques DDoS
    limit_conn conn_limit_per_ip 6;
    limit_conn_log_level warn;
    limit_conn_status 444;

    #Caso o CSS do site nao carregue corretamente aumente o burst na proxima linha gradativamente ate solucionar
    limit_req zone=req_limit_per_ip burst=30;
    limit_req_log_level warn;
    limit_req_status 444;

    Eu cheguei a aumentar o busrt, mas mesmo assim não deu certo, só removendo mesmo.

  • Michael Tavares

    Luis,
    bom dia, devo lhe agradecer pelo excelente trabalho, seus tutorias são ótimos, segui e deu tudo certo até o momento.

    Porem duas coisas que eu não entendi, primeiro foi o email do Logwatch que não recebi, e minha pagina só está reconhecendo como http, quando chamo ela em https ela aparece a tela do ngix.

    tem zap?

  • Tenho zap, celular e várias outras formas de contato mas somente para clientes recorrentes.

    Se não recebe os emails do Logwatch tem que revisar as configurações de email do servidor. E para aparecer a página em https você tem que instalar o certificado e colocar as regras NginX para ele, veja o tutorial que publiquei sobre LetsEncrypt.

  • Rodrigo Carvalho

    Luis,

    Bom dia estou com problema que quando tento acessar o dominio por https:// ele redireciona para uma pagina do Welcome to nginx on Debian!, se acesso sem o https:// acesso normalmente o site. O que estou fazendo errado?

  • Falta configurar um certificado válido pra ele. Quando acessa a URL por https e a 443 não está habilitada para aquele dominio o servidor tenta abrir a página padrão, que é a do NginX.

  • Rodrigo Carvalho

    Perfeito, quanto a renovação do certificado do lestcript. Se utilizar o cron (15 23 * * * /usr/bin/certbot renew -q) ele vai renovar todos os certificados do servidor?

  • Sim. Execute o comando manualmente sem o “-q” e veja o que acontece.

  • Francisco Silva

    Boa noite Luis, parabéns pelo site e pela ajuda que você dá em disponibilizar seu tempo.

    Bem meu problema é o seguinte tenho 1 site hospedados em um server NGINX com ISPConfig, o fato é, preciso redirecionar esse site para outro site fora do servidor, isso consegui fazer utilizando o código abaixo na área (nginx Directives) do ISPConfig:

    if ($scheme != “https”) {
    rewrite ^ https://$host$1 permanent;
    }

    Porém preciso redirecionar outras duas urls que estão indexadas pelo Google e não quero perder essa indexação, na minha cabeça tenho que fazer um redirecionamento 301 dessas urls para as novas. Dei uma olhada por ai e me deparei com duas situações:

    if ( $request_filename ~ /produto/produto1/ ) {
    rewrite ^ https://$host/produto? permanent;
    }

    if ( $request_filename ~ /categoria-produto/categoria1/produto2/ ) {
    rewrite ^ https://$host/produto? permanent;
    }

    location /produto/produto1/ {
    return 301 https://$host/produto1
    }

    location /categoria-produto/categoria1/produto2/ {
    return 301 https://$host/produto2
    }

    Provavelmente estou comendo bola em algum lugar só não faço ideia onde, pois tentei utilizar ambas as variações e em nenhum caso o redirecionamento para a url ocorreu, ocorreu apenas o redirecionamento para a home do site.

    Ai entra a dúvida é possível fazer esse tipo de redirecionamento através da (nginx Directives) ou tenho que fazer por outro lugar. Tem alguma ideia?

    Obrigado novamente. Francisco.

  • Se a tabela DNS está na CloudFlare o jeito mais simples e direto de fazer isso é por lá em “Page Rules”. Mas caso queira fazer pelo NginX há várias maneiras..

    Delete aquelas diretivas que você fez e use este exemplo abaixo, é só colar isso na caixa de diretivas do site (substitua ali pela URL do site de destino):

    location = /produto/produto1/ {
    return 301 https:///URL-DO-SITE-DE-DESTINO/produto1/;
    }

  • Francisco Silva

    Olá Luis, Perfeito era isso mesmo que precisa. Realmente não tinha me atentado a possibilidade de fazer o redirecionamento via CloudFlare, mas enfim, pelo menos aprendi como fazer o redirecionamento via regras do painel. Obrigado!!!

  • Thiago L.

    Olá Luis, como seria neste caso a instalação de um site em html?

  • Não precisa de diretivas.