basti_p: Welches bin-Verzeichnis

Hallo,

auf einem Linux-Webserver gibt mir PHP mit getenv("PATH") die Pfade "bin", "usr/bin" und "usr/local/bin" aus. Wenn ich ausführbare Dateien hinzufügen möchte, um diese mit exec() auszuführen: in welches der 3 bin-Verzeichnisse sollte ich diese verfrachten - ist das egal oder gibt es da Vor- bzw. Nachteile?

Vielen Dank,
Grüße Basti

  1. Moin Moin!

    auf einem Linux-Webserver gibt mir PHP mit getenv("PATH") die Pfade "bin", "usr/bin" und "usr/local/bin" aus. Wenn ich ausführbare Dateien hinzufügen möchte, um diese mit exec() auszuführen: in welches der 3 bin-Verzeichnisse sollte ich diese verfrachten - ist das egal oder gibt es da Vor- bzw. Nachteile?

    /bin und /usr/bin sind für das Betriebssystem bzw. die Distribution vorgesehen, /usr/local/bin ist für eigene, unabhängig von der Distribution installierte Software vorgesehen, dort hat keine Distribution Software hin zu packen. Siehe FHS.

    Alternativ kannst Du auch Verzeichnisse unterhalb von /opt benutzen, siehe FHS. Dann mußt Du aber entweder die PATH-Einstellungen von/für PHP anpassen (php.ini, httpd.conf, ...) oder die Programme mit vollständigem Pfad aufrufen (exec("/opt/foo-bar/bin/baz-o-matic");)

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Hallo,

      alles klar, vielen Dank für die Erläuterungen!

      Grüße Basti

  2. Tach!

    auf einem Linux-Webserver gibt mir PHP mit getenv("PATH") die Pfade "bin", "usr/bin" und "usr/local/bin" aus. Wenn ich ausführbare Dateien hinzufügen möchte, um diese mit exec() auszuführen: in welches der 3 bin-Verzeichnisse sollte ich diese verfrachten?

    Abgesehen von Alexanders Antwort, kannst du die prinzipiell auch anderswo ablegen und den Pfad dorthin absolut angeben. Besonders, wenn es etwas sehr projektspezifisches ist, würde ich mir überlegen, das innerhalb des Projekt-Verzeichnisses (aber nicht innerhalb des DocumentRoot) abzulegen.

    dedlfix.