Bir php içinde mkdir izni potansiyel eksikliği () için Çözümler script yüklemek

4 Cevap php

Tamam, bu yüzden bir sorun var. Ben php derlenmiş şablonları saklamak için bir klasör oluşturmanız gerekir. I mkdir() uygun bir dizine çalışır bir yükleme komut dosyası var (compiled_templates).

Değişmez bu uyarıyı verir.

Warning: mkdir() [function.mkdir]: Permission denied in /home/tchalvak/sites/quotesite/quotes/install.php on line 92

Compiled_template klasör aynı izinleri sorun üzerinde de hatalar içinde dışarı oluşturulacak klasörün modunu değiştirerek Koşu.

Eğer php aracılığıyla bir depolama klasörüne ne miktarda oluşturabilirsiniz sağlamak için bir yolu var mı? Sen sadece bir klasör oluşturulur sağlamak için bir dış-php program kullanmak zorunda? Nasıl diğer php geliştiricileri bu konu ile anlaşma yapmak?

Düzenleme: Bu yüklenebilir bir komut, bu nedenle genel amacı 10 farklı rasgele insanlar kendi sunucusu üzerinde komut dosyası yüklemek için izin vermektir. "Php compiled_templates dizine tüm bu harika gerekli yazma izinlerine sahip olduğundan emin", ne yazık ki, bir manuel işlem olarak pratik değildir bu yüzden.

Edit: Lanet olsun, aynı yetki hatası gibi iyi bir geçici dizin oluşturmak için çalışırken. Lame.

4 Cevap

Bu geçici bir dizin varsa, sistem ısı Dir dizin oluşturun.

mkdir(sys_get_temp_dir() . 'example');

Genel yaklaşım olsa da sadece kullanıcı PHP (örneğin apache) olarak çalıştırmak sağlamak için gerektiğinde yazma izinleri vardır.

I tmp olarak dir koyarak katılıyorum. Eğer komut dosyasını çalıştırın ve aynı zamanda perma sizin paketinin içinde herhangi bir dirs doğru olduğundan emin olun önce genel yükleyici komut dosyası bu ile ilgili hakkında daha genel bir soruya cevap vermek için ... Bu web kök perma kurmak gerekir. Dedi i genellikle web montajcılar kaçınıyorum ve yerine php CLI sürümü için montajcılar yazmak. Tabii bunu yapmak için kutuyu ssh erişimi gerekir ama benim için en azından onun çok nadiren i Yüklü durumda.

Normalde biz bu script güzel bir açıklayıcı hata iletisi ve olası çözüm ile başarısız gereken bir seçenek değilse, uygun izinlere sahip sistem kurmak.

Eğer geçici bir klasör istediğiniz belirtilen beri belki tmpfile() , tempnam() ve sys_get_temp_dir() {[ (1)]} fonksiyonları sizin için yararlı olabilir.

Sistem temp dizini kullanarak size uygun olmaz, ben FTP kimlik sormak için yaratıcı montajcılar gördük ve sonra dizinleri ve izinler oluşturmak için FTP kullanabilirsiniz ettik.

Bu, ancak kendi iyiliği için çok zeki biraz olabilir.