2014-03-06 5 views
0

나는 부산물로 html 파일 (크기가 100-500KB)을 생성하는 백그라운드 스크립트를 가지고 있으며, 500 개가 누적되면 .tar.gz에 압축하여 보관한다. 그것은 다음과 같은 예외가 던질 때 그것은이 아침까지 지금까지 131 개 .tar.gz의 파일을 몇 주 동안 논스톱을 실행하고 생성되었습니다 PharData :: buildFromDirectory가 파일 내용을 tar에 쓰지 못하는 경우 확인해야 할 사항은 무엇입니까?

$name = $path_archive . $set . '.tar'; 
$archive = new PharData($name); 
$archive->buildFromDirectory($path_input); // <--- line 68 
$archive->compress(Phar::GZ); 
unset($archive); 
unlink($name);    
array_map('unlink', glob($path_input . '*')); 

보관

에 대한

Uncaught exception 'PharException' with message 'tar-based phar 
"E:/xampp/.../archive/1394109645.tar" cannot be created, contents of file 
"58836.html" could not be written' in E:/xampp/.../background.php:68 

코드 책임을 내가 체크 나는 HTML 파일 자체가 불규칙한 아무것도 찾을 수 없습니다 지금까지

  • 으로 확인했다 맞는지
  • 아무것도 다른 사람에 없었다 과정에서이 파일을 uching,
  • 스크립트 시간 제한 및 메모리 제한했다
  • 충분한 예비 메모리 및 디스크 공간 예외를 발생 및/또는 더 자세한을 얻을 수있는 방법이 될 수 무엇

PharData::buildFromDirectory에서 메시지를 다시 받으시겠습니까?

봉투 (버추얼 박스)에서 가상 XP Win7에 호스트의 공유 폴더에 휴대용 XAMPP (1.8.2, PHP 5.4.25)를 실행은

답변

0

내가 버그 사냥의 시간 오늘 이후 유사한 문제를 해결했다. 디스크의 한 파티션에서 너무 적은 공간이 원인이었습니다. tar.gz 아카이브가 생성 된 파티션에 충분한 공간이 있었지만 다른 파티션에서 일부 로그 파일을 제거한 후에 모든 파티션이 다시 작동합니다.

개체 PharData이 어딘가에 임시 데이터를 저장하는 것이 가능하다고 생각합니다. 따라서 tar.gz 아카이브를 만드는 데 충분한 공간이 디스크에 있더라도 이런 일이 발생합니다.

+0

그 중 하나를 살펴 보았지만 현재 단일 파티션 디스크에서 실행 중임을 알았습니다. 문제가 생겼을 가능성이 있습니다. 실행중인 env 때문에 문제가 발생할 수 있습니다. VirtualBox 공유 폴더 플러그인이 결함이있는 경우 필기 프로세스에서 틀림없이 발생할 수 있습니다. –