pgsql.so ist nicht in PHP geladen

9

Ich wurde damit beauftragt, eine PHP-App zu erstellen, die auf eine bestehende PostgreSQL-Datenbank zugreift. Dies ist das erste Mal, dass ich mit Postgre arbeite, ganz zu schweigen davon, dass PHP bereits in der Linux-Box installiert wurde, auf der die App laufen soll. Ich habe keine Erfahrung, dieses Zeug einzurichten, ich kodiere nur.

Meine Frage ist, dass ich die Postgre-Erweiterung in PHP nicht funktionieren lassen kann. Ich habe die php.ini Datei überprüft, es gab keine "extension = ..." Zeilen. Also habe ich "extension = pgsql.so" hinzugefügt. Ich habe dann das "extension_dir" überprüft und festgestellt, dass nur 2 Dateien drin waren (ldap.so, phpcups.so), ich habe eine pgsql.so-Datei aus einer anderen Linux-Box hinzugefügt. Ich habe httpd neu gestartet. Und es funktioniert nicht. Ich konnte in phpinfo () keine "pgsql" oder "postgre" finden.

Verzeih mir meine Noobnesse. Ich kenne zu wenig Linux. Ich würde es sehr schätzen, wenn Sie mich in die richtige Richtung weisen können.

Ich habe den Vorschlag von Nummer 5 verwendet:

Alter, ich bin auf RedHat. Ich habe die "yum" -Version des Befehls verwendet, den Sie gegeben haben, und ich habe Folgendes bekommen:

[root @ perseus ~] # yum installieren Sie php-pgsql Das "Installonlyn" -Plugin wird geladen Installationsprozess einrichten Repositories einrichten Konnte die Mirrorlist nicht Ссылка Fehler finden [Errno 4] IOError: Fehler: Kann keine gültige Basis für Repo finden: Extras

Leider ist der Linux-Server, den ich verwende, NICHT mit dem Internet verbunden. Irgendeine andere Art zu installieren?

    
Obay 14.05.2010, 07:35
quelle

4 Antworten

9

Das hängt davon ab, welche Linux Distribution Sie verwenden.

Wenn Sie Ubuntu / Debian verwenden, müssen Sie:

%Vor%

Fedora / CentOS

%Vor%

normalerweise können Sie herausfinden, auf welcher Distro Sie sich befinden:

%Vor%     
number5 14.05.2010, 07:51
quelle
3

Bei CentOS-Erweiterungen erstellen Sie eine separate * .ini-Datei für jede PHP-Erweiterung in /etc/php.d

Ändern Sie also nicht die * .ini-Hauptdatei, sondern erstellen Sie /etc/php.d/pgsql.ini und fügen Sie dort eine Zeile

hinzu %Vor%

Dann müssen Sie Apache mit

neu starten %Vor%

Aber der beste automatisierte Weg ist, einfach

einzugeben %Vor%

In deinem Fall hat das wegen einiger Probleme in der yum-Konfiguration nicht funktioniert. Gehe zu /etc/yum-repos.d Geben Sie

ein %Vor%

Scrolle nach unten zu [Extras] und stelle sicher, dass es so aussieht:

%Vor%

Korrigieren Sie es gegebenenfalls, speichern Sie die Datei (Strg-X) und gehen Sie folgendermaßen vor:

%Vor%

Versuchen Sie anschließend,

zu wiederholen %Vor%     
Vladislav Rastrusny 14.05.2010 08:21
quelle
1
  • Entfernen Sie die .so-Datei, die Sie von der anderen Maschine kopiert haben (obwohl es funktionieren könnte, müssen Sie das Risiko nicht eingehen)
  • Verwenden Sie den Paket-Manager der Distribution, um das Modul php_pgsql / php5_pqsql
  • zu installieren
  • Starten Sie den Apache neu und versuchen Sie es erneut. Möglicherweise wurde das Modul automatisch zu einer INI-Datei hinzugefügt
  • Wenn nicht, führe <?php echo 'ini: ', get_cfg_var('cfg_file_path'); aus, um zu sehen, welche php.ini du bearbeiten musst
  • editiere diese Ini-Datei
  • starte den Apache neu
VolkerK 14.05.2010 07:52
quelle
-1

Mein Betriebssystem Linux mint kde und es gab dasselbe Problem

  

pg_connect ()

Sie müssen installieren, wenn Sie php5.6

verwenden %Vor%

Nachdem Sie den Erweiterungsnamen in der Datei "php.ini" ändern müssen.

%Vor%

'dll' zu 'so'

Zum Beispiel

%Vor%     
Vugar Ahmedoglu 13.01.2017 17:44
quelle

Tags und Links