2010-06-09 3 views
0

외부 서버 (Apache 실행)에서 로컬 서버 (IIS 실행)로 웹 사이트를 마이그레이션하는 중입니다. 해결할 수없는 문제가 있습니다. .IIS, Apache 및 header()

사이트는 mysql 데이터베이스에 저장된 일부 그래픽 (예 : http://www.norfolktourism.ca/index.php?option=com_bdirectory&task=image&cid=191)을 잡는 사용자 정의 Joomla 플러그인을 사용하고 있습니다. 그러나 사이트를 로컬 서버로 마이그레이션하면 이미지가 손상됩니다.

추가 조사를 통해 로컬 서버에서 실행될 때 어떻게 든 헤더 (공백)가 새 줄 에서처럼 처리되어 header() 함수가 처리되기 전에 이미지가 깨지는 것을 발견했습니다 (단, 오류가 발생하지 않습니다. 단지 깨진 이미지입니다.)

코드가 외부 Apache 서버에서 제대로 작동하므로 문제가 무엇인지 궁금합니다.

가능한 해결 방법에 대한 제안 사항이 있습니까?

+0

"새 같이 (공백 자신의 것 라인) 처리 "- 일부 문법 검사? – leonbloy

+0

"mysql 데이터베이스에 저장된 일부 그래픽을 가져옵니다"라고 말하면 로컬 mysql 서버 또는 http를 통해 외부 사이트를 의미합니까? – leonbloy

+0

MySQL 데이터베이스는 로컬 데이터베이스입니다. – MetalAdam

답변

0

말하기 어렵고 시나리오가 명확하지 않습니다. 외부 Apache 서버는 Linux 또는 Windows에서 실행됩니까? newlines과 관련된 버그 일 수 있습니까?

업데이트 예를 들어, 디버깅을 위해, 당신은이를 실행할 수 및 IIS 서버에서 (같은 이미지)의 출력과 비교 :

[[email protected] tmp]# wget -S -O imgunix.jpg 'http://www.norfolktourism.ca/index.php?option=com_bdirectory&task=image&cid=191' 
HTTP request sent, awaiting response... 
    HTTP/1.1 200 OK 
    Date: Wed, 09 Jun 2010 15:18:21 GMT 
    Server: Apache 
    Content-Length: 4406 
    Content-Disposition: filename="health.jpg" 
    Content-Type: image/jpeg 
Length: 4406 (4.3K) [image/jpeg] 

[[email protected] tmp]# od -c imgunix.jpg | head             0000000 377 330 377 340 \0 020 J F I F \0 001 002 \0 \0 d 
0000020 \0 d \0 \0 377 354 \0 021 D u c k y \0 001 \0 
0000040 004 \0 \0 \0 < \0 \0 377 356 \0 016 A d o b e 
0000060 \0 d 300 \0 \0 \0 001 377 333 \0 204 \0 006 004 004 004 
+0

아파치 서버가 리눅스에서 실행 중입니다 ... – MetalAdam

+0

글쎄, 그것은 그때 어떤 관련 문제 일 수 있습니다. 먼저 DB에 저장된 이미지가 손상되지 않았는지 확인해야합니다. 그런 다음, 그것을 나타내는 코드는 개행 문자로 잘못된 가정을하지 않습니다. – leonbloy

+0

이미지는 훌륭합니다. 작업 서버에서 데이터베이스 복사본을 가져 왔으므로 문제가 발생하지 않습니다. 외부 서버가 새 줄을 어떻게 가지고 있는지, 로컬이 아닌지를 파악할 수 없습니다. ob_clean() 및 유사한 기능을 사용하는 옵션을 살펴 보았으나 아무 소용이 없습니다 ... – MetalAdam