Bu, sahip olduğum bir Apache/Perl sorunudur.Perl CGI Komut dosyaları kitaplıkta modül bulamıyor
benim perl CGI uygulamasında CPAN Modülü kullanıyorum. Ben tar.gz dosyaları ile cpan modülü yüklü Çizelge :: ParseExcel
olduğunu.
Bağımlılıkları yükledim. Ancak, root olmayan bir kullanıcı olarak yaptım. bu dosyaları içeren kütüphane kullanıcı klasörü/home/kullanıcı/lib Şimdi, başarılı bir şekilde bu kutuyu Apache2 yapılandırmış
altındadır. Html dizini/var/www/html'dir ve cgi klasörü/var/www/html/cgi-bin'tir. Çalıştığını doğruladım çünkü bu klasördeki tüm komut dosyaları özel modülleri gerektirmemekte, yani firefox tarayıcımda çalışmaktadır. merhaba dünya, veri dökümleri, basit formlar. Ben "E-tablo :: ParseExcel" kullanmak komut dosyalarını çalıştırmayı denediğinizde
Ancak, ben modül @ INC bulunabilir olamaz hatası alıyorum. Ancak, kitaplığı ekleyen komut dosyasının başında "lib kullan" deyim var.
Komut dosyaları sorunsuz PUTTY olarak çalıştırılabilir. Yalnızca komut dosyasını tarayıcıdan çalıştırırken sorunu anlayabiliyorum.
Bu web uygulaması
başka bir kutu üzerinde yazılı ve o kutuda çalışıyor edildi. Çünkü oraya geliştim. Apache2'yi kişisel Ubuntu makinem üzerine koydum ve web uygulamasını ve modülleri buraya yükledim ve yerel kutumda çalışıyor.Ben belirledik "chmod -R a + rx" kullanıcı kütüphanesi klasörüne, bu yüzden Apache üst dizinin ayarlarını bunu engelledi sürece klasöre erişimi olduğunu düşünürsünüz? Bunu/home/user klasöründe veya daha kötüsü/home klasöründe çalıştırmak zorunda değilim, değil mi?
Sorunla ilgili herhangi bir bilgi var mı?
Zaman ayırdığınız için hepinize teşekkür ederiz! Burada
@INC hatasının listelenen ilk dizini, söz konusu kitaplık dizinidir. Hangi kullanıcı apache'nin 'nobody' veya 'www-user' dosyalarına erişmeye çalıştığını bilmiyorum, ancak bir izin sorununa eğiyorum. Evet, tüm kitaplık sahibi, grubu ve kullanıcıları için r-x izinlerine sahiptir. – bleutyler
Sadece modülün dizini değil. Örneğin, eğer modül /home/tydel/lib/perl/Net/BoogieTime.pm ise,/up dizinindeki her dizin en azından o + rx gerektirir.Bu/home,/home/tydel,/home/tydel/lib ve/home/tydel/lib/perl,/home/tydel/lib/perl/Net ve son/ev/tydel/lib/perl/Net içerir /BoogieTime.pm, o + r'ye ihtiyaç duyacaktır. Umarım yardımcı olur. –