簡體   English   中英

Plesk上的PHP-無法看到絕對目錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM