자, 여기 php include() 지시어에 대해 많은 불만을 겪었습니다. 이것이 나를 위해 슬픔의 원인이 된 것 같습니다.IIS로 이동 한 후 상대적인 작업이 더 이상 포함되지 않습니까?
public_html\index.php
public_html\includes\content.inc.php
public_html\language\en\language.inc.php
public_html\classes\db.inc.php
사이트의 실행은 문제없이 아파치에 팽창 :
내 사이트의 구조는 다음과 같은 것입니다. 그러나 IIS에서는 작동하지 않습니다 (grr ... # @ !!! %).
설명해 드리죠 : 를 의 index.php하는 것은 항상 웹 브라우저에 의해 호출하고 요청에 따라, 그것은 content.inc.php이 포함되어 있다는 것입니다 이루어집니다 무엇 (이 콘텐츠 파일과 인덱스의 많은이 있습니다 .PHP는 논리에 따라 적절한 일)
// -- index.php --
include(includes/content.inc.php);
는 지금까지 아파치와 IIS 모두에서 잘 작동이 포함되어 있습니다. 차례로
이제 content.inc.php는 lang.inc.php 및 db.inc.php이 포함되어 있습니다. 이 라인은 아파치에 잘 작동
// -- content.inc.php --
include(language/en/language.inc.php)
include(classes/db.inc.php)
하지만 IIS는 포함 할 파일 파일 캔트 불평 : 같은
는 것 같습니다.
왜? 아파치가 현재 폴더를 유지하기 때문에 "." 스크립트 실행이 처음 시작된 public_html\
입니다. 반면에 IIS는 "."의 의미를 변경합니다. 현재 처리중인 파일이됩니다. 즉, content.inc.php를 포함시킨 후 IIS는 "." 있는 그대로 public_html\includes\
이제 모든 방법이 절대 경로가되도록 변경하는 것이 좋습니다. 하지만 내 질문은,이 아파치/IIS 문제는 내가 이해할 수 있는가? 코드에서 제대로 작동하지 않는 IIS 또는 PHP 설정이 있습니까?
BTW php.ini 파일은
include_path=".;C:\PHP\PEAR"
감사합니다. 나는 이것이 해결책이라고 생각하고 있었다. 그러나 나는 include 파일이 public_html 밖에 있어야하는 이유를 알지 못한다. 나는 보안을 위해 누군가가 웹을 통해 그들을 호출하지 못하도록하는 것이라고 생각한다. – Ali
귀하의 웹 사이트 주소를 알고 있다면 yoursite.com/classes/db.inc.php를 입력하여 public_html \ classes \ db.inc.php에 액세스 할 수 있습니다. . – Cups