PHP fopen($url,w)

$url="http://www.source.com/top";
$destination=fopen("/var/www/vhosts/domain.com/httpdocs/temp/" . date('m-d-Y'),"w");
echo "dest=$destination<br>";
echo "url=$url<br>";
$source=fopen($url,"r");
$maxsize=5000000000;
$length=0;
while (($a=fread($source,1024))&&($length<$maxsize))
{
$tmpfile=$tmpfile . $a;
$length=$length+1024;

}        
    fwrite($destination,$tmpfile);
fclose($source);
fclose($destination);

Вышеприведенный исходный код PHP работает как шарм в моей учетной записи общего хостинга. Однако ему не удается записать файлы на мою выделенную машину Linux Centos. На этой машине Centos исходный $url может читаться нормально, но эта строка:

     $destination=fopen("/var/www/vhosts/domain.com/httpdocs/temp/" . date('m-d-Y'),"w");

Не удается записать файл в поле Linux. Я попытался запустить приведенный выше код под пользователем root Linux (например, php file-name.php) и смог создать файл, но не смог прочитать исходный файл:

     $destination=fopen("/var/www/vhosts/domain.com/httpdocs/temp/" . date('m-d-Y'),"w");

Я получаю ошибку 403. Я очень смущен тем, что происходит с этой машиной Linux Centos. Как я писал ранее в этом поле Centos, у меня проблема с возвратом переменных сеанса пусто между отправкой одной и той же страницы. Любая помощь приветствуется.


person user914425    schedule 22.02.2012    source источник
comment
@user914425 user914425 Это может быть связано с вашими правами доступа к файлам. Попробуйте chmod 777 -R /var/www/vhosts/domain.com/httpdocs/temp/ и повторите попытку. Переключите привилегии на более безопасные, как только обнаружите проблему   -  person Jaspreet Chahal    schedule 22.02.2012
comment
позвольте мне изменить разрешение папки на 777.   -  person user914425    schedule 22.02.2012


Ответы (1)


Почему бы просто не сделать?:

<?php 
error_reporting(E_ALL);/*Debug any permission problems*/
$url="http://www.source.com/top";
$temp="/var/www/vhosts/domain.com/httpdocs/temp/".date('m-d-Y').".tmp";

file_put_contents($temp,file_get_contents($url));
?>
person Lawrence Cherone    schedule 22.02.2012