Ankündigung

Einklappen
Keine Ankündigung bisher.

extension_dir - Noch woanders definiert?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • extension_dir - Noch woanders definiert?

    Hallo,

    ich hab in meiner php.ini mein "extension_dir" wie folgt angegeben:
    Code:
    extension_dir = "/opt/php/lib/php/extensions"
    In der Ausgabe von phpinfo() wird es auch so angezeigt und leg ich Extensions in diesem Verzeichnis ab werden sie auch geladen.

    Nun bin ich hingegangen und habe eine Erweiterung manuell kompiliert und anschliessend installiert, sie landete dann in folgendem Verzeichnis:
    Code:
    $ phpize
    $ ./configure
    $ make
    $ make install
    
    /opt/php/lib/php/extensions/no-debug-non-zts-20060613/
    Aus einem Abschnitt des PHP - Manuals hab ich folgendes entnommen:
    Unix - Wenn nicht explizit in der php.ini angegeben, hängt das standardmäßige Verzeichnis ab von:

    * ob PHP mit --enable-debug erstellt wurde oder nicht
    * ob PHP mit (experimentellem) ZTS (Zend Thread Safety) Unterstützung erstellt wurde oder nicht
    * der aktuellen internen ZEND_MODULE_API_NO (Zend interne Modul API Nummer, welche im Grunde das Datum der letzten größeren Modul API Änderung darstellt, z.B. 20010901).

    Das obige in Betracht gezogen, ist das standardmäßige Verzeichnis <php-install-directory>/lib/php/extension/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, z.B. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 oder /usr/local/php/lib/php/extensions/no-debug-zts-20010901.
    Nun habe ich aber doch den Pfad zum "extension_dir" explizit angegeben.
    Gibt es vielleicht noch einen anderen Ort an dem geschaut wird, wohin eine Extension installiert werden soll?

    Es ist kein schwerwiegendes Problem, aber ich würde mir doch gerne das manuelle Verschieben der Extensions sparen

    Vielleicht hat ja jemand hier einen kleinen Tip für mich.

    Dankeschön.


    squig

  • #2
    Kannst das ja mit einem Symlink lösen, oder das make-Skript anpassen. Theoretisch kann man dem auch einen Output-Pfad mitgeben. Zumindest ist das bei den meisten Make's so...
    Viele Grüße,
    Dr.E.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1. Think about software design [B]before[/B] you start to write code!
    2. Discuss and review it together with [B]experts[/B]!
    3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
    4. Write [I][B]clean and reusable[/B][/I] software only!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Kommentar


    • #3
      Hallo Doc

      Die von dir genannten Wege sind auf jedenfall möglich, aber noch nicht das was ich möchte.

      Woher nimmt das "make" die Information wohin es die Extension installieren soll? Ich ruf das "configure" ja völlig parameterlos auf.
      Kommt die Information über meinen Extension - Pfad über das "phpize" rein und wen ja, wie mache ich ihm klar, dass er nicht in einen zusätzlichen Unterordner installieren soll?
      Welche andere Informationsquelle als die "php.ini" könnte "phpize" den noch nutzen?

      Dankeschön.


      squig

      Kommentar


      • #4
        Hallo squig,

        das ist im configure eingestellt, zumindest war das so in den configure's, die ich bisher von PHP auf LINUX gesehen habe. Dort werden irgendwelche Pfade gesetzt, die dein make verwendet. Musst das mal ansehen.
        Viele Grüße,
        Dr.E.

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        1. Think about software design [B]before[/B] you start to write code!
        2. Discuss and review it together with [B]experts[/B]!
        3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
        4. Write [I][B]clean and reusable[/B][/I] software only!
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        Kommentar


        • #5
          Hallo,

          ich habs gefunden

          Im Script "php-config" steht der "extension_dir" - Pfad mit diesem Unterverzeichnis ("/opt/php/lib/php/extensions/no-debug-non-zts-20060613/") im Code, habe dies dort einfach manuell korrigiert und nun landen die Extensions direkt im richtigen Verzeichnis.

          Alle anderen Angaben in "php-config" stimmen und sind auch spezifisch für meine PHP - Installation.

          Wenn ich das nun richtig beobachtet habe, wird das "configure" - Skript durch den Aufruf von "phpize" erst erstellt.
          Beim Aufruf von "configure" werden dann Pfadangaben aus "php-config" übernommen, wobei hier der Standardwert für das "extension_dir" genutzt wird und das ist eben dieser mit dem Unterverzeichnis (siehe mein erster Post, Link zum PHP - Manual).
          Das kann man schön sehen, wenn man einen Fehler in der "php-config" hat, wie z.B. eine Zeile falsch auskommentiert, dann bricht "configure" mit der Meldung ab, dass es Probleme hat "php-config" zu lesen.
          Im Anschluss macht man mit dem bekannten "make" und "make install" weiter.

          Kennt jemand vll eine Quelle in der diese Tools und ihre Funktionsweise ein wenig näher erläutert werden?
          Das PHP - Manual gibt dazu leider nichts her. Die man - Page hat nur einen Satz über:
          phpize is a shell script to prepare PHP extension for compiling.
          Bis dääähne,

          squig

          Kommentar


          • #6
            schon man phpize versucht?

            Kommentar


            • #7
              Jops,

              liefert eben genau dieses:
              phpize is a shell script to prepare PHP extension for compiling.

              Bis dääähne,

              squig

              Kommentar

              Lädt...
              X