
Ich habe php7.2 (aus dem Remi-Repository) in CentOS 7.5 installiert. Ich möchte über die PHP-Befehlszeile auf mysqli zugreifen. Beim Versuch wird der folgende Fehler angezeigt:
Aufruf der nicht definierten Funktion mysqli_connect()
Das mit Apache laufende PHP funktioniert gut mit MySQLI. Alle über Yum installierten Erweiterungen werden hier perfekt wiedergegeben. Aber für die PHP-Befehlszeile (die eine andere php.ini-Datei analysiert) werden die Erweiterungen nicht geladen.
Muss ich die Erweiterungen für die PHP-Befehlszeile separat hinzufügen? Wenn ja, wie? Oder gibt es eine andere Alternative? Bitte lassen Sie es uns wissen, wenn Sie weitere Informationen benötigen.
Vielen Dank für Ihre Zeit.
Antwort1
Wie betont vonMichael Hampton(danke) im Kommentar gab es zwei PHP-Installationen auf dem Server. Ich bin zu zwei unterschiedlichen Lösungen gekommen, je nach spezifischem Bedarf:
- Für php-cli:
In der .bash_profile wird folgende Zeile hinzugefügt
alias php="/usr/bin/php"
- Zum Ausführen von PHP von einem Java-Servlet (als Befehl):
Verwenden
String[] commands = {"bash", "-c", "/usr/bin/php myphpfile.php arg01 arg02"}; File dir = new File("<my-php-file-directory>"); try{ Process process; process = Runtime.getRuntime().exec(commands, null, dir); process.waitFor(); .... .... }
Das ist alles
php -modules
im Terminal gibt mit mysqli die gewünschte Ausgabe.