Var finns php (köra php-script från terminalen)?

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

Var ligger php någonstans? Jag vill köra ett php-script från terminalen nämligen...

Svarar mig själv, ligger i usr/local/php/bin/.

Ett bra sätt att hitta program/kommandon man vet att man har är med hjälp av kommandot which. Du skriver which perl för att se sökvägen till perl till exempel. Kan vara bra i framtiden när man letar efter ett visst unix-program.

eller varför inte "whereis"

Tilläggas bör att man måste ange explicit att man vill ha stöd för att köra php-skript från kommandoraden när man kompilerar php, så har man inte gjort det kan man inte använda php från kommandoraden. Har för mig att det var flaggan "--with-cli" som man skulle ange när man körde configure-skriptet.

Ett litet problem om man skriver php-skript som ska köras på fler system än ens eget är att sökvägen till php inte är densamma på alla system (som den är med t.ex. perl). Om första raden i ditt php-shellscript ser ut så här:

#!/usr/local/php/bin/php -q

så kan det bli trassligt att köra skriptet som en exekverbar fil i andra system. Om du i stället tar hjälp av env så kan du använda skriptet som en exekverbar fil så länge php finns i path-variabeln. Då skriver du lämpligast så här i stället:

#!/usr/bin/env php -q

Det som händer då är att env söker igenom de program som är tillgängliga via path-variabeln tills den hittar php, för att sedan dra igång php. Något som gör saker desto trassligare är att php-programfilen heter "php4" i en del system, och då kan inte ens env vara till någon hjälp.

Citat:

Skrevs ursprungligen av Gabriel Falkenberg
Ett bra sätt att hitta program/kommandon man vet att man har är med hjälp av kommandot which. Du skriver which perl för att se sökvägen till perl till exempel. Kan vara bra i framtiden när man letar efter ett visst unix-program.

Testade jag först men det funkade inte...

Citat:

Skrevs ursprungligen av Samuel K
Då skriver du lämpligast så här i stället:

#!/usr/bin/env php -q

Det som händer då är att env söker igenom de program som är tillgängliga via path-variabeln tills den hittar php, för att sedan dra igång php. Något som gör saker desto trassligare är att php-programfilen heter "php4" i en del system, och då kan inte ens env vara till någon hjälp.

Jo, bra så länge det ligger på en UNIX-maskin. Nu när det skulle upp på webbhotellet visar det sig att det kör winnt och nu blir det ett helvete att hitta php.exe (ingen path här inte).

Kan inte fråga heller eftersom vi egentligen inte har php på hotellet och det inte ens går att få... Fast vi har det

Citat:

Skrevs ursprungligen av scooterbabe
Testade jag först men det funkade inte...

I så fall är problemet att php-programfilen inte är tillgänglig via path-variabeln. Tumregeln är alltså att om du kan starta programmet bara genom att skriva dess namn (utan att ange sökvägen) så kan du hitta programmet med which. Annars blir det att leta igenom filsystemet med locate eller find för att luska rätt på var programmet ligger...

  • Medlem
  • Tyresö
  • 2003-09-23 22:50
Citat:

Skrevs ursprungligen av johan dansk
eller varför inte "whereis"

locate(1) är min favorit. Men då måste du se till att locate.updatedb har körts någon gång. Dett görs från /etc/weekly. Kör det manuellt som root om inte /var/db/locate.database finns.

locate säker på filnamn och det händer flera gånger dagligen jag tänker "Var sjutton kan något som har med XX finnas tro?". En locate hittar allt direkt.

Citat:

Skrevs ursprungligen av DozePih
locate(1) är min favorit. Men då måste du se till att locate.updatedb har körts någon gång. Dett görs från /etc/weekly. Kör det manuellt som root om inte /var/db/locate.database finns.

locate säker på filnamn och det händer flera gånger dagligen jag tänker "Var sjutton kan något som har med XX finnas tro?". En locate hittar allt direkt.

bruker dock själv använda locate till mer genrell filsökning och whereis för mer binär relaterade sökningar

1
Bevaka tråden