Neden PHP uzantısı düzgün yük almak için apache / bin dizinine libmysql.dll kopyalamak zorunda mı?

2 Cevap php

Ben bir Windows makine değilim. Gereksiz olması gerektiği gibi görünüyor, ama ben bunu yaparken, her şey aniden çalışır. Benim yolu ile yanlış bir şey var mı? Ben dll kopyalamak zorunda kalmamak için buna bir şey eklemek gerekir mi?

2 Cevap

Apache like any application will assume that the file is located in the same directory as the Current Directory path (check out http://en.wikipedia.org/wiki/Working_directory). If it's not there. The current working directory is USUALLY the same directory that httpd.exe (main executable) is in but it can actually be different if you do something like C:\Apache2>bin\httpd.exe

Bu durumda Geçerli Çalışma dizini C: Apache2'nin yerine C: \ \ Apache2 \ bin.

Dosya orada bulunan değilse eğer uygulama doğal PATH ortam değişkeni erişir. PATH ortam değişkeni dosyayı bulmak için yolları bir virgül ya da virgül ayrı liste) olduğunu.

Başlat -> Çalıştır -> "cmd.exe" yazın ve ardından Komut İstemi türü var geçerli yolu görmek için "% PATH% echo".

Son olarak, dosya bulunamadı eğer sadece dışarı hata olacaktır.

Bir ipucu olarak aslında bir uygulama yüklemeye çalışıyor ne dosyaları izleyebilir ve onlar Süreç Monitor kullanarak onları yüklemek nerede. http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Ben Apache yük DLL sorunları önce ve diğer uygulamaları da çözmek için bu aracı kullandım. Sadece basitçe çalışan uygulama için bir filtre ekleyin ve sadece dosya okur hissetmenize var.

MySQL ve Apache internals bağışta bulunan kimse bilmek.

Benim düşünce bu. Başvurunuzun iç libmysql.dll kullanıyor. Ve bu yol doğru değil yani PATH çevre değişkeninde arar gibi görünüyor. apache / bin PATH dizinde olacak. Yani bu yoldan dll alıyor. Dll bu yolda mevcut değilse bunu yüklemek için başarısız olur ve dolayısıyla başarısız düşünüyorum.

EDIT: yorum eklenmiştir çözümleri eklendi

  1. Makinenizi yeniden başlatmayı deneyin. Ben mysqlpp kütüphane ile aynı sorun vardı. Yol mysql bin dir işaret ama hala libmysql.dll bulmak edemedim - Daniel (06:55 de 26 Ocak)

  2. Apache (neredeyse kesinlikle böylece bir hizmet olarak çalışan eğer.) Kendi farklı kimlik bilgileri ile çalışıyor olabilir SYSTEM yolunda dirs yerleştirerek deneyin, değil USER yol . - Moocha (18 saat önce)