PHP "require_once"

4 Cevap

Çalışmıyor değil, ben bir dış kaynak şirketi (biz bu proje bizim için çalışan PHP geliştiricilerin bir offshore ekibimiz var ben hiç ama temellerini bilmek bir PHP adam değilim) tarafından yazılmış bazı PHP kodu hata ayıklama ediyorum; Kod bir cron işi her 30 dakikada denir ama onun ateş değil olması gerekiyordu. Ben işe yarıyor olmadığını test etmek için komut satırı üzerinden PHP komut dosyasını çalıştırmak için çalıştı, ama bana şu (anonim) errror veriyor:

PHP Fatal error: require_once(): Failed opening required '/myapp/_lib/_classes/MySql.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/myapp/_lib/_base/common.inc.php on line 6

Ancak, dosya /var/www/html/myapp/_lib/_classes/MySql.php uygun dizini altında bulunmaktadır. Ben eminim, basit bir şey eksik gibi, ama ben PHP çıplak temelleri ötesinde, gerçekten hiçbir şey bilmiyor ve ben gerçekten ve çalışan bu hizmeti almak gerektiğini söyledi.

EDIT: kodu /_lib/_classes tüm sınıfları ile __autoload() fonksiyonunu kullanarak

4 Cevap

Eğer bir bölü çizgisi ile bir dosya adı başlarsanız, onu mutlak bir yol demektir. yerine deneyin:

require_once('/var/www/html/myapp/_lib/_classes/MySql.php');

Harf duyarlılığı belki? Ben daha önce böyle bir sorun yaşadım.

Ben bir izin sorunu tahmin ediyorum - (test amaçlı) hesap hem de emin olmak ve ne olursa olsun hesap cron altında komut dosyasını çalıştırmak için gidiyor (büyük olasılıkla sizin, ama belki farklı bir) dosya üzerinde okuma ayrıcalığına sahip.

Ayrıca: var ise içerir için yol, /myapp/_lib/_classes/MySql.php der /var/www/html/myapp/_lib/_classes/MySql.php. Eğer tam yolunu başvurmak dahil değiştirebilir miyim?

Dediği gibi, gövde ve ek olarak doğru izinleri bu dosya gereklidir erişmek için.