PHP uzantıları Apache başlangıcında yük olmayacak

10 Cevap php

Apache 2.2.11 için bir modül olarak php ekledik:

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

Ayrıca eklendi

AddType application/x-httpd-php .php

extension_dir = "C:\php\ext": Ve PHP.ini içinde benim uzatma dir ayarlanır

Ve yes, dizinleri doğru ve tüm dosyalar mevcut.

Apache başladığınızda Ama bu hataları alıyorum:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_pdo_pgsql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_pgsql.dll' - The specified module could not be found.\r\n in Unknown on line 0

[Sun May 17 03:46:01 2009] [notice] Apache/2.2.11 (Win32) PHP/5.2.9-2 configured -- resuming normal operations
[Sun May 17 03:46:01 2009] [notice] Server built: Dec 10 2008 00:10:06
[Sun May 17 03:46:01 2009] [notice] Parent: Created child process 4652

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_pdo_pgsql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_pgsql.dll' - The specified module could not be found.\r\n in Unknown on line 0

[Sun May 17 03:46:01 2009] [notice] Child 4652: Child process is running
[Sun May 17 03:46:01 2009] [notice] Child 4652: Acquired the start mutex.
[Sun May 17 03:46:01 2009] [notice] Child 4652: Starting 64 worker threads.
[Sun May 17 03:46:01 2009] [notice] Child 4652: Starting thread to listen on port 80.

Yani muhtemelen burada basit bir şey unutuyorum, birisi ben unutuyorum bana ne söyleyebilir?

10 Cevap

PHP MySQL ve PostgreSQL desteği eklemek için PHP uzantı'nın DLL gerekmez sadece. Ayrıca, MySQL ve PostgreSQL yerel kütüphaneleri gerekir. PHP uzantısının DLL muhtemelen bağlı bazı DLL bulmak değil, bu yüzden başlatılamıyor.

MySQL ve PostgreSQL istemci yüklü olduğundan emin olun, ve DLL bazı bulunamaması yerine.

I.E. Örnek:

  • php_mysql.dll libmysql.dll bağlıdır

Yani, (Ben bu bir, Windows PHP ikili dağıtımı ile birlikte inanıyoruz. Olsa emin değil) Emin PHP libmysql.dll bulmak mümkün olduğundan emin olun.

Pablo Santa Cruz'un tavsiye eklemek için. Windows Eğer PATH ortamda gerekli kütüphaneleri içerebilir. (Hayır mutlaka Windows klasörüne kopyalayın). Kütüphaneler dul yüklerken PATH dizinlere bakar gibi.

Eğer PHP5.2 için php.net standart Win32 ikili dağıtımı kullanıyorsanız, o paket paket kök tüm bağımlılıkları içermelidir. Eğer C:\php içine PHP5.2 yüklü Yani, PATH Envar için bu dizin eklemek. Apache yeniden başlatın ve ben uzantıları düzgün yüklemek için beklersiniz.

Windows üzerinde PHP özel bir sürümü ile ilgili bir sorun vardı. Sorun libmysql oldu. Ben aynı sorunu yaşıyorum birinden php.net sitesinde yayınlanan bir hata bulundu.

Ben önceki php salınımını kullanılan ve libmysql çalıştı. Kullandığınız php dağılımı üzerindeki notlar göz atın. Ben özel bir sürümü sonra onlar libmysql ilgili yeni bir politika söz olduğunu düşünüyorum.

Ne php söz uzantıları bulamıyor itibaren. Eğer uzantıları uzantıları var ki, yer ve klasör (okuma-izinleri) ulaşılabilir olduğunu nerede belirten php.ini üzerinde yolunu ayarlamak emin olun.

Tüm gerçek sorunun ne olabileceğini bulmak için bir çaba Windows/System32 için uzantısını taşımayı deneyin başarısız olursa.

Selamlar,

Bu uzantıları MySQL ve PostgreSQL ikili dağıtımları tarafından sağlanan yerel kütüphaneleri bağlıdır. Bunları yüklemek ve apache yıllardan örneğin bin klasöründe kütüphanelerini koydu. Bu olan LIBMYSQL.DLL ve LIBPQ.DLL, sırasıyla.

Ben genellikle yapmak yerine benim sistemde sadece apache / php bu veritabanları istemci ve aynı zamanda benim apache / php kurulum daha taşınabilir hale getirir, çünkü, onlarla Windows/System32 klasör kirletici.

Benim durumumda, Windows üzerinde PHP arkasında büyük bir acıdır. Ben genellikle sonunda işe almak, ancak googling ve ilgili deneme-yanılma bir sürü her zaman var - en azından benim için.

Yani nihayet bir VM hasta ve yorgun ve sadece yüklenen Ubuntu Sunucu var ve o kadar vardı ve birkaç dakika içinde çalışıyor. Bu ya da değil diyemem için bir seçenek, ancak eğer bu kesinlikle uzun vadede baş ağrısı bir çok kazandıracak olsun. Her zaman, etrafında VM hareket anlık oluşturmak ve sanal makineler için iyi olan tüm diğer fantezi şeyler yapabilirsiniz cabası.

Ben aynı problem vardı. Ben her phpMyAdmin giriş yapmaya çalıştım bu can sıkıcı pop-up pencereleri hataları birini başlamıştı. Ben kullanıcı adı ve şifrenizi yazdığınız ve daha sonra hata atmak.

Ne benim için çözülmüş, ayrıca apache bin dizinine libmysql.dl kopyalama oldu. Garip olan şey doğru yer ama yine de bunu yapmak için gerekli anlaşılan uzantıları.

Ben bu çözümlerin birkaç denenmiş ve bunlardan biri veya daha fazla çalışmış ... Rebooting burada anahtarıdır. Ben çalışıyordu yeniden başlatılması sonra ben bu değişiklikler arasında yeniden, ama etmedi:

  • lib dir apache postgres DLL eklemek
  • sistem PATH postgres yol eklemek
  • system32 postgres DLL eklemek

Ben sadece PATH çalışmış olurdu inanıyorum ama burada temizlik için hiçbir zaman öylesine orada sen gitmek.

the problem here is that apache has loaded PHP, but PHP was not able to load its extension (mysql, postgresql, ...). I think you should enter path values in your php.ini file in unix format (do not use backslash characters as directory separator). so in your php.ini file change this:

extension_dir = "C :/ php / ext"

Ben de Sistem Çevre değişkenleri içine "PostgreSQL" bin yolunu ekleyerek aynı sorunu vardı ve çözülmüş ediyorum

PATH: C:\Program Files\PostgreSQL\8.4\bin You can check in phpinfo() also.

PostgreSQL yüklediğinizde, Sistem yolunu içine ayarı kaçırdı. Ben elle sonra sistemi yeniden başlatın ekledi.

Ben de bu sorun vardı, ve 32 SYSTEN ve hala benim için işe yaramadı ilgili (. DLL) kopyalandı. Windows 7 64bit kullanıyorum. Bu benim için işe almak için ben de ext dizinine libmysql.dll kopyalamak vardı. Hata mesajı Apache günlüğü ve olumlu bir yanıt (conection kuruldu) ile yüklü sayfasını bıraktı.