2011-12-03 3 views
0

주로 서버에서 업로드 파일을 가져와 그 위치로 이동시키는 PHP 스크립트가 있습니다. 일반적으로 정상적으로 작동하지만 가끔씩 스크립트가 20-30 분 동안 시작되지 않습니다. 업로드 된 전체 파일은 대기 중에 tmp 폴더에 저장되므로 데이터 전송이 완료된 것처럼 보입니다. 여기 PHP 스크립트가 시작되기까지 가끔씩 20-30 분 정도 기다려야합니다.

[29/Nov/2011:11:21:55 -0500] "POST /submit.php HTTP/1.1" ... 

그러나,이 항목이 11시 43분 정도까지 접근 로그에 표시되지 않습니다 (안드로이드 응용 프로그램에서) 스크립트에 POST를 나타내는 아파치 액세스 로그에서 발췌입니다 ... , 11:43:42 및 12:00:02의 다른 페이지 요청으로 둘러싸여 있습니다. 이것은 스크립트가 실행될 때까지 항목이 기록되지 않는다고 생각하게하지만, 제출 시점에 기록됩니다. 여기가 장소에 배치해야 오류 PHP 스크립트는 오랫동안 실행하지 않는 원인이 제가 스크립트에서 이벤트를 쓰고 있어요 로그, ...

[Tue Nov 29 11:43:19 2011] Script started: Nov 29, 2011 11:43:19 
[Tue Nov 29 11:43:19 2011] Audio file provided 
[Tue Nov 29 11:43:19 2011] Timestamp provided 
[Tue Nov 29 11:43:19 2011] Defaults set 
[Tue Nov 29 11:43:19 2011] Connected to database 
[Tue Nov 29 11:43:19 2011] Database selected 
[Tue Nov 29 11:43:19 2011] Query successful 
[Tue Nov 29 11:43:19 2011] 551: ID set 
[Tue Nov 29 11:43:19 2011] 551: Audio file moved 
[Tue Nov 29 11:43:19 2011] 551: Algorithm succeeded 
[Tue Nov 29 11:43:19 2011] 551: Algorithm query succeeded 
[Tue Nov 29 11:43:19 2011] 551: Photo type identified 
[Tue Nov 29 11:43:20 2011] 551: Photo and thumbnail saved 
[Tue Nov 29 11:43:20 2011] 551: Cache cleared 
[Tue Nov 29 11:43:20 2011] Script finished: Nov 29, 2011 11:43:20 

어떤 생각, 또는 로그의 종류입니다 찾아? 서버에서 Ubuntu 10.04, Apache 2.2.14PHP 5.3.2을 실행 중입니다.

+0

이것은 아마도 http://serverfault.com으로 이동해야합니까? –

+0

이 경우 업로드 된 파일의 크기는 어느 정도입니까? 스크립트는 아파치가 전체 파일을받을 때까지 시작하지 않으며 요청이 완료 될 때까지 액세스 로그에 쓰기를하지 않으므로 요청과 함께 액세스 로그에 HTTP 응답 코드를 쓸 수 있습니다 (예 : 200 OK 또는 500 오류). 이 경우 PHP를 호출하기 전에 파일을 업로드하는 데 약 21 분이 걸렸을 것입니다. – drew010

+0

파일 크기는 약 0.5MB입니다. 전체 크기의 파일은 서버의 tmp 폴더에 있습니다. PHP로 옮기기를 기다리고 있으므로 업로드 속도가 느린 것이 확실합니다. –

답변

0

실제로 서버의 메모리를 확인해야합니다. 메모리를 초과하여 업로드하면 문제가 발생할 수 있습니다. PHP는 업로드 된 모든 파일을 실제로 저장하기 전에 메모리에 저장하고, 먼저 스왑 파일에 기록해야한다면 설명하는 이슈를 볼 수 있습니다.

+0

0.5 MB 파일이 이렇게 할 수 있다고 생각합니까? Android 클라이언트는 하나의 항목을 제출하고 서버의 응답을 기다린 후 다른 항목을 제출합니다. 기억 문제를 확인하기 위해 확인하거나 넣어야 할 로그가 있습니까? –

+0

단순히 업로드하는 동안 메모리 사용량을 확인하십시오. –

관련 문제