Selbst gehostete Box,
RHEL 6
PHP 5.3.3
PDO installiert
freetds installiert
pdo_dblib - bisher kein Glück bei der Installation
Mein Ziel ist es, PDO mit Sybase zu verwenden. Versuch, pdo_dblib vom entsprechenden PHP-Quellcode der Version zu installieren. Ich habe verschiedene Methoden ausprobiert und viel nach Hilfe zu diesem Thema gesucht, bin aber noch nicht erfolgreich.
Methode 1
Installieren Sie freetds
$ ./configure
$ make
$ su root
Password:
$ make install
Das ist erfolgreich
Installieren Sie pdo_dblib
im Ordner / ext / pdo_dblib:
$ phpize
$ ./configure
$ make
$ make test
Fehlerausgabe:
PHP Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
Das sieht nicht gut aus ... Ich habe das recherchiert und hier einen interessanten Hack dafür gefunden . Das Ändern von pdo.ini in pdo_0.ini war jedoch nicht die Lösung, da beim Make-Test immer noch dieselben Fehler aufgetreten sind.
$ su
$ make install
Ausgabe:
Installing shared extensions: /usr/lib64/php/modules/
Das scheint seltsam ... und nein, es wird nicht installiert (wird nach dem Neustart von Apache nicht auf phpinfo angezeigt).
Methode 2
Installieren Sie freetds
Ich folge genau den Anweisungen und füge das Präfix hinzu
$ ./configure --prefix=/usr/local/freetds
$ make
$ su root
Password:
$ make install
Das ist erfolgreich
Installieren Sie pdo_dblib
im Ordner / ext / pdo_dblib:
$ phpize
$ ./configure --with-sybase=/usr/local/freetds
Dies erzeugt den folgenden Fehler am unteren Rand der Ausgabe
...
checking for PDO_DBLIB support via FreeTDS... yes, shared
configure: error: Cannot find FreeTDS in known installation directories
Methode 3
Die freetds ./configure-Variante (einschließlich oder ohne das --prefix ...) hat das Ergebnis nicht geändert, daher überspringe ich es.
Installieren Sie die Erweiterung pdo_dblib pecl
nach der hier angegebenen Methode .
pecl download pdo_dblib
tar -xzvf PDO_DBLIB-1.0.tgz
Zeile entfernt,
<dep type=”ext” rel=”ge” version=”1.0″>pdo</dep>
Die Datei package.xml wurde gespeichert und in das Verzeichnis PDO_DBLIB verschoben.
mv package.xml ./PDO_DBLIB-1.0
Navigierte zum Verzeichnis PDO_DBLIB und installierte das Paket aus dem Verzeichnis.
cd ./PDO_DBLIB-1.0
pecl install package.xml
Dieser Befehl gibt mir jedoch die folgende Fehlerausgabe wie Methode 2 .
checking for PDO_DBLIB support via FreeTDS... yes, shared
configure: error: Cannot find FreeTDS in known installation directories
ERROR: `/home/sybase/Install_items/pecl_pdo_dblib/PDO_DBLIB-1.0/configure' failed
pdo_informix.so: undefined symbol: php_pdo_register_driver in Unknown on line 0