FreeTDS PHP mssql_connect () 503 na atualização

1

Instalamos recentemente o FreeTDS com o php56-mssql em um dos nossos servidores RHEL7. Tudo parece estar funcionando corretamente, exceto por esse estranho problema. A primeira vez que carregamos uma página php que está usando a função mssql_connect (), a página acessa a instância do sql server 2012, obtém os dados e renderiza a página conforme o esperado. No entanto, se atualizarmos a página uma vez, a página será renderizada, mas sem nenhum dos dados do banco de dados. Se atualizarmos uma segunda vez, receberemos a seguinte mensagem 503:

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Se continuarmos atualizando uma terceira vez, a página será renderizada com todos os dados conforme o esperado. Também durante a solução de problemas, notei que, se carregarmos a página, espere ~ 15 segundos e, em seguida, atualize, a página carrega conforme o esperado.

Ao explorar o error_log, vemos as seguintes mensagens:

[Fri Oct 21 12:37:44.971872 2016] [proxy_fcgi:error] [pid 14052:tid 140504888997632] [client xx.xxx.xx.xx:xxxxx] AH01071: Got error 'PHP message: PHP Warning:  mssql_select_db(): 2 is not a valid MS SQL-Link resource in /var/www/vhosts/example.com/e0/conn.php on line 6\nPHP message: PHP Warning:  mssql_init(): 2 is not a valid MS SQL-Link resource in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 16\nPHP message: PHP Warning:  mssql_bind() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 17\nPHP message: PHP Warning:  mssql_bind() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 18\nPHP message: PHP Warning:  mssql_execute() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 19\nPHP message: PHP Warning:  mssql_free_statement() expects parameter 1 to be resource, boolean given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 20\nPHP message: PHP Warning:  mssql_fetch_array() expects parameter 1 to be resource, null given in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 23\nPHP message: PHP Notice:  Undefined offset: 0 in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 53\nPHP message: PHP Notice:  Undefined offset: 0 in /var/www/vhosts/example.com/httpdocs/e1/search.php on line 60\n', referer: http://example.com/contacts/
[Fri Oct 21 12:37:45.347450 2016] [proxy_fcgi:error] [pid 14109:tid 140504956139264] (104)Connection reset by peer: [client xx.xxx.xx.xx:xxxxx] AH01075: Error dispatching request to :, referer: http://example.com/e1/
[Fri Oct 21 12:37:45.347625 2016] [include:warn] [pid 14109:tid 140504956139264] [client xx.xxx.xx.xx:xxxxx] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /error_docs/maintenance.html, referer: http://example.com/e1/

Alguma sugestão? Eu não sei porque isso está acontecendo do jeito que está acontecendo!?

UPDATE

Testou outra página usando esta conexão. Ele carrega bem na primeira vez, mas se você solicitar novamente antes de 15 segundos, ele não consegue se conectar:

AH01071: Got error 'PHP message: PHP Warning:  mssql_connect(): Unable to connect to server: theServerName
    
por nullReference 21.10.2016 / 20:22

1 resposta

0

O problema neste caso é que nosso novo servidor foi configurado para executar este aplicativo como um "aplicativo FPM servido pelo Apache", no qual deveríamos ter essa configuração de aplicativo para ser executada como "aplicativo FastCGI atendido pelo Apache" .

    
por 24.10.2016 / 16:21