php curl - SLES11
ik zit te stoeien met de nieuwe SLES server.
php curl werkt naar behoren vanaf commandline, echter via browser blijft ie hangen en gaat in timeout zonder foutmelding of resultaat
Ik weet niet goed hoe ik dit kan debuggen?
ahv:
Code (php)
1
ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'
Kan ik vertellen dat apache als 'wwwrun' draait.
Nadat ik heb gedaan en nogmaals de script vanaf CLI draai, zie ik idd dat wwwrun op een of andere reden curl niet wil draaien, gewoon timeout zoals de browser al vertoonde.
Zelf na de ownership aan te passen naar: wwwrun:www en daarna zelfs nog chmod 7777 werkt het nog steeds niet.
Iemand enig idee?
Gewijzigd op 20/03/2017 10:34:41 door Dennis WhoCares
Het lijkt mij dat je vanuit een browser namelijk altijd langs een HTTP-daemon moet.
nee ik bedoel het php script, dat curl_* commands bevat :)
Heb je toevallig uitgaande iptables regels staan die gebruik vanaf deze user verbieden?
krijg ik dir te zien met iptables -L ?
anyways firewalld is uitgeschakeld, zal zo ff kijken ff lunchpauze
Je kan dit inderdaad met iptables -L bekijken, en op een SLES systeem staan deze regels normaliter ook in iets als /etc/sysconfig/iptables.
iptables is geheel leeg.
Ook de SuSEfirewall2 is uitgeschakeld.
Heb gelezen dat de CLI php anders is dan de apache php.
Curl is enabled:
cURL support enabled
Curl error number is 7, (couldn't connect)
disable_functions
disable_classes
zijn allebij leeg in php.ini
Gewijzigd op 20/03/2017 12:23:50 door Dennis WhoCares
Kan je wel iets cURL'en op je eigen 'localhost'?
pfffft wordt zo moe van die gasten
@Arien, inderdaad kan ik localhost wel met curl oppikken (vanaf de apache user)
Ook de 'frontend' server. Dus ben bang dat er geen probleem met curl of de apache user is. :)
Toevoeging op 20/03/2017 12:55:11:
Maar dan nog vind ik het raar, vanaf CLI werkt het, maar via apache niet meer..
(naar de host waar ik heen wil dan)
Toevoeging op 20/03/2017 13:31:31:
Krijg trouwens in CLI wel een 'warning'
Code (php)
1
2
2
PHP Warning: Unknown: open(/var/lib/php5/sess_p0vv445dbjg0a3g0iavdk0k2rfp5jiknh5t9j00nh1srb83j34d0, O_RDWR) failed: Permission denied (13) in Unknown on line 0
PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0
PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0
Gewijzigd op 20/03/2017 12:37:28 door Dennis WhoCares
Het enige dat ik zou kunnen bedenken is dat je stiekem op een virtuozzo achtige omgeving zit, maar dat zou je geweten hebben gok ik. Je session save path is heeft niet voldoende rechten om je session files op te slaan.
het is een VMware instance, idd
de OS is geleverd en valt onder SLA van de DCde rest is aan ons zelf.
Dan kun je inderdaad te maken hebben met een managed firewall die buiten je instantie geplaatst is maar wel kan filteren op user. Ze maken het daardoor niet makkelijker om problemen te pinpointen. Teruglezend vind ik de uptime garantie ook niet erg bijzonder, helemaal gezien het om een vmware instantie gaat die je eenvoudig naar andere hardware kan migreren. Maar goed, dat is gewoon een mening die verder niet van toepassing is op het topic zelf.
vanaf mijn eigen shell op mijn username, voert het script gewoon uit zoals het zou moeten doen ......
Ik heb /etc/apache2/uid.conf nog aangepast, naar mijn eigen username en group.
Helaas heeft het geen effect gehad
Maar je hebt na die wijziging wel Apache even opnieuw aangeslingerd?
ik heb idd sudo /etc/init.d/apache2 stop
en
/etc/init.d/apache2 start
gedaan.
test.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
error_reporting(E_ALL);
$ch = curl_init("http://google.com"); // initialize curl handle
url_setopt($curlhandle, CURLOPT_VERBOSE, true);
$data = curl_exec($ch);
print($data);
?>
error_reporting(E_ALL);
$ch = curl_init("http://google.com"); // initialize curl handle
url_setopt($curlhandle, CURLOPT_VERBOSE, true);
$data = curl_exec($ch);
print($data);
?>
vanaf shell : php test.php
geeft mij terug:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
* About to connect() to proxy XXX.XXX.XXX.XXX port 80 (#0)
* Trying XXX.XXX.XXX.XXX... * connected
* Connected to 1XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) port 80 (#0)
[b]* Server auth using Basic with user 'DennisWhoCares'[/b]
> GET http://google.com HTTP/1.1
Authorization: Basic *************
Host: google.com
Accept: */*
Proxy-Connection: Keep-Alive
Content-type: application/json
< HTTP/1.1 302 Found
< Server: Oracle-iPlanet-Web-Proxy-Server/4.0
< Content-length: 258
< Content-type: text/html; charset=UTF-8
< Cache-control: private
< Location: http://www.google.de/?gfe_rd=cr&ei=fOfPWNyaFtT08Afk65KQDg
< Date: Mon, 20 Mar 2017 14:30:20 GMT
< Via: 1.1 proxy-S109155-proxy
< Proxy-agent: Oracle-iPlanet-Web-Proxy-Server/4.0
<
* Connection #0 to host XXX.XXX.XXX.XXX left intact
0<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.de/?gfe_rd=cr&ei=fOfPWNyaFtT08Afk65KQDg">here</A>.
</BODY></HTML>
* Closing connection #0
* Trying XXX.XXX.XXX.XXX... * connected
* Connected to 1XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) port 80 (#0)
[b]* Server auth using Basic with user 'DennisWhoCares'[/b]
> GET http://google.com HTTP/1.1
Authorization: Basic *************
Host: google.com
Accept: */*
Proxy-Connection: Keep-Alive
Content-type: application/json
< HTTP/1.1 302 Found
< Server: Oracle-iPlanet-Web-Proxy-Server/4.0
< Content-length: 258
< Content-type: text/html; charset=UTF-8
< Cache-control: private
< Location: http://www.google.de/?gfe_rd=cr&ei=fOfPWNyaFtT08Afk65KQDg
< Date: Mon, 20 Mar 2017 14:30:20 GMT
< Via: 1.1 proxy-S109155-proxy
< Proxy-agent: Oracle-iPlanet-Web-Proxy-Server/4.0
<
* Connection #0 to host XXX.XXX.XXX.XXX left intact
0<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.de/?gfe_rd=cr&ei=fOfPWNyaFtT08Afk65KQDg">here</A>.
</BODY></HTML>
* Closing connection #0
Op de browser krijg ik alleen maar error 7.
Ik zie dit nu voor t eerst en volgens mij moet ik dus proxy auth toevoegen aan curl ....
Hoe kom ik achter dit wachtwoord? Of is dit mijn eigen wachtwoord van de shell?
Toevoeging op 20/03/2017 15:41:35:
Yes het werkt nou!
Code (php)
1
2
3
4
2
3
4
curl_setopt($curl, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($curl, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($curl, CURLOPT_PROXY, $proxy_ip);
curl_setopt($curl, CURLOPT_PROXYUSERPWD, $userPass); //$userpass = 'username:password';
curl_setopt($curl, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($curl, CURLOPT_PROXY, $proxy_ip);
curl_setopt($curl, CURLOPT_PROXYUSERPWD, $userPass); //$userpass = 'username:password';
SOLVED! Wauw wat een gedoe.. Iedereen bedankt voor de reacties en tips
Gewijzigd op 20/03/2017 15:34:49 door Dennis WhoCares