php und postgres: Call to undefined function pg_connect()
Hi, ich will auf einem SLES11 SP1 Apache, Postgres und PHP5 zum Laufen bringen: Folgendes ist installiert: postgresql-libs-8.3.14-0.2.1 postgresql-server-8.3.14-0.2.1 postgresql-contrib-8.3.14-0.2.1 postgresql-8.3.14-0.2.1 postgresql-docs-8.3.14-0.2.1 apache2-2.2.10-2.24.5 apache2-mod_jk-1.2.26-1.30.1 apache2-mod_php5-5.2.14-0.7.24.1 apache2-prefork-2.2.10-2.24.5 apache2-utils-2.2.10-2.24.5 php5-xmlwriter-5.2.14-0.7.24.1 php5-xmlreader-5.2.14-0.7.24.1 php5-iconv-5.2.14-0.7.24.1 php5-5.2.14-0.7.24.1 php5-json-5.2.14-0.7.24.1 apache2-mod_php5-5.2.14-0.7.24.1 php5-pgsql-5.2.14-0.7.24.1 php5-hash-5.2.14-0.7.24.1 php5-suhosin-5.2.14-0.7.24.1 php5-pdo-5.2.14-0.7.24.1 php5-ctype-5.2.14-0.7.24.1 php5-dom-5.2.14-0.7.24.1 php5-tokenizer-5.2.14-0.7.24.1 Mit phpinfo() kann ich mir die PHP-Konfiguration anschauen, also läuft das Gespann Apache und PHP zumindest schon mal. Bestimmte Skripte versuchen aber, eine Postgres-DB zu kontaktieren, und dann gibt es im Errorlog des Apache diese Fehlermeldung: PHP Fatal error: Call to undefined function pg_connect() in /usr/share/greensql-fw/lib.php on line 117 Zeile 117 in dem betreffenden Skript sieht wie folgt aus: $pgsql_db = pg_connect("host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass") Anscheinend ist die Funktion pg_connect unbekannt. PHP5 ist als rpm installiert. phpinfo zeigt u.a.: '../configure' '--prefix=/usr' '--datadir=/usr/share/php5' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--with-libdir=lib64' '--includedir=/usr/include' '--sysconfdir=/etc/php5/apache2' '--with-config-file-path=/etc/php5/apache2' '--with-config-file-scan-dir=/etc/php5/conf.d' '--enable-libxml' '--enable-session' '--with-mm' '--with-pcre-regex=/usr' '--enable-xml' '--enable-simplexml' '--enable-spl' '--enable-filter' '--disable-debug' '--enable-inline-optimization' '--disable-rpath' '--disable-static' '--enable-shared' '--program-suffix=5' '--with-pic' '--with-gnu-ld' '--with-system-tzdata=/usr/share/zoneinfo' '--with-apxs2=/usr/sbin/apxs2' '--disable-all' '--disable-cli' Liegt das daran, daß hier nichts von postgres zu lesen ist ? Reicht nicht php5-pgsql ? Wenn ich früher auf SuSE-Systemen php installiert habe, hat die Postgresunterstützung immer "out of the box" funktioniert. In.php.ini habe ich mal folgendes auf On gesetzt: [PostgresSQL] ; Allow or prevent persistent links. pgsql.allow_persistent = On Hat aber auch nix gebracht. Any ideas ? Bernd -- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de phone: +49 89 3187 1241 fax: +49 89 3187 3826 http://www.helmholtz-muenchen.de/idg Toleranz beinhaltet das Recht, den Intoleranten gegenüber nicht tolerant zu sein Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Bernd, Am 30.06.2011 13:44, schrieb Lentes, Bernd: [..]
Mit phpinfo() kann ich mir die PHP-Konfiguration anschauen, also läuft das Gespann Apache und PHP zumindest schon mal. Bestimmte Skripte versuchen aber, eine Postgres-DB zu kontaktieren, und dann gibt es im Errorlog des Apache diese Fehlermeldung: PHP Fatal error: Call to undefined function pg_connect() in /usr/share/greensql-fw/lib.php on line 117
Zeile 117 in dem betreffenden Skript sieht wie folgt aus: $pgsql_db = pg_connect("host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass")
Da scheint das Module pgsql.so nicht geladen zu sein. Schau mal in phpinfo() nach, dort sollte eigentlich das Modul pgsql auftauchen. Sind es auch PHP-Skripte, die in der Konsole laufen? Dann auch mal via "php -i" danach schauen. Schau auch gleich mal in der /etc/php5/conf.d/pgsql.ini nach, ob die Extension überhaupt in PHP5 eingebunden wird (Es darf kein Semikolon am Anfang folgender Zeile stehen): extension=pgsql.so
Anscheinend ist die Funktion pg_connect unbekannt. PHP5 ist als rpm installiert.
Jepp, wenn das Modul nicht geladen ist, ist die Funktion auch nicht verfügbar. ;-) -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Kind regards, Sebastian - openSUSE Member (Freespacer) Website/Blog: http://www.sebastian-siebert.de Important notes on openSUSE Mailing List: http://en.opensuse.org/openSUSE:Mailing_list_netiquette -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Kind regards, Sebastian - openSUSE Member (Freespacer) Website/Blog: http://www.sebastian-siebert.de Important notes on openSUSE Mailing List: http://en.opensuse.org/openSUSE:Mailing_list_netiquette -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Kind regards, Sebastian - openSUSE Member (Freespacer) Website/Blog: http://www.sebastian-siebert.de Important notes on openSUSE Mailing List: http://en.opensuse.org/openSUSE:Mailing_list_netiquette -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Kind regards, Sebastian - openSUSE Member (Freespacer) Website/Blog: http://www.sebastian-siebert.de Important notes on openSUSE Mailing List: http://en.opensuse.org/openSUSE:Mailing_list_netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Sebastian Siebert schrieb:
Am 30.06.2011 13:44, schrieb Lentes, Bernd: [..]
Mit phpinfo() kann ich mir die PHP-Konfiguration anschauen, also läuft das Gespann Apache und PHP zumindest schon mal. Bestimmte Skripte versuchen aber, eine Postgres-DB zu kontaktieren, und dann gibt es im Errorlog des Apache diese Fehlermeldung: PHP Fatal error: Call to undefined function pg_connect() in /usr/share/greensql-fw/lib.php on line 117
Zeile 117 in dem betreffenden Skript sieht wie folgt aus: $pgsql_db = pg_connect("host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass")
Da scheint das Module pgsql.so nicht geladen zu sein. Schau mal in phpinfo() nach, dort sollte eigentlich das Modul pgsql auftauchen.
da steht es nicht.
Sind es auch PHP-Skripte, die in der Konsole laufen? Dann auch mal via "php -i" danach schauen.
php -i liefert u.a. : " ... '--with-pgsql=shared,/usr' ... "
Schau auch gleich mal in der /etc/php5/conf.d/pgsql.ini nach, ob die Extension überhaupt in PHP5 eingebunden wird (Es darf kein Semikolon am Anfang folgender Zeile stehen): extension=pgsql.so
cat /etc/php5/conf.d/pgsql.ini: ; comment out next line to disable pgsql extension in php extension=pgsql.so Datei ist auch da: vm53200-12:/etc/php5 # find / -xdev -iname pgsql.so /usr/lib64/php5/extensions/pgsql.so Ich hab 'mal den kompletten Pfad in die pgsql.ini eingetragen, hat nix genützt. Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 30.06.2011 16:16, schrieb Lentes, Bernd: [..]
Da scheint das Module pgsql.so nicht geladen zu sein. Schau mal in phpinfo() nach, dort sollte eigentlich das Modul pgsql auftauchen.
da steht es nicht.
Eben, weil es nicht geladen ist.
Sind es auch PHP-Skripte, die in der Konsole laufen? Dann auch mal via "php -i" danach schauen.
php -i liefert u.a. : " ... '--with-pgsql=shared,/usr' ..."
Schau auch gleich mal in der /etc/php5/conf.d/pgsql.ini nach, ob die Extension überhaupt in PHP5 eingebunden wird (Es darf kein Semikolon am Anfang folgender Zeile stehen): extension=pgsql.so
cat /etc/php5/conf.d/pgsql.ini:
; comment out next line to disable pgsql extension in php extension=pgsql.so
Das sieht gut aus, hast du auch den Apache-Server komplett neugestartet? Ein einfaches Reload reicht hier nicht aus. -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Sebastian Siebert schrieb:
Am 30.06.2011 16:16, schrieb Lentes, Bernd: [..]
Da scheint das Module pgsql.so nicht geladen zu sein. Schau mal in phpinfo() nach, dort sollte eigentlich das Modul pgsql auftauchen.
da steht es nicht.
Eben, weil es nicht geladen ist.
Sind es auch PHP-Skripte, die in der Konsole laufen? Dann auch mal via "php -i" danach schauen.
php -i liefert u.a. : " ... '--with-pgsql=shared,/usr' ..."
Schau auch gleich mal in der /etc/php5/conf.d/pgsql.ini nach, ob die Extension überhaupt in PHP5 eingebunden wird (Es darf kein Semikolon am Anfang folgender Zeile stehen): extension=pgsql.so
cat /etc/php5/conf.d/pgsql.ini:
; comment out next line to disable pgsql extension in php extension=pgsql.so
Das sieht gut aus, hast du auch den Apache-Server komplett neugestartet? Ein einfaches Reload reicht hier nicht aus.
Das war's. Danke. Aber wieso zeigt phpinfo() keine Postgresunterstützung an, aber php -i ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Lentes, Bernd [30.06.2011 17:25]:
Sebastian Siebert schrieb:
Das sieht gut aus, hast du auch den Apache-Server komplett neugestartet? Ein einfaches Reload reicht hier nicht aus.
Das war's. Danke. Aber wieso zeigt phpinfo() keine Postgresunterstützung an, aber php -i ?
Weil php im interaktiven Modus auf die derzeit aktiven Module zugreift, phpinfo() aber auf die, die zum Zeitpunkt der letzten Apache-Initialisierung aktiv waren. Gruß Werner -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAk4NlvEACgkQk33Krq8b42MLbgCfWzv9AoybNHi+3kkd+Vt01mxf la8Anj+O8TxQts6ovkp42LnNyy4d6PvG =AgFa -----END PGP SIGNATURE----- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Werner Flamme schrieb:
Lentes, Bernd [30.06.2011 17:25]:
Sebastian Siebert schrieb:
Das sieht gut aus, hast du auch den Apache-Server komplett neugestartet? Ein einfaches Reload reicht hier nicht aus.
Das war's. Danke. Aber wieso zeigt phpinfo() keine Postgresunterstützung an, aber php -i ?
Weil php im interaktiven Modus auf die derzeit aktiven Module zugreift, phpinfo() aber auf die, die zum Zeitpunkt der letzten Apache-Initialisierung aktiv waren.
Gruß Werner
Hi Werner, Aha. Und was ist dann die "richtige" Auskunft ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Lentes, Bernd [01.07.2011 16:59]:
Werner Flamme schrieb:
Lentes, Bernd [30.06.2011 17:25]:
Sebastian Siebert schrieb:
Das sieht gut aus, hast du auch den Apache-Server komplett neugestartet? Ein einfaches Reload reicht hier nicht aus.
Das war's. Danke. Aber wieso zeigt phpinfo() keine Postgresunterstützung an, aber php -i ?
Weil php im interaktiven Modus auf die derzeit aktiven Module zugreift, phpinfo() aber auf die, die zum Zeitpunkt der letzten Apache-Initialisierung aktiv waren.
Gruß Werner
Hi Werner,
Aha. Und was ist dann die "richtige" Auskunft ?
Hallo Bernd, so richtig verstehe ich die Frage nicht ;-). Es gibt ein "richtig" für die Befehlszeile ud ein (evtl. anderes) "richtig" für den Apachen. Die beiden sollten grundsätzlich identisch sein. Wenn Du ein PHP-Modul nachinstallierst, ohne den Apachen neu zu starten, wird Dir "php -i" eben dieses Modul anzeigen, phpinfo() aber nicht. Andersherum kannst Du ein Modul deinstallieren, "php -i" zeigt es nicht mehr an, phpinfo() sieht es aber noch. Wenn es ein Modul ist, das Deine Webapplikation braucht, suchst Du das Problem vermutlich ziemlich lange ;-) Gruß Werner -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAk4VzMYACgkQk33Krq8b42PGswCfRkfn8cjAs3tuD6BYKYZCvD/D 8twAnR+DnV3wZZ7eaMy2lola3YaEovzi =gBtX -----END PGP SIGNATURE----- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Lentes, Bernd
-
Sebastian Siebert
-
Werner Flamme