Plesk PHP - mutlak dizinleri göremiyorum

2 Cevap php

Ben Plesk tarafından yönetilen bir web sunucusu PHP yüklü. Ben görünüşte çalışmıyor mutlak yolları daralmış bazı PHP include_pathdaki sorunlar yaşıyorum.

Yani, eğer bir dizin listesi, şu işleri yapmayı deneyin:

echo "<h3>Directory listing of .</h3>";
foreach (new DirectoryIterator('.') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    echo $fileInfo->getFilename() . "<br>\n";
};

Ama bu çıkış verir. (Dosyalar orada vardır).

echo "<h3>Directory listing of /var/www</h3>";
foreach (new DirectoryIterator('/var/www') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    echo $fileInfo->getFilename() . "<br>\n";
};

Çıktı:

Directory listing of .
.htaccess
index.php
try.php

Directory listing of /var/www

Herhangi bir fikir?

2 Cevap

Bu bir çoklu-site sunucusu kurulumu ise, bu normal bir davranış olabilir. Plesk (ya da sistemin bir diğer kısmı) Mevcut site için PHP örneği sınırlandırmak ve genel var/www dizin içine bir göz izin vermedi.

What user is your PHP running as? Does that user have the right to access /var/www?

Plesk böyle bir değişken katacak httpd.conf şunlardır:

php_admin_value open_basedir /var/www/vhosts/_web_domain_/httpdocs/:/tmp/

böylece kilit httpdocs herhangi bir üst klasörü listelemek ve /tmp olamaz. Eğer root ssh hesabı kullanarak config dosyasında manuel ekleyebilirsiniz.

Sitenizden httpd config dosyasını düzenleyin: /var/www/vhosts/_your_domain_/config/. _httpd.include (Plesk 10 bir zaman damgası ile değişen dinamik bir isimdir).

Orada php_admin_value open_basedir aramak ve kullanarak erişmesini istediğiniz klasörü ekleyebilirsiniz: ayırıcı. Gibi:

php_admin_value open_basedir /var/www/vhosts/_web_domain_/httpdocs/:/tmp/:/var/www

Eğer /usr/share/pear klasör gibi, tüm web siteleri için bir klasör erişimi eklemek istiyorsanız Ancak, plesk paneli dosyaları düzenlemek gerekir.

Düzenlemek /usr/local/psa/admin/conf/templates/default/service/php.php, değişikliğinin:

echo "php_admin_value open_basedir {$OPT['dir']}/:/tmp/\n";

Için:

echo "php_admin_value open_basedir {$OPT['dir']}/:/usr/share/pear/:/tmp/\n";

Klasöre tüm web sitelerine erişimi verecek remamber, sunucu güvenliği kırabilir. Kendi risk yok. Ve plesk güncellenmiş olsun eğer değişiklikleri silecektir remamber.