[PHP] Probleem met exec-functies (Aspell)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 13-09 17:10
Ik zit met een PHP probleem. Enkele dagen succesvol P- en Aspell geinstalleerd, alles werkt keurig, maar nu wil ik een systeem maken waarmee ik 'automatisch' woorden kan toevoegen. Normaal zijn hier 2 ssh-commands voor nodig, maar ik wou het via de exec-functies van PHP proberen.

Dit werkte niet, hij geeft keurig aan dat het succesvol zou zijn, maar geeft geen output regels terug en het bestand dat hij had moeten aanmaken bestaat niet. Dit doe ik vie de volgende code:

code:
1
2
3
4
5
6
<?php
$command = "aspell --lang=nl create master ./nl < words.dat";
exec( $command, $a, $b );
echo "<pre>";
print_r( $a );
?>


Andere executables zoals nslookup doet hij perfect, maar zodra ik de aspell aanroep gebeurt er niets (Het words.dat bestand ook staat in /usr/bin, en in een goed formaat). Dezelfde commands in putty (ssh) werken overigens wel.

Iemand een idee hoe ik dit kan oplossen? Ik zat zelf al te denken dat het mischien met de premissies te maken heeft, maar ik heb geen idee waar ik dit kan instellen. PHP draait niet in safe-mode.

Mvg,
Peter

Acties:
  • 0 Henk 'm!

  • Rac-On
  • Registratie: November 2003
  • Niet online
.Peter schreef op donderdag 10 maart 2005 @ 21:37:
Ik zit met een PHP probleem. Enkele dagen succesvol P- en Aspell geinstalleerd, alles werkt keurig, maar nu wil ik een systeem maken waarmee ik 'automatisch' woorden kan toevoegen. Normaal zijn hier 2 ssh-commands voor nodig, maar ik wou het via de exec-functies van PHP proberen.

Dit werkte niet, hij geeft keurig aan dat het succesvol zou zijn, maar geeft geen output regels terug en het bestand dat hij had moeten aanmaken bestaat niet. Dit doe ik vie de volgende code:

code:
1
2
3
4
5
6
<?php
$command = "aspell --lang=nl create master ./nl < words.dat";
exec( $command, $a, $b );
echo "<pre>";
print_r( $a );
?>


Andere executables zoals nslookup doet hij perfect, maar zodra ik de aspell aanroep gebeurt er niets (Het words.dat bestand ook staat in /usr/bin, en in een goed formaat). Dezelfde commands in putty (ssh) werken overigens wel.

Iemand een idee hoe ik dit kan oplossen? Ik zat zelf al te denken dat het mischien met de premissies te maken heeft, maar ik heb geen idee waar ik dit kan instellen. PHP draait niet in safe-mode.

Mvg,
Peter
hoe heb je het via putty uitgevoerd? Als gewone user of als root? Php draait doorgaans als dezelfde user als apache (www-data vaak) en die heeft misschien niet genoeg rechten. Probeer het commando eens te proberen als je www-data bent.

btw: ik ken het progsel niet, dus weet niet wat het doet/wat voor rechten er nodig zijn

doet niet aan icons, usertitels of signatures


Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 13-09 17:10
Via SSH ben ik ingelogd als root interdaad. Heb je mischien enig idee hoe ik het zo kan instellen dat ook de www-data (en/of testdomein, de gebruikersnaam van de site waar het scriptje op staat) gebruiker het mag uitvoeren?

__Edit__
P-/Aspell is een module voor PHP, een spellchecker. Het is echt ideaal om mee te werken, omdat het een redelijk grote tekst binnen een paar seconde doorzocht heeft, met veel suggesties voor foute woorden. Het enige nadeel is het woordenboek systeem, omdat je een woordenboek moet compilen om te kunnen gebruiken. Ik ben nu bezig met een redelijk groot CMS-Systeem, waarin dit automatisch moet kunnen. (Er zijn ook wel andere oplossingen, maar die zijn meteen heel wat trager).

[ Voor 53% gewijzigd door Peter op 10-03-2005 21:51 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dan zul je chgrp of chown moeten gebruiken om rechten in te stellen. Pas wel op dat je www-data niet alle root-rechten geeft ofzo. :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Rac-On
  • Registratie: November 2003
  • Niet online
nadat je bent ingelogd als root doe je het volgende:
ps auxf om te kijken als welke user apache draait
su www-data om als user www-data verder te werken (of een andere user)

ik denk dat apache geen rechten heeft om /usr/bin/words.dat te lezen, maar dat is een gokje...

doet niet aan icons, usertitels of signatures


Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 13-09 17:10
Klopt, de gebruiker had geen rechten en er was een path-probleem, beide opgelost nu :)

Hardstikke bedankt, alles werkt weer naar behoren! _/-\o_
Pagina: 1