2012-02-22 2 views
0
$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. Я попытался запустить работает над кодом под Linux корневого пользователя (например, PHP файл-name.php) и в состоянии создать файл, однако не в состоянии читать исходный файл:

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

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

+1

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

+0

позвольте мне изменить разрешение на папку 777. – user914425

ответ

2

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

<?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)); 
?>