open_basedir herhangi bir etkiye sahip değildir

3 Cevap php

Benim web hosting paneli için, kullanıcıların kendi dizin dışındaki dosyalara erişimini bloke edilmesi gerekir (/var/www/u/s/username). Ben bir dizin olacak insanları engellemek için httpd.conf bu hattı kullanmak için çalıştı.

<Directory /var/www/users/>
php_admin_value open_basedir .:/usr/lib/php5
</Directory>

Ama içinde php.ini, hiçbir etkiye sahip görünüyor. Ben yanlış ne yapıyorum?

3 Cevap

Aptalca bir öneri olabilir, ancak php.ini değişiklikleri yaptıktan sonra web sunucusu yeniden başlattıktan?

Eğer kullanmayı deneyebilirsiniz başka bir yöntem mevcut kullanıcıların dizine open_basedir direktifini kadar sıkın bir komut eklemek için "auto_prepend_file" yönergesini kullanarak bir dosya eklemek için:

PHP.net dan (http://www.php.net/manual/en/ini.sect.safe-mode.php)

PHP 5.3.0 'dan itibaren open_basedir çalışma zamanında sıkılır olabilir. Bu open_basedir php.ini içinde / / www olarak ayarlanırsa, bir betik ini_set ile run-time / www / tmp / yapılandırmayı sıkın () anlamına gelir

ADDITIONAL SUGGESTION:

INI etkili olabilmesi için geçersiz için Apache yapılandırma düzgün kurmak gerekecektir. Eğer "AllowOverride Options" veya Server veya Virtual Host için Apache config set "AllowOverride All" olduğundan emin olun.

http://us2.php.net/configuration.changes

http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride

Her kullanıcı Directory için bir satır eklemek gerekebilir:

<Directory /var/www/u/s/username>
php_admin_value open_basedir "/var/www/u/s/username/:/shared/path/"
</Directory>

Eğik çizgi, bir "UserName2" dizine erişimini kullanıcı "username" önlemek için burada olduğunu unutmayın.

Büyük ihtimalle yanlış "php.ini" modifiye ediyoruz.