PHP Windows php_pgsql.dll yüklenmiyor

12 Cevap php

PHP 5.2.8 aşağıdaki hata ile, php_pgsql.dll yüklemek için reddediyor:

Uyarı: PHP Startup: dinamik kütüphane 'D: \ PHP \ ext \ php_pgsql.dll' yüklenemiyor - Belirtilen modül bulunamadı.

satır 0 Bilinmeyen içinde

. Dll PHP / Dış / bulunmaktadır.

Herkesten önce Windows üzerinde PHP ile bu sorunu oldu?

12 Cevap

Check out PHP PostgreSQL kurulum sayfasında: http://us.php.net/manual/en/pgsql.installation.php

Windows sunucu üzerinde, libpq.dll size çok zaman kaydedebilirsiniz yüklemek için httpd.conf için aşağıdaki satırı ekleyerek, Apache ile yapılandırılmış:

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

Yüklediğiniz PostgreSQL yükleme yolu ve sürümü buna göre klasörü değiştirmek zorunda unutmayın. Ayrıca üretim ortamları için aynı sunucu üzerinde Apache ve PostgreSQL sahip tavsiye edilmez unutmayın.

Bu anında benim kurulum sabit.

Sorun php_pgsql.dll tarafından kullanılan ilgili kütüphaneler ile - libpq.dll gibi, OpenSLL olanlar vb (yüklü bir PsqlODBC sürücü vb gelen, Postgres zip dağılımından) onları bulmak ve bir klasöre koyun gerekir hangi PATH. Tüm DLL dosyaları listesinde gelince - MS Bağımlılık Walker (depends.exe) kullanın.

Bir diğer önemli bit - Apache (Apache kullanmak olduğunu) OpenSSL DLL kendi belirledi. Böylece Postgres dağıtımı gelenler ile çatışma değil, bu değiştirin veya sadece yeniden adlandırın.

Onların PHP aslında PostGres kurmadan, erişim postgres sunucularına sadece yetenekli make install isteyenler için, yapmanız gerekenler:

  • php_pgsql.dll etkinleştirmek (ve php_pdo_pgsql.dll, PDO kullanıyorsanız) PHP.INI uzatmayı,
  • emin olun libpq.dll, libiconv-2.dll ve libintl-8.dll yolu vardır. Bunlar php_pgsql.dll bağımlılıklardır.

Bu 3 DLL yüklemek PostGres bulunabilir. Ben sadece apache \ bin, ben kendini bulunan her şeyi tutmak bu şekilde içine kopyaladı. Yapıyor, apache Postgres desteği ile, sadece iyi PHP motoru başlayabilirsiniz.

Özellikle burada WAMP sunucu kurulumları için, içine libpg.dll dosyayı kopyalamak gerekir "C: \ wamp \ bin \ apache \ Apache2.2.21 \ bin \", veya benzer. O .. \ php \ ext \ ve ayrıca PATH env değişkeni ayarlama sadece (hiç etkili olmadığını) yeterli değildi kopyalama.

Orijinal cevabı burada kaynaklı: http://www.wampserver.com/phorum/read.php?2,40270,57932

Özellikle XAMPP kurulumları için, ben sadece .. \ php \ ext \ dizine libpg.dll dosyayı kopyalamak için gerekli bulundu.

Sen \ bin \ apache \ Apache2.2.17 \ bin wamp için wamp \ bin \ php \ php5.3.5 gelen libpq.dll kopyalamanız gerekir. Yine Wamp Server'ı yeniden başlatın. Artık biz php yapılandırma ile yapılır. Sonra PHPPgAdmin yüklemek ve kullanmak olacaktır.

Ben DLL yani yanlış bir sürümünü kullanarak çalıştım ben bu hata (ve dosya adı ve dahili yolu kesinlikle doğru olduğunu) gördüm sadece zaman oldu. Ben koşuyordu birine PHP farklı bir sürümü karşı derlendi biri kullanılır.

Lütfen sürüm kesinlikle PHP 5.2.8 karşı derlenmiş biri olduğundan emin olun.

Edit: ya, dosyanın izinleri yanlış ayarlanmış.

Vista üzerinde php ile LIBPQ.DLL sorun ...

  • Emin olun aslında postgres yüklü olun. Eğer postgres yüklü olmadan postgres API ile pencereler, php yüklerseniz, bu uyarıyı alabilirsiniz. Bu sadece Windows Installer her şeyi tıklayın çok kolay ...

  • Php.ini içindeki ilgili satırı yorum.

Sadece bir düşünce - Postregs ikili, SYSTEM yolu kullanıcıya özel yol değildir emin olun. İşin ilginç yanı, bu sorun benim makinede oldu. :-)

Edit:

Eğer kendi hesabınıza altında DW çalışacak, Apache SYSTEM olarak çalışırken, ve dolayısıyla kişisel PATH ayarları mevcut olmayacaktır - Bağımlılık Walker tüm A-Tamam rapor olurdu ama sorun hala devam ediyorum açıklıyor ki, bunu düşünmek gel .

Ben çözüm var:

Eğer php_pdo_pgsql uzantısı yüklemek istiyorsanız 1), çok php_pdo yükleyin lütfen. (Php.ini 'de)

2) php_pgsql.dll and php_pdo_pgsql.dll depend on libpq.dll and php5ts.dll. libpg.dll is the library from postgreSQL, but it has been bundled into PHP's binary package. When configuring PHP to work as a module with Apache, it can't load the depending library correctly. And so you need to load it in Apache.

httpd.conf yapılandırma ve iki satır LoadModule php5_module önce olmalıdır

LoadFile "Full path to /php5gs.dll" LoadFile "full path to libpg.dll"

Yararlı olmak umuyoruz.

Ondřej Bouda belirtildiği gibi: Windows çevre değişkenlerini ayarlama yeterli. Dlls hiçbir kopya, http-conf hiçbir girdi. PATH: (\ xampp \ php C) Sadece php dizin eklemek. Aksi takdirde değişiklikleri bilmek değil, bu kullanırsanız XAMPP-Control-Panel yeniden unutmayın. (Ve neden Apache yeniden başlatın.)

For instance, on XAMPP, it was sufficient to put the PHP directory (i.e., C:\xampp\php) to the system PATH variable. – Ondřej Bouda

Eğer httpd.conf dosyasına aşağıdaki satırları eklemek zorunda:

PHPIniDir "c:/PHP/"
Loadfile "C:\php\php5ts.dll"

Loadfile "C:\php\libpq.dll"

LoadModule php5_module "c:/PHP/php5apache2_2.dll"

Kaynak: http://www.php.net/manual/en/pgsql.setup.php

Bu Dayron Armas Peña 'nin cevabı @ için bir güncelleme. Pgsql 'dll' paket php aşağıdaki konumda bulunur:

LoadFile "C:/wamp/bin/php/php5.4.12/libpq.dll"

httpd.conf php.ini dosyalarındaki gerekli satırları uncommenting dışında dosyaya yukarıdaki satırı ekleyerek benim sorunu çözmüştür.