require(): Failed opening required 오류 문의 > 출간도서 Q&A

본문 바로가기

출간도서 Q&A

일반글
PHP&MySQL

require(): Failed opening required 오류 문의

페이지 정보

게시물QR코드

본문

90200288de47e1c3c900cc3a92b3f45c_1576550337_5231.jpg

파일 경로는 위와 같습니다.

(사진은 클릭하면 커집니다)


function.php에서, PHPMailer.php를 require 하기 위해

function.php 파일 최상단에 아래와 같이 경로를 적었습니다.


90200288de47e1c3c900cc3a92b3f45c_1576550322_7198.jpg


하지만 이렇게 하니 function.php를 호출하는 단계에서 아래와 같은 에러가 표시됩니다.

90200288de47e1c3c900cc3a92b3f45c_1576549907_1865.jpg
 
이 문제 때문에 오랜 시간 해결책을 찾고 있는데 아직 찾아내지 못했습니다.
php.ini의 include_path를 수정해야 하는걸까요?



댓글목록

그누위즈님의 댓글

그누위즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

안녕하세요 그누위즈입니다.
require 를 include 로 바꾸어서 테스트 해보시기 바랍니다.

아우님의 댓글

no_profile 아우쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

require를 사용했을 때는 본문처럼 PHPMailer.php에 대해서만 에러가 나왔는데

include './PHPMailer/src/PHPMailer.php';
include './PHPMailer/src/SMTP.php';
include './PHPMailer/src/Exception.php';

이렇게 include로 바꿔서 사용해보니 PHPMailer.php, SMTP.php, Exception.php에 대해서 에러가 표시되더라구요. PHPMailer에 대한 클래스를 찾지 못해서 Uncaught Error: Class... 에러도 표시되고 있었습니다.


그래서 막막해하다가 include에 대한 php 메뉴얼을 보니 댓글에 $_SERVER['DOCUMENT_ROOT']를 붙인 다음에 경로를 적으면 된다고 나오는군요.

include $_SERVER['DOCUMENT_ROOT'].'./PHPMailer/src/PHPMailer.php';
include $_SERVER['DOCUMENT_ROOT'].'./PHPMailer/src/SMTP.php';
include $_SERVER['DOCUMENT_ROOT'].'./PHPMailer/src/Exception.php';

이렇게 적으니 에러가 나오지 않습니다.
$_SERVER['DOCUMENT_ROOT']가 서버를 통해 경로를 찾아주나 봅니다.
이것을 아래처럼


echo $_SERVER['DOCUMENT_ROOT'];


찍어보니
C:/xampp/gnuwiz가 나와요.
그래서 $_SERVER['DOCUMENT_ROOT']을 쓰지 않고 아래처럼 절대좌표 형식으로 include를 해봤거든요

include 'C:/xampp/gnuwiz/PHPMailer/src/PHPMailer.php';
include 'C:/xampp/gnuwiz/PHPMailer/src/SMTP.php';
include 'C:/xampp/gnuwiz/PHPMailer/src/Exception.php';

그랬더니 에러가 표시되지 않아요.


그렇다는 건, 결국 처음에 본문에서 에러가 났던 것은, 거기서 사용했던 상대좌표 형식이 잘못되었다는 뜻인데...
아무리 찾아봐도 형식에 대해서는 문제가 보이지 않네요. 상대좌표를 쓰는 건 쉽지 않네요.

그누위즈님의 댓글의 댓글

그누위즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

아주 보통은 가장 처음에 하신것 처럼 경로를 ./ 형식과 같이 표기하는 방식이 많이 사용됩니다.
하지만 이런것들은 웹 서버 설정에서 보통은 root 경로를 잡아두고 사용합니다.
어쨋든 잘 해결 하신것 같아 다행입니다.
그래도 오류를 발견하고 해결하며 실력이 늘어나니 좋은 경험 하신것 같습니다.^^

  • Addr.부산광역시 부산진구 중앙대로 666번길 50, 더샵센트럴스타 CEO. 이경애 Email. gnuwiz@naver.com
  • BR. 625-68-00172 TRC. 2019-부산해운대-1186 TEL. 0507-1382-2790
Copyright © 2017 ~ 그누위즈. All rights reserved.