Question

I'm currently developing a nagios plugin with PHP and cURL.

My problem is that my script is working well when i use it with PHP like this :

#php /usr/local/nagios/plugins/script.php

I mean it returns me a 200 HTTP CODE.

But with nagios it returns me a 0 HTTP CODE. It's strange because the php is working with NAGIOS (i can read variables...). So the problem is that Nagios can't use cURL.

Can someone give me a clue ? Thanks.

Here you can see my code.

<?php
$widgeturl = "http://google.com";
$agent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12";
    if (!function_exists("curl_init")) die("pushMeTo needs CURL module, please install CURL on your php.");

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $widgeturl);

    $page = curl_exec($ch); //or die("Curl exe failed"); 
    $code=curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($code==200) {
          fwrite(STDOUT, $page.'Working well : '.$code);
          exit(0);
    } 
    else {
          fwrite(STDOUT, $page.'not working : '.$code);
          exit(1);
    }
    curl_close($ch);

Solution : It was because the proxy was basically set on my OS (centOS), but Nagios was not using it instead of PHP. So i just had to put : curl_setopt($ch, CURLOPT_PROXY, 'myproxy:8080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:pass"); Hope it could help someone

Was it helpful?

Solution

curl_setopt($ch, CURLOPT_PROXY, 'myproxy:8080'); 
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:pass")

OTHER TIPS

Can you try making the CURL request like this (i.e. header only request):

<?php

// config
$url = 'http://www.google.com/';

// make request & parse response
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FILETIME, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response_header = curl_exec($curl);
$response_info = curl_getinfo($curl);
curl_close($curl);

// debug
echo "<b>response_header</b>\r\n";
var_dump($response_header);
echo "<b>response_info</b>\r\n";
var_dump($response_info);

The above will output the following:

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top