0

我有一个有 30 个网站的服务器。现在我想将一个文件从站点 A 复制到站点 B。

代码:

$sExternPath  = str_replace(strtolower(SITENAME), strtolower($aBoardInfo['name']), CORE_PATH_PRIVATE); 
$sNewLogo     = file_get_contents(CORE_PATH_PRIVATE.'users_upload/company_logos/'.$sFileName);
//Put it in the folder 
file_put_contents($sExternPath.$sFileName, $sNewLogo);

错误:

[20-Mar-2015 10:32:30] PHP 警告:file_put_contents() [function.file-put-contents]:open_basedir 限制生效。文件(/var/www/vhosts/SITEB.nl/private/logo.jpg)不在允许的路径内:/var/ 中的 (/var/www/vhosts/SITEA.nl/:/tmp/) www/vhosts/SITEA.nl/httpdocs/pages/login/script.php 第 1262 行

[20-Mar-2015 10:32:30] PHP 警告:file_put_contents(/var/www/vhosts/SITEB.nl/private/logo.jpg) [function.file-put-contents]:无法打开流:Bewerking niet toegestaan​​ 在 /var/www/vhosts/SITEA.nl/httpdocs/pages/login/script.php 的第 1262 行

4

1 回答 1

0

/var/www/vhosts/SITEB.nl 位于 open_basedir 设置中的树集之外 - 您需要编辑 php.ini 文件并将 open_basedir 设置更改为 '/var/www/vhosts/:/tmp/' 而不是'/var/www/vhosts/SITEA.nl/:/tmp/' 或通过将其注释掉来取消设置,然后重新启动 apache。

http://php.net/manual/en/ini.core.php#ini.open-basedir

当脚本尝试访问文件系统时,例如使用 include 或 fopen(),会检查文件的位置。当文件在指定的目录树之外时,PHP 将拒绝访问它。所有符号链接都已解析,因此无法使用符号链接避免此限制。如果文件不存在,则无法解析符号链接,并将文件名与(已解析的) open_basedir 进行比较。

于 2015-03-20T09:56:07.083 回答