2008-11-16 13 views
5

DBD ve Oracle Uzmanları:Perl CGI betiğim neden Oracle DBD'yi bulamıyor?

Tuhaf şekilde davranan bir Perl web uygulamasına sahibim. Ben bir Oracle DB ve rapordan bazı şeyler okumak için kullanıyorum. Oracle'ın Instant Client programının 11.1.0.6.0 sürümüne sahibim. WinXP'de çalışıyorum ve PATH ortam değişkenini anlık istemci konumuna ayarlıyorum. Web sunucum için Apache2 var.

Sorun şu: uygulamayı bir komut satırından çalıştırdığımda, bir aksama olmadan çalışır. Ben http://127.0.0.1/cgi-bin/a.cgi çalıştırmak Ancak, aşağıdaki DB erişim hatası alır:

install_driver(Oracle) failed: Can't load 'C:/usr/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:The specified module could not be found at C:/usr/lib/DynaLoader.pm line 202. at (eval 9) line 3

Sezgi bir izin sorunu, ama bir yere bakmanıza nereye emin değilim söylüyor. Bu konuda biraz ışık tutabilir mi? Herhangi bir yardım için çok teşekkür ederim.

sayesinde Saker Ghani

+0

Hata mesajında ​​belirtilen aramaların kodunu girebilir misiniz? – Svante

+0

Ve Apache'nin hata günlüğünde bir hata var mı? –

cevap

2

hata .dll tam yolunu o teorinizi geri yapar böylece dosya izinleri olduğunu, sistem DLL bulmakta herhangi bir sorun olmaması olduğunu önerir gösteriyor olması sorun.

Gerçekten bir izin sorunu olup olmadığını sınamak için , hiçbir şey yapmaz, ancak doğrudan belirli bir .DLL dosyasını (normal bir open çağrısı) açıp çalışıp çalışmadığını bildiren önemsiz bir Perl CGI betiği yazmayı deneyin.

1

Teşekkürler Alnitak. Önerdiğin şeyi yapmayı denedim ve 'open' başarıyla başlatıldı 'C: /usr/lib/auto/DBD/Oracle/Oracle.dll'. Farklı bir makinede geliştiğimde bu hatayı görmeyi hatırlıyorum, ancak Oracle Instant Client lib'lerinin üzerinde yanlışlık yapmasıydı. Bunları yükledikten ve 'Yol' değişkenini ayarladıktan sonra, her şey iyi çalışmaya başladı.

1

Arabirim aracılığıyla cgi perl programına erişirken "Install_driver (Oracle) başarısız oldu:" C:/Perl/lib/auto/DBD/Oracle/Oracle yüklenemedi. DBD :: Oracle için .dll ': load_file: Erişim C: /Perl/lib/DynaLoader.pm satır 201'de reddedildi.

Ben çözünürlük "Herkes" in yanı sıra Oracle yükleme klasörü için Perl dizinin izinlerini vermekti IIS 6.

ile Pencere 2003 Server üzerinde Perl 5.10 kullanıyordum.

İlgili konular