php env-Variable

eyz

eyz

Aktives Mitglied
Thread Starter
Dabei seit
29.12.2003
Beiträge
180
Reaktionspunkte
0
Hallo

Also ich hab PHP5.0.3 installiert (/usr/local/php5) und PHP4.3.2 (/usr/local/php).

Wenn ich jetzt php -v in das Terminal tippe, kommt PHP 4.3.2 (cli). Jedoch sagt mir phpinfo(), dass die Version 5.0.3 am laufen ist.

Wie kann ich die ?Env-Variable? im Terminal aktualisieren?

mfg eyz
 
Ich nehme an Du möchtest PHP für Skripte im Terminal verwenden?
Für Apache ist das nämlich gar nicht von Belang! Für Terminal gilt die PATH-Variable wird nach Programmen abgesucht. Sprich alle dort angegebenen Verzeichnisse in genau der Reihenfolge. Du könntest also entweder den Pfad zu Deinem PHP in der PATh-Variablen vor dem zum Default-PHP legen oder Du gehst einen praktikableren Weg:

In Shellskripten muß ohnehin der Interpreter angegeben werden. Beginnst Du die erste Zeile mit einem sogenannten Bang und gibtst den Interpreter direkt mit absolutem Pfad an:

PHP:
#! /usr/local/php5/bin/php

kannst Du Dein Skript ( sofern es chmod 755 ist) in der shell einfach per

PHP:
./skriptname

starten. Das OS schaut dann in der ersten Zeile nach dem Interpreter und nähme dann ja automatisch PHP5. Wie gesagt, für Apache ist das unnötig, weil in der httpd.conf bereits der Pfad zur zu verwendenden PHP-Version eingetragen ist. Die andere Version liegt dann halt brach.
 
Danke für die Antwort!

Wie kann ich die PATH-Variable verändern?

Denn, um zb.
curl http://go-pear.org/ | sudo php
auszuführen und damit pear zu installieren ist es nötig, dass die PATH-Variable stimmt.
 
die PATH-Variable wird in /etc/profile definiert.

ABER VORSICHT: Das System sucht damit ebenfalls seine Befehle!!!

Du solltest also keinesfalls vorhandene Pfadangaben entfernen. Lediglich den Pfad zu PHP5 soweit nach vorne ziehen wie nötig. Ein Backup vor der Änderung ist also Pflicht!
Für das Ändern der Datei mußt Du nat. root-Rechte haben , ein sudo sh ist also nötig!
 
wegus schrieb:
die PATH-Variable wird in /etc/profile definiert.

ABER VORSICHT: Das System sucht damit ebenfalls seine Befehle!!!

Du solltest also keinesfalls vorhandene Pfadangaben entfernen. Lediglich den Pfad zu PHP5 soweit nach vorne ziehen wie nötig. Ein Backup vor der Änderung ist also Pflicht!
Für das Ändern der Datei mußt Du nat. root-Rechte haben , ein sudo sh ist also nötig!

Ist vielleicht besser, sich im $HOME eine Datei .bashrc anzulegen und dort

export PATH=$PATH":/usr/local/php5"

reinzuschreiben.

/usr/local/php5 -> ggf. ersetzen durch Pfad zur PHP5-Binary
 
Code:
eyzns-Computer:/etc eyzn$ cat /etc/profile
# System-wide .profile for sh(1)

PATH="/bin:/sbin:/usr/bin:/usr/sbin"
export PATH

[ -r /etc/bashrc ] && source /etc/bashrc
## setloginpath added /usr/local/bin start at Sat Jan 29 09:32:15 CET 2005
## Do not remove the previous line
if [ `whoami` != "root" ]
then
  PATH="$PATH:/usr/local/bin"
  export PATH
fi
## Do not remove the next line
## setloginpath added /usr/local/bin end at Sat Jan 29 09:32:15 CET 2005
## TeX modifications start at Sat Jan 29 10:45:36 CET 2005
## Do not remove the previous line
if [ `whoami` != "root" ]
then
  PATH="$PATH:/usr/local/teTeX/bin/powerpc-apple-darwin-current"
  export PATH
fi
## Do not remove the next line
## TeX modifications end at Sat Jan 29 10:45:36 CET 2005

Code:
eyzns-Computer:/etc eyzn$ cat ~/.bashrc 
export PATH=/usr/local/php5:/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/teTeX/bin/powerpc-apple-darwin-current:/usr/X11R6/bin':/usr/local/php5'

In der ~/.bashrc hab ich voran "/usr/local/php5" gesetzt, jedoch hat es nicht die gewünschte Auswirkungen :/

Code:
eyzns-Computer:/etc eyzn$ php -v
PHP 4.3.2 (cli) (built: Feb 16 2004 19:54:11)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
 
Hi,

prüfe mal bitte, wo genau Deine PHP5-Binary liegt (z.B. /usr/local/php5/bin/)
 
Code:
eyzns-Computer:~ eyzn$ whereis php
/usr/bin/php

eyzns-Computer:~ eyzn$ ls -l /usr/local/php5/bin | grep php
-rwxr-xr-x  1 root  staff  10217996 18 Dec  2004 php
-rwxr-xr-x  1 root  staff      1479 18 Dec  2004 php-config
-rwxr-xr-x  1 root  staff       593 18 Dec  2004 phpextdist
-rwxr-xr-x  1 root  staff      3092 18 Dec  2004 phpize
 
eyz schrieb:
Code:
eyzns-Computer:~ eyzn$ whereis php
/usr/bin/php

eyzns-Computer:~ eyzn$ ls -l /usr/local/php5/bin | grep php
-rwxr-xr-x  1 root  staff  10217996 18 Dec  2004 php
-rwxr-xr-x  1 root  staff      1479 18 Dec  2004 php-config
-rwxr-xr-x  1 root  staff       593 18 Dec  2004 phpextdist
-rwxr-xr-x  1 root  staff      3092 18 Dec  2004 phpize

Na also, so muss also der Pfad in Deiner $PATH

/usr/local/php5/bin

lauten
 
Code:
eyzns-Computer:~ eyzn$ cat /etc/profile
# System-wide .profile for sh(1)

PATH="/bin:/sbin:/usr/local/php5/bin:/usr/bin:/usr/sbin"
export PATH

[ -r /etc/bashrc ] && source /etc/bashrc
## setloginpath added /usr/local/bin start at Sat Jan 29 09:32:15 CET 2005
## Do not remove the previous line
if [ `whoami`!= "root" ]
  PATH="$PATH:/usr/local/bin"
  export PATH
fi
## Do not remove the next line
## setloginpath added /usr/local/bin end at Sat Jan 29 09:32:15 CET 2005
## TeX modifications start at Sat Jan 29 10:45:36 CET 2005
## Do not remove the previous line
if [ `whoami` != "root" ]
then
  PATH="$PATH:/usr/local/teTeX/bin/powerpc-apple-darwin-current"
  export PATH
fi
## Do not remove the next line
## TeX modifications end at Sat Jan 29 10:45:36 CET 2005

Code:
eyzns-Computer:~ eyzn$ cat ~/.bashrc 
export PATH=/usr/local/php5/bin:/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/teTeX/bin/powerpc-apple-darwin-current:/usr/X11R6/bin':/usr/local/php5'

Code:
eyzns-Computer:~ eyzn$ echo $PATH
/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/teTeX/bin/powerpc-apple-darwin-current:/usr/X11R6/bin

?! also ich hab gedacht, dass mit der /etc/profile oder eben mit der ~/.bashrc die $PATH-Variable verändert werden kann.

Ich denke ich sollte mich bezüglich der $PATH-Variable noch etwas genauer informieren.
 
........Nach dem Neustarten der Console war ein Wunder geschehen :)
 
ähem, das ist kein Wunder! profile und bashrc werden nur beim Start der Console ausgeführt. Das hätte ich vielleicht *hüstel* dazusagen sollen!?


Sorry
 
Jetzt merk ichs mir umso besser :)

Danke für die super Hilfe!
 
Zurück
Oben Unten