CI 묻고 답하기

제목 어제의 에러는 mod_rewrite모듈이 없어서 일어난 에러였습니다.
카테고리 CI 2, 3
글쓴이 명견실버 작성시각 2019/12/12 13:48:56
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 12544   RSS

mod_rewrite 모듈이 활성화 되어있지 않아서 URI를 그냥 디렉토리로 인식 했었습니다..

그러나 새로운 난관에 봉착했네요..

[인덱스 죽이기는 해놓은 상태입니다.]

base_url/ 컨트롤러A / 메소드A

a href 태그를 통한 접근은 문제없이 호출이 되는데

base_url/ 컨트롤러B / 메소드B

똑같이 a href 태그를 통한 접근은 500에러가 납니다.

제 추측에는 뭐 맞지 않는 부분이 있어서 나는 거겠지만..

$config['log_threshold'] = 4; 이렇게 해두고 로그를 확인해봐도

500에러에 대한 로그는 전혀 남지않습니다..

물론 아파치 에러도 전혀 남지않더군요..

로그를 찍기만 해도 원인을 찾을 텐데ㅜㅜ

 다음글 config.php 에서 session 설정을 했는데요 (1)
 이전글 이메일 첨부파일 문의 (1)

댓글

변종원(웅파) / 2019/12/12 13:56:12 / 추천 0
db 연결되는지 확인해보세요.
명견실버 / 2019/12/12 14:23:57 / 추천 0

변종원(웅파) // database.php에 정의된 계정들과 ip로 외부에서 접속이 가능한지 확인하였습니다.

CI에서 따로 DB연결 여부를 확인할 방법이 있을 까요?

로그는 4로 설정해도 남지 않는거죠?

명견실버 / 2019/12/12 14:29:58 / 추천 0

변종원(웅파) // 현재 mysqli 드라이버를 쓰고 있긴 합니다.

mysqli_driver.php 에서 db_connect() 함수부분중

@mysqli_connect($this->hostname, $this->username, $this->password, $this->database, $this->port);

에서 따로 변수로 받아서 dump를 찍어보니 null이 나오긴 합니다..

kaido / 2019/12/12 16:55:08 / 추천 0

mysql 버전이 낮은 문제일 수도있습니다

mysqli 드라이버는 mysql 5.5 이상인가에서 작동합니다. 버전이 낮다면 mysqli 가 아니라 mysql 드라이버로 접속해야합니다.

mariaDB는 최초 버전도 mysql로 치면 5.6이상입니다.

명견실버 / 2019/12/12 17:26:24 / 추천 0
kaido // 감사합니다. 확인결과 mysql 5.7.19 이더군요. mysqli로 이미 다른페이지에선 문제없이 가져오기 때문에 그 문제는 아닐 것 같습니다.
다만 궁금한건 코드이그나이터의 에러로그가 왜 안잡히는지가 궁금합니다. 단순 internal server error는 잡히지 않는건지..
명견실버 / 2019/12/12 18:10:24 / 추천 0

로직상 문제가 있었습니다.

참고로 현재 PHP버전이 7.2인데 기존의 솔루션이 5.X버전이라 

cannot redeclare hex2bin() 라는 에러를 얻고

해당 함수쪽으로 가보니 이걸 주석처리하니 실행은 됩니다.ㅎ

아마 상위버전에선 hex2bin이라는 함수를 쓰지 않는 듯 합니다.

도라에몽 / 2019/12/13 15:29:38 / 추천 0

예전 GS네오텍 쪽의 CDN 쓸때 그쪽 onetime URL 솔루션에 hex2bin이 있었던 기억이 있습니다. 

PHP 5.4 이후버전부터 내부 함수로 포함된듯 한데요. 

if ( !function_exists( 'hex2bin' ) ) {
    function hex2bin( $str ) {
        $sbin = "";
        $len = strlen( $str );
        for ( $i = 0; $i < $len; $i += 2 ) {
            $sbin .= pack( "H*", substr( $str, $i, 2 ) );
        }

        return $sbin;
    }
}

php 이전버전에서도 사용가능한 솔루션으로 할려면 이렇게 해놓으시는게 더 좋을것 같습니다.