Gå til innhold

[Løst]Hvordan setter man path-variabelen til php i en konfigurasjonsfil?


Anbefalte innlegg

Jeg vet ikke om dette er riktig forum for dette spørsmålet, men jeg prøver!

 

Jeg skal bruke exec() kommandoen i php til å kjøre kommandoen "convert" i Imagemagick. Jeg bruker wamp, så jeg har installert Imagemagick i Windows.

 

Problemet mitt er at det ikke er Imagemagick sin convert som blir kjørt, men Windows sin convert.

 

Jeg kan løse problemet ved å sette eksplisitt path for convert, men da vil jeg måtte endre den når jeg skal laste disse filene til server, jeg hadde håpet å kunne gjøre dette på en smidigere måte.

 

Jeg har satt path variabelen i Windows, slik at kommandoen convert kjører riktig fra kommandolinje, men altså ikke i php.

Jeg har brukt: get_include_path() for å sjekke at pathen til Imagemagick ligger her.

 

Noen som vet hva jeg har oversett?

Endret av magicgunnar
Lenke til kommentar
Videoannonse
Annonse

Her kommer en oppdatering:

 

Etter 3-4 timer med prøving, feiling og googling, fant jeg at ved å legge til linjen:

 

putenv("PATH=" . $_ENV['PATH'] . get_include_path());

 

Så funket det!

 

Jeg skjønner altså at problemet mitt ikke er at det ligger feil verdi i include_path, men i path.

 

Hvis jeg prøver å skrive ut verdien i $_ENV['PATH'] så er den tom.

Det jeg heller ikke skjønner er hvorfor det å kjøre kommandoen getenv('path') på et eller annet tidspunkt gjør at skriptet feiler.

Edit: Ved sette inn PATH_SEPARATOR så ga ikke lenger getenv en feil:

putenv("PATH=" . $_ENV['PATH'] . PATH_SEPARATOR . get_include_path());

 

Jeg har nå prøvd å sette path = "C:\www\ImageMagick-6.3.9-Q16" i php.ini, men det resultarer bare i at pathen blir satt til det som står i path-variabelen i Windows, men med C:\www\ImageMagick-6.3.9-Q16 etter alle de windows-spesifikke folderne.

 

Er det i apache sin konfigurasjon jeg må sette path? Jeg vil nemlig gjerne få satt path i konfigurasjonsfilene istedenfor å måtte gjøre det i scriptet, som potensielt kan føre til problemer når dette skal kjøres et annet sted enn localhost.

 

Edit: Dette var litt flaut, men det viste seg at jeg måtte restarte windows for at endringen i path-variabelen skulle tre i kraft for apache. Jeg trodde det holdt å restarte apache, særlig fordi en restart av cmd.exe var alt som skulle til for å gjøre at denne brukte den nye pathen.

Endret av magicgunnar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...