Kommandozeilen-PHP mysqli schlägt fehl, funktioniert aber über den Webserver und arbeitet lokal

Ich habe ein Shell-Skript, das ein PHP-Skript aufruft, um Datensätze in die Datenbank einzufügen, nachdem die Textdatei analysiert wurde. Wenn es das PHP-Skript aufruft, erhalte ich Fehler, die mysqli nicht finden können:

PHP Fatal error:  Class 'mysqli' not found in /path/to/php/file.php on line 5

Dies schlug in local auf Macbook Pro mit Nginx und PHP-FPM und Mysql 5.5.x fehl. Nachdem ich mysqli call den Socket-Parameter hinzugefügt hatte, funktionierte es in local.Dies funktionierte mit lokalen db!

$mysqli = new mysqli("localhost", "user", "pass", "mydb", 3306, "/tmp/mysql.sock");

Ich habe auf einem Linux-Server (CentOS6, auf dem "yum install php" mit PHP 5.3.x installiert ist) bereitgestellt. Ich habe die Verbindung zu einem entfernten Datenbankserver geändert, also habe ich die Datei "/tmp/mysql.sock" gelöscht, weil die Datenbank nicht auf diesem Server ausgeführt wird.

Shell-Skript, das PHP aufruft, um das Skript auszuführen:

php -c "/etc/php.ini" -f "/path/to/php/file.php"

Da ich mysql nicht lokal laufen lasse, wie bekomme ich es, um die mysqli lib zu erkennen und auszuführen. Es ist auf CentOS6. Ich habe sogar versucht, mysqli.so zur php.ini-Datei hinzuzufügen und habe folgenden Fehler erhalten:

[mike@app2 myapp]# php -version
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqli.so' - /usr/lib64/php/modules/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.3 (cli) (built: Feb  2 2012 23:47:49) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Vielen Dank für jede Hilfe bei der Lösung dieses Problems. Normalerweise würde ich mysql (query) verwenden, benötige aber mysqli () für einige vorbereitete Anweisungen und andere Bits im Skript.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage