0800 - 899 899 9
(K o s t e n l o s)
Mo - Fr  09:00 - 18:00 Uhr


Suche


Alphabetischer Index


Hilfe :: Hosting :: Allgemein


Wie lautet der Pfad zu Perl?

Wie lautet der Pfad zu Perl?

Bei der Implementierung verschiedener Perl-/ CGI-Scripte muss am Dateianfang der Perl Pfad wie folgt angegeben werden.

#![Pfad von Perl]

Auf allen PixelX Servern ist Perl immer in dem identischen Pfad zu finden.

/usr/bin/perl

Daraus ergibt sich folgender Dateianfang.

#!/usr/bin/perl

Der Pfad von Perl kann aber auch mit verschiedenen anderen Möglichkeiten ermittelt werden.


Möglichkeit 1 - whereis

Der Befehl whereis ermöglicht es in einer Shell nach dem angegeben Kommando in den gebräuchlichen Programm-Verzeichnissen zu suchen und den kompletten Pfad dieses Kommandos auszugeben.

Theorie:    whereis name
Eingabe:   whereis perl
Ausgabe:  /usr/bin/perl



Möglichkeit 2 - which

Der Befehl which ermöglicht es in einer Shell den vollständigen Pfad eines Befehles auszugeben.

Theorie:   which name

Eingabe:  which perl

Ausgabe: /usr/bin/perl



Möglichkeit 3 - locate

Mit dem Befehl updatedb ist es möglich eine lokale Datenbank zu erstellen in dem alle vorhanden Verzeichnisse aufgenommen werden.
Der Befehl locate durchsucht diese Datenbank dann nach dem Speicherort des Suchbegriffs.
Um unnötige Ausgaben von locate zu entfernen, wird der Befehl grep benutzt, dieser durchsucht die Ausgabe nach einer bestimmten Zeichenfolge, in diesem Fall „/perl“.

Theorie:    updatedb
                 locate name
Eingabe:   updatedb
                 locate perl | grep „/perl&“

                
Ausgabe:  /usr/bin/perl


 
Möglichkeit 4 - Perlscript

Eine weitere Möglichkeit den Perl Pfad zu ermitteln, ist das Erstellen eines eigenen Perlscripts.

Folgendes muss in dem Perlscript enthalten sein.

for $key (sort keys %ENV)
{
        print "$key = $ENV{$key}n";
}


Mit perl perlscript.pl wird das Perlscript in einer Shell ausgeführt.

Das Perlscript gibt mehrere Werte aus, unter dem Wert VERSIONER_PERL_VERSION ist auch der Pfad zu Perl angegeben.

Es ist auch möglich das Perlscript über Php auf zu rufen.
Wie das funktioniert wird unter Möglichkeit 6 – Script 3 erklärt.


Möglichkeit 5 - find

Der Befehl find hilft bei der Suchen von Dateien und Verzeichnissen, dabei wird das komplette Dateisystem durchsucht. Um unnötige Ausgaben von find zu entfernen, wird der Befehl grep benutzt, dieser durchsucht die Ausgabe nach einer bestimmten Zeichenfolge, in diesem Fall „/perl“.

Theorie:    find name
Eingabe:   find / -name "perl" -type f | grep "/perl$"
                
Ausgabe:  /usr/bin/perl



Möglichkeit 6 – PHP-Script

Falls Sie keine Möglichkeit haben auf die Shell zu zugreifen besteht auch die Möglichkeit mit einem oder mehreren Php-Scripten zu arbeiten.

Für die folgenden Scripte sind 2 Befehle besonders wichtig zum einen wäre dies exec welches ein externes Programm ausführt und passthru welches ebenfalls eine externes Programm ausführt und zusätzlich dessen Ausgabe anzeigt.

Für die hier angegeben Scripte muss der save_mode deaktiviert sein.

Script 1

In dem ersten Beispielscript wird Möglichkeit 1 behandelt.

Theorie:

echo BEFEHL('whereis perl');
?>


Sie können das Script mit beiden oben genannten Befehlen erzeugen.
Beides wird aber eine identische Ausgabe liefern.

Praxis:

echo exec('whereis perl');
?>
 
echo passthru('whereis perl');
?>


Nachdem Sie das Php-Scripte ausgeführt haben erhalten Sie z.B. folgende Ausgabe:

perl: /usr/bin/perl /etc/perl /usr/lib/perl /usr/local/lib/perl /usr/share/perl


Wobei /usr/bin/perl der Perl Pfad ist.


Script 2

In dem zweiten Beispielscript wird die Idee aus Möglichkeit 2 genutzt.

Theorie:

echo BEFEHL('which perl');
?>


Auch in diesem Beispielscript können Sie beide oben genannten Befehle nutzen um zur Ausgabe zu gelangen.

Praxis:


echo exec('which perl');
?>


echo passthru('which perl');
?>


Als Ausgabe liefern beide Scripte:

/usr/bin/perl



Script 3

Sie erstellen das selbe Perlscript wie oben in Möglichkeit 4 beschrieben und erstellen zusätzlich ein Php-Script mit folgendem Inhalt.

Theorie:


echo BEFEHL('perl perlinfo.pl');
?>


Auch in diesem Fall können Sie die beiden Befehle exec oder passthru benutzen.
Doch dieses mal unterscheiden sich die Ausgaben der Befehle leicht.

Praxis exec:

echo exec('perl perlinfo.pl');
?>


Als Ausgabe erhalten Sie im Falle eines PixelX Servers.

_ = /usr/bin/perl


Wobei /usr/bin/perl der Perlpfad ist.

Praxis passthru:

echo passthru('perl perlinfo.pl');
?>


Passthru liefern in diesem Fall eine komplexere Ausgabe, welche aber auch das richtige Ergebnis liefert.

HOME = /root LANG = C LANGUAGE = C LOGNAME = root PATH = /bin:/usr/bin:/sbin:/usr/sbin PWD = /home/www/web/html SHELL = /bin/sh SHLVL = 5 _ = /usr/bin/perl


Interessant ist dabei nur der letzte Teil, der wieder identisch ist mit der Ausgabe von exec.

_ = /usr/bin/perl


/usr/bin/perl ist dementsprechend wieder der Pfad von Perl.


Damit Sie die Php-Scripte erfolgreich ausführen können müssen sich beide Scripte im selben Ordner befinden.


Script 4

Im letzten Beispielscript wird Möglichkeit 5 als Phpscript umgesetzt.

Theorie:

echo BEFEHL('find / -name "perl" -type f | grep "/perl$"');
?>


In diesem Script können Sie wieder exec oder passthru benutzen.

Praxis:

echo exec('find / -name "perl" -type f | grep "/perl$"');
?>

echo passthru('find / -name "perl" -type f | grep "/perl$"');
?>


Als Ausgabe erhalten Sie in beiden Fällen.

/usr/bin/perl