By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,296 Members | 1,457 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,296 IT Pros & Developers. It's quick & easy.

cURL + OpenSSL + PHP not working

P: n/a
# uname -a
Linux stargate.mxc-online.net 2.4.20-021stab022.2.777-smp #1 SMP Wed Jul 28
17:12:37
MSD 2004 i686 i686 i386 GNU/Linux

I recompiled PHP with mcrypt, openssl, and curl
phpinfo(): http://www.canadiandropshipping.com/hello.php3

Does anyone know why this ssl curl test fails?
http://www.canadiandropshipping.com...t/diag_curl.php
it hangs on curl_exec(). I posted the code below.

Here is the easyapache config I used. It compiled without errors. Did I miss
something? Are there known issues with this combination of software?

/scripts/easyapache
+----------------------- Main Menu ------------------------+
¦ +------------------------------------------------------+ ¦
¦ ¦[ ] Apache 2 Support (Experimental & Very Broken, Not
¦ ¦[*] Expires Module
¦ ¦[*] Raise FD_SETSIZE to 16384 (System Wide)
¦ ¦[*] Prevent Users from reading other webroots
¦ ¦[*] Frontpage Module
¦ ¦[ ] Gzip Module (experimental)
¦ ¦[*] Raise HARD_SERVER_LIMIT
¦ ¦[ ] Perl Module (not required to run .cgi scripts/not
¦ ¦Php Module --->
¦ ¦[ ] PHP suEXEC Support
¦ ¦[*] Report Build Errors to cPanel
¦ ¦[ ] Reset Apache Config to Default (last resort)
¦ ¦[*] Rewrite Module
¦ ¦[ ] Skip Apache Build if up to date
¦ ¦[*] SSL Module
¦ ¦[*] suEXEC Module
¦ ¦[ ] Verbose Build (show configure and gcc output)
¦ +------------------------------------------------------+ ¦
+----------------------------------------------------------+



+-------------------- Php Module Menu ---------------------+
¦ +------------------------------------------------------+ ¦
¦ ¦[*] Php Module
¦ ¦ (*) Version 4.3.10
¦ ¦ ( ) Version 4.3.8
¦ ¦ ( ) Version 4.3.9
¦ ¦ ( ) Version 5.0.2 (TESTING)
¦ ¦ ( ) Version 5.0.3 (TESTING)
¦ ¦ (*) Bc Math
¦ ¦ (*) Calendar Support
¦ ¦ (*) Curl
¦ ¦ (*) Curl SSL Support
¦ ¦ (*) Dom XSLT
¦ ¦ ( ) Exif
¦ ¦ ( ) Flash
¦ ¦ (*) FTP
¦ ¦ (*) GD
¦ ¦ ( ) GetText
¦ ¦ ( ) Iconv (experimental)
¦ ¦ ( ) Imap Module
¦ ¦ ( ) Java (must already be installed, or install w
¦ ¦ ( ) Mb String
¦ ¦ (*) Mcrypt
¦ ¦ ( ) Memory Limit (experimental)
¦ ¦ ( ) Mhash
¦ ¦ ( ) Ming Support
¦ ¦ (*) Magic Quotes
¦ ¦ (*) Mysql Module
¦ ¦ (*) Openssl Support
¦ ¦ (*) Discard Path
¦ ¦ ( ) PDFlib (requires license for commerical use;
¦ ¦ (*) Pear
¦ ¦ ( ) Postgresql (will break 7.2.x or earlier, plea
¦ ¦ ( ) Pspell Module
¦ ¦ ( ) Sablot XSLT [may cause problems with chili!as
¦ ¦ ( ) SafeMode
¦ ¦ (*) Sockets
¦ ¦ ( ) Use System Mysql
¦ ¦ (*) Track Vars
¦ ¦ ( ) Freetype Support
¦ ¦ (*) Versioning
¦ ¦ ( ) WDDX
¦ ¦ ( ) XML RPC
¦ ¦ ( ) Zip
¦ ¦ (*) Zlib
¦ +------------------------------------------------------+ ¦
+----------------------------------------------------------¦
PHP Code:
<?
/*
file created on 2/23/2004 to test CURL
*/

function ssl_connect($url,$variables=0,$parse_variables=0,$
test=0,$timeout=30,$no_headers=0){
global $SC;
define(UMURL,$url);
define(UMTIMEOUT,$timeout);

// check for presence of CURL
if (!function_exists("curl_init")){
// only display CURL error message if it hasn't been displayed
before
if (!$SC['no_curl']) print "\n<!-- Squirrelcart Error: You are using
a service which requires CURL, and it is not enabled on your web
server. -->";
$SC['no_curl'] = 1;
return;
}
// if URL has https in it, check for presence of OpenSSL

$ch = curl_init(UMURL);

// set some options for the connection
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT,UMTIMEOUT);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
if (strtoupper(substr(PHP_OS,0,3)) == 'WIN') {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // this line fixes
SSL communications on some Windows servers (IIS 5.0?)
}
//curl_setopt($ch,CURLOPT_VERBOSE,1);
// attach the data
//print "query is $query<br>";

// run the transfer
$result=curl_exec ($ch);
if(curl_errno($ch) > 0) echo "<p style='color: red'><b>cURL
ERROR#".curl_errno($ch).": ".curl_error($ch)." at ".__LINE__." in
".__FILE__."</b></p>";
curl_close ($ch);
return $result;
}
print "<html><head><title>CURL Test Page</title></head><body
style=\"font-family: verdana, helvetica, tahoma; font-size: 12pt\"><b>CURL
Test Page</b><br><br>To test a regular HTTP connection via curl to
http://www.ebay.com,
<br>
<a href=\"?method=normal\">click here</a><br><br>
";
print "To test a secure HTTPS (SSL) connection via curl to
https://adwords.google.com/select/
<br>
<a href=\"?method=secure\">click here</a><br>";
if ($HTTP_GET_VARS['method']) {
print "<br><b>If a page is displayed below, the test worked. Do not
worry about broken image tags. As long as you have some output from the page
below the test is valid:</b><hr width=\"100%\" height=\"2\"><br><br>";

if ($HTTP_GET_VARS['method'] == "normal") $page = "http://www.ebay.com";
if ($HTTP_GET_VARS['method'] == "secure") $page =
"https://adwords.google.com/select/";
$page_data = ssl_connect($page);
print $page_data;
}

print "</body></html>";

?>

Jul 17 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Your test link is still broken and your email address still doesn't work.
I've tried to help -- again -- but can't so I'll repeat what I said before:
are you sure curl is compiled into apache? And that all this is going to
work with easyapache?

John

"Chris Fortune" <hey.spammer...ju******@job.org> wrote in message
news:Oo73e.105001$KI2.7292@clgrps12...
# uname -a
Linux stargate.mxc-online.net 2.4.20-021stab022.2.777-smp #1 SMP Wed Jul 28 17:12:37
MSD 2004 i686 i686 i386 GNU/Linux

I recompiled PHP with mcrypt, openssl, and curl
phpinfo(): http://www.canadiandropshipping.com/hello.php3

Does anyone know why this ssl curl test fails?
http://www.canadiandropshipping.com...t/diag_curl.php
it hangs on curl_exec(). I posted the code below.

Here is the easyapache config I used. It compiled without errors. Did I miss something? Are there known issues with this combination of software?

/scripts/easyapache
+----------------------- Main Menu ------------------------+
¦ +------------------------------------------------------+ ¦
¦ ¦[ ] Apache 2 Support (Experimental & Very Broken, Not
¦ ¦[*] Expires Module
¦ ¦[*] Raise FD_SETSIZE to 16384 (System Wide)
¦ ¦[*] Prevent Users from reading other webroots
¦ ¦[*] Frontpage Module
¦ ¦[ ] Gzip Module (experimental)
¦ ¦[*] Raise HARD_SERVER_LIMIT
¦ ¦[ ] Perl Module (not required to run .cgi scripts/not
¦ ¦Php Module --->
¦ ¦[ ] PHP suEXEC Support
¦ ¦[*] Report Build Errors to cPanel
¦ ¦[ ] Reset Apache Config to Default (last resort)
¦ ¦[*] Rewrite Module
¦ ¦[ ] Skip Apache Build if up to date
¦ ¦[*] SSL Module
¦ ¦[*] suEXEC Module
¦ ¦[ ] Verbose Build (show configure and gcc output)
¦ +------------------------------------------------------+ ¦
+----------------------------------------------------------+



+-------------------- Php Module Menu ---------------------+
¦ +------------------------------------------------------+ ¦
¦ ¦[*] Php Module
¦ ¦ (*) Version 4.3.10
¦ ¦ ( ) Version 4.3.8
¦ ¦ ( ) Version 4.3.9
¦ ¦ ( ) Version 5.0.2 (TESTING)
¦ ¦ ( ) Version 5.0.3 (TESTING)
¦ ¦ (*) Bc Math
¦ ¦ (*) Calendar Support
¦ ¦ (*) Curl
¦ ¦ (*) Curl SSL Support
¦ ¦ (*) Dom XSLT
¦ ¦ ( ) Exif
¦ ¦ ( ) Flash
¦ ¦ (*) FTP
¦ ¦ (*) GD
¦ ¦ ( ) GetText
¦ ¦ ( ) Iconv (experimental)
¦ ¦ ( ) Imap Module
¦ ¦ ( ) Java (must already be installed, or install w
¦ ¦ ( ) Mb String
¦ ¦ (*) Mcrypt
¦ ¦ ( ) Memory Limit (experimental)
¦ ¦ ( ) Mhash
¦ ¦ ( ) Ming Support
¦ ¦ (*) Magic Quotes
¦ ¦ (*) Mysql Module
¦ ¦ (*) Openssl Support
¦ ¦ (*) Discard Path
¦ ¦ ( ) PDFlib (requires license for commerical use;
¦ ¦ (*) Pear
¦ ¦ ( ) Postgresql (will break 7.2.x or earlier, plea
¦ ¦ ( ) Pspell Module
¦ ¦ ( ) Sablot XSLT [may cause problems with chili!as
¦ ¦ ( ) SafeMode
¦ ¦ (*) Sockets
¦ ¦ ( ) Use System Mysql
¦ ¦ (*) Track Vars
¦ ¦ ( ) Freetype Support
¦ ¦ (*) Versioning
¦ ¦ ( ) WDDX
¦ ¦ ( ) XML RPC
¦ ¦ ( ) Zip
¦ ¦ (*) Zlib
¦ +------------------------------------------------------+ ¦
+----------------------------------------------------------¦
PHP Code:
<?
/*
file created on 2/23/2004 to test CURL
*/

function ssl_connect($url,$variables=0,$parse_variables=0,$
test=0,$timeout=30,$no_headers=0){
global $SC;
define(UMURL,$url);
define(UMTIMEOUT,$timeout);

// check for presence of CURL
if (!function_exists("curl_init")){
// only display CURL error message if it hasn't been displayed
before
if (!$SC['no_curl']) print "\n<!-- Squirrelcart Error: You are using a service which requires CURL, and it is not enabled on your web
server. -->";
$SC['no_curl'] = 1;
return;
}
// if URL has https in it, check for presence of OpenSSL

$ch = curl_init(UMURL);

// set some options for the connection
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT,UMTIMEOUT);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
if (strtoupper(substr(PHP_OS,0,3)) == 'WIN') {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // this line fixes
SSL communications on some Windows servers (IIS 5.0?)
}
//curl_setopt($ch,CURLOPT_VERBOSE,1);
// attach the data
//print "query is $query<br>";

// run the transfer
$result=curl_exec ($ch);
if(curl_errno($ch) > 0) echo "<p style='color: red'><b>cURL
ERROR#".curl_errno($ch).": ".curl_error($ch)." at ".__LINE__." in
".__FILE__."</b></p>";
curl_close ($ch);
return $result;
}
print "<html><head><title>CURL Test Page</title></head><body
style=\"font-family: verdana, helvetica, tahoma; font-size: 12pt\"><b>CURL
Test Page</b><br><br>To test a regular HTTP connection via curl to
http://www.ebay.com,
<br>
<a href=\"?method=normal\">click here</a><br><br>
";
print "To test a secure HTTPS (SSL) connection via curl to
https://adwords.google.com/select/
<br>
<a href=\"?method=secure\">click here</a><br>";
if ($HTTP_GET_VARS['method']) {
print "<br><b>If a page is displayed below, the test worked. Do not
worry about broken image tags. As long as you have some output from the page below the test is valid:</b><hr width=\"100%\" height=\"2\"><br><br>";

if ($HTTP_GET_VARS['method'] == "normal") $page = "http://www.ebay.com"; if ($HTTP_GET_VARS['method'] == "secure") $page =
"https://adwords.google.com/select/";
$page_data = ssl_connect($page);
print $page_data;
}

print "</body></html>";

?>


Jul 17 '05 #2

P: n/a
Hello Tex John,

The test URL is here:
http://www.canadiandropshipping.com/.../diag_curl.php
strange, the mailing list software seemed to abbreviated it.

How do I test if curl is compiled into apache?

Thanks for your help.

Chris
Jul 17 '05 #3

P: n/a

"Chris Fortune" <hey.spammer...ju******@job.org> wrote in message
news:hqt3e.127466$ZO2.112422@edtnps84...
Hello Tex John,

The test URL is here:
http://www.canadiandropshipping.com/.../diag_curl.php
strange, the mailing list software seemed to abbreviated it.

How do I test if curl is compiled into apache?

Thanks for your help.

Chris


This works fine on my box (where I just had PHP and Apache recompiled with
curl and openssl).

Well, the first one works so curl works. The other one times out so never
gets around to throwing the curl error. You can try upping your curl timeout
to see if you can get to an error, but I suspect that won't help. Smells
like a server problem.

Something else I would suggest you check is that that outgoing port is open
all the way to the net. Firewalls, routers....

Do you have any SSL certs correctly installed and running which would
indicate SSL was fully functional in Apache? Maybe you can get an idea or
two from here:

http://us2.php.net/manual/en/ref.openssl.php

You may need to switch to a server NG since it looks like PHP is ok unless
something funny is going on with your openssl install.
Jul 17 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.