require_once (.. /.. / yol / / script.php) yalanladı akışı izni açılamadı

3 Cevap php

Burada bir örneğe bakın: http://mattpotts.com/portal/

Ben başarısızlık noktasını bulmak için gerekli yolunda her dizinde bir includeme.htm koydu. Bu aynı dizin yapısı ile benim yerel makinede (pencereler) üzerinde çalışıyor ama benim uzaktan (linux) sunucuda başarısız olur.

Dizin yapısı:

+-firefli/                 drwx--x--x
  +-private_html/          drwx------
    +-foo/                 drwxr-xr-x
    +-bar/                 drwxr-xr-x
    +-portal/              drwxr-wr-w
  +-public_html/           drwxr-wr-w
    +-foo/                 drwxr-wr-w
    +-portal/              drwxr-wr-w

Izinler sorun neden private_html dizin olduğunu onaylayın. Umarım dizin yapısı amacını görebilirsiniz şeyler yapmanın ortak bir yol ama o benim için çalışıyor, ben bilmiyorum. Peki, şimdiye kadar.

Bunu soran etrafında çok uzun bir yol gittim ama benim soru basitçe şudur: private_html drwxr-xr-x olması ayar ile yanlış bir şey var mı? Ben web üzerinden erişilebilir olmak istemiyorum göz önüne alındığında. Ama izinler gerektiği yapmamalısınız? Apache http üzerinden public_html dizinin erişilebilir yapıyor çünkü.

3 Cevap

Eğer public_html işaret etmek doğru DocumentRoot kurmak varsa Eh, olursa olsun bunu koymak ne izinleri, web üzerinden erişilebilir olmayacaktır.

Özel HTML bunu yönlendirme olacağı bir. Htaccess dosyasına koymadan web erişilebilir değil. Bunu yapmak / nasıl ne demek bilmiyorsanız, güvenli vardır.

Eğer komut her türlü ihtiyacı için bu izinleri ayarlama ince olmalıdır.

Bunu web kök dışında olduğu gibi, private_html klasör / dosya izinleri ile web kullanıcıları engellemek gerekmez. Dediğiniz gibi, web kullanıcılarının sadece public_htm içinde şeyler alabilirsiniz

Göreceli bir web yol varsa gelecek ayıklama hızı için, realpath kullanarak gerçek bir yola dönüştürebilirsiniz:

$path = realpath('../../private_html');
// $path is now /public_html/foo/private.html or whatever

user:group ne için private_html? Web sunucusu grubunun bir üyesi veya dosyanın sahibi ya da olması gerekir. Dirctory açmak için web sunucusu için execute izni olması gerekir dizin içeriğini okumak için. Esasen bunlar, aynı olmalıdır user:group olarak public_html. Sadece write izin vermemek istiyorum. tot o web sunucusu. Size belge kök kurduysanız public_html private_html ne olursa olsun izinleri web üzerinden erişilebilir değil. Ayrıca, ben her zaman yolunu argümanları ve dosya operasyon realpath kullanın.