Não é possível acessar o Plesk: Erro interno: Web de serviço de domínio não existe
imprimir- 0
Sintomas
-
Plesk mostra o seguinte erro após o login:
Erro interno: Web de serviço de domínio não existe: domínio=sub.example.com, id=41
Web de serviço de domínio não existe: domínio=sub.example.com, id=41
Arquivo DSWeb.php
Linha 76
Tipo PleskFatalException -
Os seguintes erros podem ser mostrados no
/var/log/plesk/panel.logarquivo:[2015-11-23 22:23:48] ERR [painel] Falha ao pesquisar instâncias do WordPress na assinatura example.com: Domínio com id = 270 não encontrado
[2015-11-23 22:23:52] ERR [ painel] Tentativa de alterar o status do serviço de correio não configurado. [domain_id = 270]
[2015-11-23 22:23:52] ERR [painel] Não é possível carregar o objeto do tipo PhDomain com id = 270: falha ao desligar o domínio: não é possível encontrar o nó de serviço para o serviço da web no domínio com id =270
[2015-11-23 22:23:52] ERR [painel] Algumas das assinaturas selecionadas não foram suspensas.<br>Não foi possível carregar o objeto do tipo PhDomain com id=270: Falha ao desativar o domínio: Não foi possível encontrar nó de serviço para serviço da web no domínio com id = 270
[2015-11-23 22:23:59] ERR [painel] Sem dados.
[2015-11-23 22:24:09] ERR [painel] Falha ao pesquisar instâncias do WordPress na assinatura example.com: Recurso com UID 'bd314c87-865a-46e6-b694-342e71899445' não encontrado.
Causa
O domínio mencionado nas mensagens de erro foi excluído, mas o banco de dados PSA ainda contém uma entrada para este domínio.
O banco de dados Plesk não foi atualizado corretamente. A tabela 'psa.DomainServices' não possui registros do tipo "web".
Resolução
Note: Este artigo pode exigir conhecimentos administrativos adicionais para ser aplicado. Se precisar de ajuda, entre em contato com o administrador do servidor ou com o suporte de hospedagem.
Warning: Please check that the domain physically exists before making changes. If it does, back up all the domain content from the corresponding directories /var/www/vhosts/<domain> and /var/qmail/mailnames/<domain> (in case of Linux) or from C:\Inetpub\vhosts and %plesk_dir\MailEnable\postoffices% (in case of Windows).
Existem vários cenários possíveis:
Cenário 1. O domínio existe fisicamente no Plesk
-
Conecte-se ao servidor via SSH (Plesk para Linux) ou RDP (Plesk para Windows)
-
Remova o domínio com ID
psa.domainsmencionado na primeira mensagem de erro do banco de dados PSA:# plesk db "DELETE FROM domains WHERE id='41'" -
Encontre registros órfãos nos bancos de dados da seguinte maneira:
Para Plesk no Linux:
-
Criar
psaeapscbackups de banco de dados:# plesk db dump psa > /root/psa_dump_$(date +'%Y-%m-%d').sql # plesk db dump apsc > /root/apsc_dump_$(date +'%Y-%m-%d').sql -
Encontre registros órfãos na tabela
psa.domainsusando os valores mencionados nas mensagens de erro:# grep 'bd314c87-865a-46e6-b694-342e71899445' /root/apsc_dump_$(date +'%Y-%m-%d').sql # grep 'bd314c87-865a-46e6-b694-342e71899445' /root/psa_dump_$(date +'%Y-%m-%d').sql # grep 'example' /root/apsc_dump_$(date +'%Y-%m-%d').sql # grep 'example' /root/psa_dump_$(date +'%Y-%m-%d').sql | grep -v -E 'log_components|exp_event'
INSERT INTO Configurations (id, name, serviceNodeId, file, version, objectType, objectId, status, active,
description, errorFile) VALUES (115,'nginxDomainWebmail',1,'/etc/nginx/plesk.conf.d/webmails/example.com_webmail.conf',
'14240541100.61180300','nginxDomain',28,'ok','true',NULL,'');
Para Plesk no Windows:-
Abra uma janela elevada do PowerShell para executar os seguintes comandos
-
Criar
psaeapscbackups de banco de dados:plesk db dump psa > psa_dump_$(get-date -f aaaa-MM-dd).sql plesk db dump apsc > apsc_dump_$(get-date -f aaaa-MM-dd).sql -
Encontre registros órfãos na tabela psa.domains usando os valores mencionados nas mensagens de erro:
(Select-String -Path apsc_dump_$(get-date -f yyyy-MM-dd).sql -Pattern "INSERT INTO ``.* bd314c87-865a-46e6-b694-342e71899445 "|Select-String -Pattern "log_components| exp_event" -NotMatch ).Line -split "(?=,()" -split "(?= ()" | Select-String -Pattern "INSERT INTO| bd314c87-865a- 46e6-b694-342e71899445 " (Select-String -Path psa_dump_$(get-date -f yyyy-MM-dd).sql -Pattern "INSERT INTO ``.* bd314c87-865a-46e6-b694-342e71899445 "|Select-String -Pattern "log_components| exp_event" -NotMatch ).Line -split "(?=,()" -split "(?= ()" | Select-String -Pattern "INSERT INTO| bd314c87-865a- 46e6-b694-342e71899445 " (Select-String -Path apsc_dump_$(get-date -f yyyy-MM-dd).sql -Pattern "INSERT INTO ``.* exemplo "|Select- String -Pattern "log_components|exp_event" -NotMatch ).Linha - split "(?=,()" -split "(?= ()" | Select-String -Pattern "INSERT INTO| exemplo " (Select-String -Path psa_dump_$(get-date -f yyyy-MM-dd).sql -Pattern "INSERT INTO ``.* exemplo "|Select- String -Pattern "log_components|exp_event" -NotMatch ).Linha - split "(?=,()" -split "(?= ()" | Select-String -Pattern "INSERT INTO| exemplo "
INSERT INTO `hosting` VALUES
,(41,'false','false','true ','falso','fastcgi-7.4','falso','falso','falso','falso','verdadeiro','4.0','verdadeiro','awstats','falso','hosting_write_template .xml','C:\Inetpub\vhosts\example.com\httpdocs','falso',0,-1,-1,'verdadeiro')
-
-
Remova registros órfãos da etapa anterior executando
DELETEinstruções SQL nopsabanco de dados:
Cenário 2. O domínio não existe fisicamente
-
Conecte-se ao servidor via SSH (Plesk para Linux) ou RDP (Plesk para Windows)
-
Alteração
htypedo domínio removido incorretamente para nenhum:mysql> atualizar domínios set htype='none' where id=41 ; -
O domínio ficará visível na interface do Plesk com "Sem hospedagem".
-
Remova o domínio através da interface Plesk em Domínios > selecione exemplo.com > Clique em Remover
Cenário 3. Aplicável quando o domínio existe ou não.
-
Conecte-se ao servidor via SSH (Plesk para Linux) ou RDP (Plesk para Windows)
-
Adicione as entradas ausentes ao banco de dados PSA com consulta MySQL.
Primeiro, verifique se existe uma entrada em ‘DomainServices’ para este domínio:
mysql> selecione * em DomainServices onde dom_id = 41;
+-----+--------+------+--------+---------------+-- --------------+
| identificação | dom_id | tipo | estado | parâmetros_id | ipCollectionId |
+-----+--------+------+--------+---------------+-- --------------+
| 322 | 41 | correio | 16 | 585 | 322 |
+-----+--------+------+--------+---------------+-- --------------+
1 linha no conjunto (0,00 seg)-
Adicione uma entrada semelhante do tipo "web" e adicione registros relacionados a 'IpAddressesCollections'
mysql>início;
mysql> selecione @dom_id := <missing_domain_id>;
mysql> select @ip := (selecione dr.val de dns_recs dr, domínios d onde d.id = @dom_id e dr.dns_zone_id = d.dns_zone_id e dr.type = 'A' e dr.host = concat(d. nome,'.'));
mysql> selecione @ip_id := (selecione o id de IP_Addresses onde ip_address = @ip);
mysql> INSERT INTO IpCollections VALUES (NULL);
mysql> SELECT @ip_collection_id := LAST_INSERT_ID();
mysql> insira em IpAddressesCollections (ipCollectionId, ipAddressId) valores (@ip_collection_id, @ip_id);
mysql> inserir em DomainServices (dom_id, tipo, status, parâmetros_id, ipCollectionId) valores (@dom_id, 'web', 0, 0, @ip_collection_id);
mysql>comprometer;
-