include 관련인지;; 질문 하나 드리겠습니다.

include 관련인지;; 질문 하나 드리겠습니다.

QA

include 관련인지;; 질문 하나 드리겠습니다.

본문

A 개인 서버는 외부 접속 가능한 외부 아이피가 있습니다.

A 개인 서버는 내부 아이피도 가지고 있습니다.

A는 내부 아이피로 셋팅해도 외부 접속 가능한 외부 아이피가 있습니다.

 

예를들어..

A 외부 아이피는 10.0.0.10 입니다.

A 의 내부 아이피는 192.168.0.2 입니다.

 

 

B는 개인 서버 입니다. 내부 아이피만 가지고 있습니다.

B의 내부 아이피는 192.168.0.3 입니다.

 

A 외부 아이피로 접속 합니다.휴대폰으로요..

그리고 B 개인 서버로 include 를 하거나.. iframe을 쓰거나..

 

A 페이지에서 B로 접속할 수 있는 방법이 있을까요? 혹은 인클루드를 시켜야 할까요?

음...............................................................

힌트라도 얻을 수 있을까 하여 글 남깁니다. 지금 이틀째 폭풍 구글링중인데 답을 못찾겠습니다.

 

감사합니다. 

이 질문에 댓글 쓰기 :

답변 4

php.ini 설정후.....

allow_url_fopen = on

allow_url_include = on


// A.php
include 'http://192.168.0.3/B.php';

 

공유기 설정에서, 10.0.0.10을 통해 들어오는 접속중, 8080포트로 들어오는 트래픽을

내부아이피 192.168.0.3의 80포트로 "포트포워딩"후..................


// A.php
<iframe src="http://10.0.0.10:8080/B.php"><iframe>

 

 

 

 

php.in에서 allow_url_include=on 했더니 인클루드는 바로 됩니다. 휴대폰 와이파이 끄고도 제대로 보이구요. 같은 공유기에 물려 있는것도 맞습니다.

허나.. 이미지가 모조리 깨지는 사태가 발생이 되었습니다. 그래서 테스트로 땡겨지는(?) 페이지 주소앞에 모조리 $_SERVER['HTTP_HOST'] 을 넣었습니다. 하지만 외부 접속 가능한 아이피/땡겨지는아이피/img/aaa.png 로 땡겨져서 엑박이 발생 되었습니다..

여기서는 어떻게 진행 하면 좋을까요?

iframe방식이 아니라, include방식으로 인클루드했을때...


<img src="http://10.0.0.10/192.168.0.3/img/aaa.png"> 

이미지태그가 이렇게 표시된다는건가요?
그건, A서버가 B서버의 웹서버로 b.php를 요청한것(include 'B서버파일')이니까..
B서버의 ip 192.168.0.3 이 찍히는 것일테구요...

$_SERVER['HTTP_HOST']를 넣지마시고...

원래대로 하면 이미지가 깨진다고 하셨는데..
위와 같이 "개발자도구"로 이미지태그를 보지 마시고,
"소스보기"를 통해서 원래 이미지태그를 봤을때..
이미지 깨질 때의 이미지태그에 주소가 뭐라고 적혀있나요?
<img src="이미지 주소">
아마도 <img src="/img/aaa.png"> 이런식으로 되어있을거 같은데..(http://~~~없이..)

1. nfs 네트웍 파일시스템으로 b서버의 이미지폴더를 a서버의 해당폴더로 마운팅시켜도 되구요....
2. 이미지가 인터넷에 노출되지 않은 내부아이피 192.168.0.3 서버에 존재하니까...
웹브라우저에서 이미지태그내의 주소를 못불러오므로....
위의 공유기설정대로 포트포워딩해서...
b서버에서 이미지 태그소스에...


<img src="http://10.0.0.10:8080/img/aaa.png">

이렇게 출력되도록 코딩해도 되구요~
이미지호스팅서버 정도 되겠네요..

물론 아파치설정에서 사이트 하나 생성해야겠죠...8080포트로...

일단.. 관심가져 주셔서 감사합니다.

// A서버는 192.168.0.2(내부아이피)로 잡으면.. 10.0.0.2(외부아이피)로 접속이 됩니다.(예입니다.)
// B서버는 내부 아이피(서버)는 192.168.0.3 입니다. 여기 링크걸어서 한페이지 전체를 가지고 옵니다.
// A서버 에서 include('http://192.168.0.3/index.php'); 로 include 하게 됩니다.

상황1. db 정보는 정확하게 불러 옵니다(문자열은 가지고 옵니다.).
상황2. 거기에 착안해서 192.168.0.3의 모든 태그 img 주소를.. img src="http://<?=$_SERVER['HTTP_HOST']?>/img/logo.png" 이렇게 모두 바꿨습니다.
상황3. 제 노트북에서 테더링을 잡고 10.0.0.2로 접속을 하게 되면 문자열은 정상적으로 출력이 되나......

현상1. 사진은 엑박이 뜹니다.
현상2. 속성 주소는 192.168.0.3/img/logo.png 로 보입니다.
현상3. 여전히 모든 이미지는 엑박 처리가 됩니다.


자체 판단 내용 : 외부 아이피 10.0.0.2로 접속을 하였기 때문에 내부 서버 192.168.0.3의 이미지 주소를 땡겨 올 수 있느냐 없느냐의 차이같습니다. 10.0.0.2로 접속을 하여 192.168.0.3의 db 문자열을 가지고 올 수 있으면 이미지도 가지고 올 수 있지 않겠냐는 판단인데.... 내부 설정을 건들여야 하는지.. 아니면 다른 방법이 있는지 문의 드립니다. 

db문자열을 가져오는 것은 include 'b서버파일' 했기때문에...
서버측언어인 php가 실행되므로 b서버파일내에 있는 db문자열을 읽을 수 있는것이며...
이미지주소는 <img src=""> 서버에서 처리되는게 아니라..클라이언트..즉, 웹브라우저가 읽고 해석하는 것이니...
웹브라우저는 주소에 적힌대로 http://10.0.0.2/192.168.0.3/img/logo.png 이 파일을 읽으려고 10.0.0.2 아피주소의 웹서버로 요청하게 되는 것이고, 그 아이피는 a서버로서, a서버에는 이미지가 존재하지 않아서 나오는 엑박입니다...

자체판단이 맞구요...
위에 댓글 참조하세요..

답변을 작성하시기 전에 로그인 해주세요.
전체 9
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT