Ankündigung

Einklappen
Keine Ankündigung bisher.

Module werden beim Aufruf über Web nich gefunden (geladen).

Einklappen

Neue Werbung 2019

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

  • Module werden beim Aufruf über Web nich gefunden (geladen).

    Hallo,

    ich habe auf dem Betriebsystem

    omnios-r151028

    von der Quelle

    https://pkgsrc.joyent.com/packages/S...8Q4/x86_64/All

    folgende Programme installiert:

    Apache 2.4.37
    MySQL 5.7.24
    Redis 5.0.3
    PHP 7.3.1
    phpMyAdmin 4.8.5

    und dazu die PHP-Erweiterungen

    php73-curl
    php73-exif
    php73-ftp
    php73-iconv
    php73-intl
    php73-ldap
    php73-pdo
    php73-pdo_mysql
    php73-pdo_sqlite
    php73-redis3
    php73-soap


    Wenn ich nun die datei
    /opt/local/share/httpd/htdocs/test.php:
    PHP-Code:
    <?php
    include '/opt/local/share/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php';
    use 
    Symfony\Polyfill\Mbstring as p;

    echo 
    "<h2>PHP is Fun!</h2>"PHP_EOL;
    echo 
    "Hello world!<br>"PHP_EOL;
    echo 
    "I'm about to learn PHP!<br>"PHP_EOL;
    echo 
    "This ""string ""was ""made ""with multiple parameters.""<br>"PHP_EOL;
    echo 
    strpos('Hello World''W'), "<br>"PHP_EOL;
    echo 
    "mbstring ";
    if (
    function_exists('mb_detect_encoding')) {
    echo 
    "OK";
    } else{
    echo 
    "not OK";
    }
    echo 
    "<br>"PHP_EOL;
    echo 
    "json ";
    if (
    function_exists('json_encode')) {
    echo 
    "OK";
    } else{
    echo 
    "not OK";
    }
    echo 
    "<br>"PHP_EOL;
    echo 
    p\Mbstring::mb_strpos('Hello World''W'), "<br>"PHP_EOL;
    ?>
    über web-aufruf starte
    Code:
    http://<IP-Nummer>/test.php
    bekomme ich folgende Ausgabe (Fehlermeldung):
    Code:
    PHP is Fun!
    Hello world!
    I'm about to learn PHP!
    This string was made with multiple parameters.
    6
    mbstring not OK
    json not OK
    
    Fatal error: Uncaught Error: Call to undefined function iconv_strpos() in /opt/local/share/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php:500 Stack trace:
    #0 /opt/local/share/httpd/htdocs/test.php(12): Symfony\Polyfill\Mbstring\Mbstring::mb_strpos('Hel lo World', 'W')
    #1 {main} thrown in /opt/local/share/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php on line 500
    Beim Start direkt in der Terminalconsole Läuft das Programm durch

    Code:
    root@test:~# /opt/local/bin/php /opt/local/share/httpd/htdocs/test.php
    Ausgabe:

    Code:
    <h2>PHP is Fun!</h2>
    Hello world!<br>
    I'm about to learn PHP!<br>
    This string was made with multiple parameters.<br>
    6<br>
    mbstring OK<br>
    json OK<br>
    6<br>
    root@test:~#

    Woran kann das liegen, dass beim Webaufruf die Erweiterungen mbstring und json nicht eingebunden werden?
    Und wie kann ich das erzwingen?

  • #2
    php.ini
    Davon kann es mehrere geben.

    Kommentar


    • #3
      es gibt übrigens code tags hier im forum.
      und ja, php.ini, oder neustart von apche/php-fpm whatever.

      normalerweise läuft php auch nicht aus /opt
      /opt/local/bin/php
      und fraglich ob das genannte os das richtige für einsteiger ist.

      Kommentar


      • #4
        Tut mir leid, aber ich bin bisher selten in Forn unterwegs gewesen, zumindest schreibend. Danke für das Einfügen der Code-Tags, sieht so viel besser aus.

        Ich habe bisher, da es im Terminal funktioniert im Web aber nicht versucht über die Dateirechte (www darf überall alles) eine Lösung zu bekommen, jedoch ohne Erfolg.

        Mit der php.ini (liegt bei mir in /opt/local/etc) habe ich mich auch auseinander gesetzt.
        1. Versuch:
        Code:
        extension_dir = "/opt/local/lib/php/20181200"
        da in diesem Verzeichnis die hinzugefügten Erweiterungen liegen.
        2. Versuch:
        die Erweiterungen direkt in der php.ini einbinden und nicht über die ini-Dateien in /opt/local/etc/php.d
        Beides ohne Erfolg.

        Kommentar

        Lädt...
        X