가상 호스트 설정에도 불구하고 로컬 서버와 반대로 라이브 서버를 사용하는 PHP

가상 호스트 설정에도 불구하고 로컬 서버와 반대로 라이브 서버를 사용하는 PHP

웹사이트를 다른 서버로 이전할 계획이었는데,

따라서 코드와 데이터베이스 등을 복사하고 Windows에서 호스트 파일을 변경하면 모든 것이 거의 예상대로 작동했습니다. 도메인을 다시 지정하기 전에 사이트를 로드하여 테스트용으로 사용할 수 있었습니다.

그러나 HTML 코드에서 이미지 URL을 찾는 PHP 라이브러리를 사용하는 기능이 하나 있습니다. 이 때문에 이미지가 동일한 서버에 있더라도 이미지에 액세스하려면 외부 http URL을 사용해야 합니다.

내 문제,

사이트의 다른 모든 항목이 새 로컬 서버를 사용하고 있음에도 불구하고 이 코드 조각은 마치 가상 호스트 설정이 설정되지 않은 것처럼 여전히 라이브 서버를 조회하고 있습니다.

내 /etc/sites-enabled/example.conf에 가상 호스트가 설정되어 있습니다...

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com

DirectoryIndex index.php
DocumentRoot /var/www/html/example

ScriptAlias /cgi-bin /var/www/html/example/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

ErrorLog /var/www/html/example/error.log
CustomLog /var/www/html/example/access.log combined
</VirtualHost>

위에서 설명한 한 가지 문제만 제외하면 예상대로 작동하고 있으며, 이 경우에는 무시하는 것 같습니다.

해당 도메인의 실제 A 레코드를 변경하면 이것이 작동할 것이라고 확신하지만 먼저 테스트해야 합니다.

편집: 더 명확히 하기 위해,

우분투에서 Apache2를 사용하고 있습니다.

내 핵심 질문은,

내 PHP 코드가 이미지 URL(예: )을 사용하여 작업할 때 <img src="http://www.example.com/myimage.jpg" />왜 특정 경우에만 해당 도메인이 가리키는 실제 서버에서 이 이미지를 로드하고 다른 모든 서버와 마찬가지로 로컬 서버에서 로드하지 않습니까?

답변1

PHP 코드가 클라이언트가 아닌 새 서버에서 실행되기 때문입니다. 해당 서버의 DNS 구성을 변경하지 않는 한(예: 호스트 파일에 항목 추가) PHP는 여전히 www.example.com이 라이브 서버에 있다고 (올바르게) 믿습니다. PHP는 아파치 구성을 조사하지 않으며 PHP가 실행 중인 서버에 www.example.com 요청에 응답하는 아파치가 있다는 사실을 전혀 모릅니다.

관련 정보