Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Köra shell-script från php

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1

Jag har ett shell-script som jag vet fungerar som det ska.
Jag behöver köra det via php, alltså när vissa saker hänt ska php sparka igång skriptet.

Jag har testat exec och shell_exec men det fungerar inte.
safe_mode är avslaget.

Vad kan det vara då som sätter stopp för detta?

Servern det körs på är en Ubuntu server 12.04.

Massor kan gå fel, tex rättigheter, vad som finns i din path, att det är ett annat Shell, annan home directory etc

Det är bash jag kör.
Allt ligger i /var/www/
Jag utgår från /var/www/
Shell-scriptet ligger i "root".
Hämtar saker från mysql och filsystemet.

Kan det vara som så att du inte använt fullständiga sökvägar till kommandona du försöker köra i skriptet?

Edit: du säger att det ligger i "root", / då eller? Det är inte säkert att din webbserver har tillgång dit. Om du lägger det i /var/www istället och försöker köra det? Det kan vara som så att webbservern körs "chroot" i /var/www och då är / för webbservern rotkatalog.

"root" skrev som en syftning till /var/www som är webbserverns root.
Jag kör fulla sökvägar från "root".

Jag vet att det var ett illa valt ord eftersom root alltid är / men jag skrev inom "".

Så här ser raden ut:

exec('movereadyimages.sh');

Då ligger scriptet i /var/www/devsite/movereadyimages.sh
Samma ställe som php-filen som anropar det.

Har du "." i din path? Annars borde kommandot vara "exec('./movereadyimages.sh');"

Att lägga till ./ är inte lösningen. Tyvärr!
Ett felmeddelande vore inte fel men jag får nada. All annan kod fungerar utom just denna rad.

Är exec/shellexec avaktiverat i php.ini ?
Kolla disable_functions.

Kanske safe_mode är aktiverat, då kan bara script som ligger i safe_mode_exec_dir exekveras.
Scriptet du försöker köra är möjligt att exekvera? (chmod +x).

I ditt skript hänvisar väl du till bash genom #!/bin/bash? Har du en bin-katalog i din /var/www och bash installerat däri? Det kan ju vara så att den inte hittar bash.
Säger loggarna ingenting?

@keptang: Ja. Och de finns inte i disable_function.

@suddgummi: Du kan vara något på spåren.

Jag har tänk om hur jag skall göra detta och jag kommer skilja på php och shell-scripten.
Shell-skriptet kan läsa från databasen så det får vara den gemensamma punkten som ser till att de gör rätt saker.
Sedan får crontab hjälpa till också.

1
Bevaka tråden