[英]PHP on Plesk - Can't see absolute directories
我在由Plesk管理的Web服務器上安裝了PHP。 我遇到了一些PHP include_path問題,這些問題已縮小為絕對路徑,顯然不起作用。
因此,如果我嘗試執行目錄列表,則可以進行以下工作:
echo "<h3>Directory listing of .</h3>";
foreach (new DirectoryIterator('.') as $fileInfo) {
if($fileInfo->isDot()) continue;
echo $fileInfo->getFilename() . "<br>\n";
};
但這沒有輸出。 (那里有文件)。
echo "<h3>Directory listing of /var/www</h3>";
foreach (new DirectoryIterator('/var/www') as $fileInfo) {
if($fileInfo->isDot()) continue;
echo $fileInfo->getFilename() . "<br>\n";
};
輸出:
Directory listing of .
.htaccess
index.php
try.php
Directory listing of /var/www
有任何想法嗎?
如果這是一個多站點服務器設置,則這可能是正常的行為。 Plesk(或系統的其他部分)會將您的PHP實例限制在當前站點內,並且不允許瀏覽一般的var/www
目錄。
您的PHP以哪個用戶身份運行? 該用戶是否有權訪問/ var / www?
Plesk將在httpd.conf中添加如下所示的變量:
php_admin_value open_basedir /var/www/vhosts/_web_domain_/httpdocs/:/tmp/
因此您無法從鎖httpdocs和/ tmp中列出任何父文件夾。 您可以使用ssh根帳戶在配置文件中手動添加。
在/ var / www / vhosts / _your_domain_ / config /中從您的站點編輯httpd配置文件。 _httpd.include (Plesk 10是隨時間戳更改的動態名稱)。
您可以在其中搜索php_admin_value open_basedir並使用:分隔符添加要訪問的文件夾。 喜歡:
php_admin_value open_basedir /var/www/vhosts/_web_domain_/httpdocs/:/tmp/:/var/www
但是,如果要為所有網站添加文件夾訪問權限,例如/ usr / share / pear文件夾,則需要編輯plesk面板文件。
編輯/usr/local/psa/admin/conf/templates/default/service/php.php ,從:
echo "php_admin_value open_basedir {$OPT['dir']}/:/tmp/\n";
至:
echo "php_admin_value open_basedir {$OPT['dir']}/:/usr/share/pear/:/tmp/\n";
重新授權將允許所有網站訪問該文件夾,可能會破壞服務器的安全性。 后果自負。 並確保如果plesk得到更新將刪除您的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.