login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP voert Shell script niet uit

Offline philipz - 24/12/2010 11:04 (laatste wijziging 24/12/2010 11:12)
Avatar van philipzNieuw lid Beste,

Ik wil via PHP enkele Shell commando's laten uitvoeren op mijn Freebsd. Dit is de code:
  1. <?php
  2.  
  3. $result=shell_exec('
  4. ls -l | gawk \'{printf $1}\'
  5. ');
  6.  
  7. echo $result;
  8.  
  9. ?>


Blijkbaar valt hij over gawk; als ik gawk vervang door awk werkt het wel. En via de command line werken die commando's natuurlijk ook.
Voor hetgeen ik wil doen heb ik gawk nodig (de code hierboven is vereenvoudigd).
Iemand een idee?

Groetjes,

Philip

Edit: de output is gewoon leeg; er komt niets terug

8 antwoorden

Gesponsorde links
Offline Stijn - 24/12/2010 13:28
Avatar van Stijn PHP expert Zou het niet kunnen zijn dat je current working directory (pwd) verkeerd staat?
Offline philipz - 24/12/2010 14:38
Avatar van philipz Nieuw lid
Stijn schreef:
Zou het niet kunnen zijn dat je current working directory (pwd) verkeerd staat?


Heb ook al het volledige path ingegeven maar ook zonder resultaat.
Memory verhogen in php.ini (gelezen op een forum) gaf ook niks.
Het vreemde is dat er geen error-message verschijnt; het lijkt gewoon alsof hij niks uitvoert.

debuggen mogelijkheden van shell_exec zijn ook niet zo uitgebreid; ik weet ook niet of ik ergens op de server (FreeBSD) een error kan terugvinden?
Offline avdg - 24/12/2010 16:03
Avatar van avdg PHP gevorderde Werken andere commando's in php? Errors aangezet? Mag php wel in de cli commando's uitvoeren?
Offline philipz - 24/12/2010 16:18
Avatar van philipz Nieuw lid Andere commando's werken inderdaad. Als ik bijv gewoon de ls -l uitvoer krijg ik de volledige directory terug.
Ik heb alle errors aangezet:
error_reporting(E_ALL);
Er komt geen foutmelding terug 
Offline Stijn - 24/12/2010 17:50
Avatar van Stijn PHP expert En als je nu volgende doet:

  1. ls -l | gawk '{printf $1}' > test.txt


En dan kijk je eens of er inhoud staat in die test.txt file.
Offline philipz - 24/12/2010 22:27
Avatar van philipz Nieuw lid
Stijn schreef:
En als je nu volgende doet:

[..code..]

En dan kijk je eens of er inhoud staat in die test.txt file.


Hij genereert die textfile niet eens.
Als ik gawk vervang door awk werkt het wel (dan is er een textfile met juiste output), maar zoals ik al zei ik heb gawk nodig (moet een hexa -> decimaal conversie doen en gawk kan dat out of the box).

Het lijkt erop dat hij de regel met gawk gewoon negeert?
Offline Stijn - 25/12/2010 01:38
Avatar van Stijn PHP expert En als je volgende uitvoert, krijg je dan iets

  1. gawk '{printf $1}' < /etc/passwd
Offline philipz - 27/12/2010 11:01
Avatar van philipz Nieuw lid
Stijn schreef:
En als je volgende uitvoert, krijg je dan iets

[..code..]

Nope, nog steeds helemaal niets. Maar ook hier alweer, als ik gawk vervang door awk dan doet hij het wel, dan krijg ik de juiste output.
Ik dacht eerst aan een path-issue, maar zelfs als ik het hele path naar gwak meegeef komt er niets terug.
En permissies; ik heb iedereen permissies gegeven om gawk uit te voeren...

Groetjes
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.186s