PHP CURL não envia / recebe nenhum dado - símbolo indefinido: PR_GetEnvSecure

2

O Curl parou de funcionar para mim.

Eu executei algumas atualizações no meu servidor AWS EC2 ontem, então tenho a sensação de que essa é a causa, mas não consigo entender.

Estou usando principalmente o Curl para adicionar pessoas a várias listas de mailchimp. Nenhum desses scripts está funcionando agora e estou recebendo erros do navegador sobre a conexão não ser segura:

"A página que você está tentando visualizar não pode ser mostrada porque a autenticidade dos dados recebidos não pôde ser verificada."

Eu também estou recebendo o seguinte erro nos meus logs de erro do apache que parecem relacionados:

/ usr / sbin / httpd: erro de pesquisa de símbolo: /usr/lib64/libnsssysinit.so: símbolo indefinido: PR_GetEnvSecure

O CURL está instalado etc (veja a captura de tela) e quando eu uso o curl a partir da linha de comando no meu servidor web, o servidor remoto fala de volta para mim ... então não há nenhum problema lá.

Qualquer ajuda muito apreciada.

Danny.

  // Set API Key and list ID to add a subscriber
  $api_key = 'api key';
  $list_id = 'our list id';
  $dc = 'data center';

  /* ================
   * DESTINATION URL
   * ================
   */

  $url = 'https://' . $dc . '.api.mailchimp.com/3.0/lists/' . $list_id . '/members/';

  /* ================
   * DATA SETUP
   * ================
   */

  $pfb_data = array(
    'email_address' => '[email protected]',
    'status'        => 'pending',
    'merge_fields'  => array(
      'FNAME'       => 'First Name',
      'LNAME'       => 'Last Name',
    ),
    'interests' => array( 'Interest List ID' => true )
  );

  // Encode the data
  $encoded_pfb_data = json_encode($pfb_data);

  // Setup cURL sequence
  $ch = curl_init();

  /* ================
   * cURL OPTIONS
   * The tricky one here is the _USERPWD - this is how you transfer the API key over
   * _RETURNTRANSFER allows us to get the response into a variable which is nice
   * This example just POSTs, we don't edit/modify - just a simple add to a list
   * _POSTFIELDS does the heavy lifting
   * _SSL_VERIFYPEER should probably be set but I didn't do it here
   * ================
   */
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $api_key);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded_pfb_data);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  $results = curl_exec($ch); // store response
  $response = curl_getinfo($ch, CURLINFO_HTTP_CODE); // get HTTP CODE
  $errors = curl_error($ch); // store errors

  curl_close($ch);

  // Returns info back to jQuery .ajax or just outputs onto the page

  $results = array(
    'results' => $result_info,
    'response' => $response,
    'errors' => $errors
  );

  // Sends data back to the page OR the ajax() in your JS
  echo json_encode($results);

insira a descrição da imagem aqui

    
por Danny Browne 12.05.2017 / 15:46

1 resposta

4

Aparentemente, o problema foi recentemente publicado uma atualização para o pacote NSS para sistemas CentOS 7, que estava resultando em um erro de Aache

/ usr / sbin / httpd: erro de pesquisa de símbolo: /lib64/libnsssysinit.so: símbolo indefinido: PR_GetEnvSecure

O problema foi resolvido reiniciando os serviços Apache e FPM.

Resolvi o problema reiniciando minha instância do EC2.

    
por 12.05.2017 / 16:31

Tags