Permalänk
Medlem

PATH i ubuntu

Jag utforskar Spotifys API och har skrivit ett program som laddar ner spellistor och dess innehåll. Allt fungerar bra så länge jag anropar programmet från terminalen (bash?). När jag istället anropar programmet från Apache via FCGI kan inte spellistorna laddas. Jag misstänker att det har att göra med hur PATH är satt.

Jag har i terminalen anropat

source pkg

där pkg är en fil som innehåller

export PKG_CONFIG_PATH="/home/andreas/Downloads/libspotify-0.0.3-linux6-i686/lib/pkgconfig/libspotify.pc.in"

Nu kommer jag ut på djupt vatten där jag inte vet vilka termer jag ska använda, men... Sätts denna PATH för alla miljöer, inklusive den som Apache httpd använder, eller är de bara för bash-miljön?

Permalänk
Medlem

Utan att vara helt säker så skulle jag vilja påstå att export är "system-wide" så felet ligger nog inte där.
Har du kollat så att apache får köra ditt program?

I standardinstallationen av apache så körs den ju av en begränsad användare(www-data).

Kollat apaches loggar?

Permalänk
Medlem

Apaches accesslogg ger HTTP status kod 200 (OK med andra ord). Ingenting läggs till i error-loggen.
Programmet körs igång, det ser jag på loggarna jag matar ut från programmet jag skrivit. Däremot hämtas inte innehållet i spellistorna.
Har för säkerhets skull provat att chmod:a programmet i apaches fcgi-bin-mapp till 0777, men det gör ingen skillnad.

Permalänk
Medlem

Jag gjorde en test på min maskin och nej, variablerna satta i bash går INTE att komma åt via apache.

EDIT:
Nu är även jag ute på djupt vatten men du kan kanske prova med php:s putenv() eller om cgi har någon motsvarighet.

Permalänk
Medlem

Okej!
Jag provade att lägga till följande i httpd.conf (och startade naturligtvis om httpd)
SetEnv PKG_CONFIG_PATH /home/andreas/Downloads/libspotify-0.0.3-linux6-i686/lib/pkgconfig

Programmet körs dock fortfarande inte som det ska. Hur kontrollerar man vilka variabler som är satta för apache?

Permalänk
Medlem

Har du så du kan köra PHP?
Isåfall är det enklast att köra t.ex print(system('export'));

Permalänk
Medlem

det dära lär inte ha något med att du inte kan köra programmet.
har du testat köra programmet med sökvägen? /usr/local/path/till/programmet/spotify ?

Permalänk
Medlem

pkg-config är endast ett hjälpmedel till för att underlätta vid kompileringen av program. Det är inget verktyg som du behöver för att köra programmet.

Vill du tvunget ändra bland miljövariablerna så borde det inte vara något hinder att göra det innefrån själva programmet. Varje tråd/process får en egen uppsättning variabler.