CI 묻고 답하기

제목 설치관련 및 controller 문의드립니다.
카테고리 CI 4 관련
글쓴이 민들레군 작성시각 2022/12/06 12:06:31
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 3410   RSS

안녕하세요 가입하자마자 이렇게 문의먼저 남깁니다.

ci4는 처음이라 다소 어려움이 있어 혹시나 이런글 보고 도움이 되실수도 있겠단 생각이 들어 설치부터 현재 진행한것까지 쭉 남기면서

문제점또한 같이 공유해볼려고 합니다.

아직은 해결하지 못한상태이지만 도와주시면 금방해결이 되지 않을까 하는 마음에 몇자 남겨봅니다.

 

설치는 자동설치(composer로 설치를 했습니다.)

기본인 public 디렉토리를 public_html로 변경을 했습니다.

여기서 중요한게

기존에 apache home디렉토리 설정이

/home/계정명/public_html 이렇게 구성이 되어있는데

현재 composer를 계정명쪽에 설치를 하고 public을 public_html로 변경하였습니다.

결과는 index 화면은 잘 나옵니다.

 

문제는 그 다음부터인데

controllers에 Pages.php를 하나 만들고 Home.php에 있는걸 그대로 복사해서 붙여넣기 하고 클래스명만

pages로 변경하였습니다.

 

<?php
namespace App\Controllers;

class Pages extends BaseController
{
    public function index()
    {
        return view('welcome_message');
    }
}

 

이렇게 변경하고 해당 경로에서 확인을 했는데

확인이 안됩니다.

http://localhost/pages

위와 같이 접속을 했습니다.

찾아보니 http://localhost/controller/pages 이렇게 해보라고 해서 이렇게 해도 안되네요 ㅠ

app/config/routes.php 문제인가 해서 해당 파일 열어보았는데

이부분에도 별다른건 없어보이는데

 

의심하고있는 부분이

1.제가 설치를 잘못했다.

2.controller에서 무언가 사용방법을 잘못놓쳤다.

3.router에 문제가 있다.

이정도밖에 생각이 들진 않는데

controller에서 home.php안에 model사용하는거나 views는 되어졌습니다.

 

아 그리고 한가지 더 특이한게 home::index만 될뿐이지 

public function view(){

//내용

}

이렇게 home.php안에 다른 이름으로 함수 넣고 url에서 불러들여도 작동이 되어지지 않습니다.

 

제가 어떤걸 놓쳤는지 혹시 알수 있을까요?

 

끝까지 읽어주셔서 감사드립니다.

 

 다음글 터미널로 php 실행하면 php fatal error ... (1)
 이전글 관리자 페이지 로그인이 한번에 안되는 문제 (1)

댓글

한대승(불의회상) / 2022/12/06 12:25:30 / 추천 1

CI4.2 버전부터 보안상의 문제로 자동라우팅(auto routing) 기능이 off된 상태로 출시됩니다.

라우팅 메뉴얼 참고하시어 추가된 컨트롤러를 정의해 주세요.

http://ci4doc.cikorea.net/incoming/routing.html#defined-route-routing

app/Config/Routes.php 파일 에디터로 여신후 아래처럼 추가한 후 http://localhost/pages 로 테스트 해보세요.

$routes->get('/pages', 'Pages::index');

 

민들레군 / 2022/12/06 14:12:28 / 추천 0

답변 감사드립니다. routes 부분은 몇차례 해보았는데 안되어집니다.

 

$routes->get('/pages', 'Pages::index');

$routes->get('pages', 'Pages::index');

둘다 해보았지만 순수하게 not found가 나옵니다. 

 

저도 routes부분에서 의심을 해보고 있긴한데 routes에서는 그냥 먹통이라 혹시나해서

$routes->get('/', 'Home::index');

지우게 되면 

아래와 같이 나오게 됩니다.

 

이런걸 보면 애시당초 pages를 인식을 못하는듯한데

혹시 composer 설치시 htaccess 부분도 자동으로 생성되어지는게 있을까요?

 

민들레군 / 2022/12/07 10:17:22 / 추천 0

한가지 찾았는데

http://localhost/index.php/pages 이렇게 접속하니 정상 노출되어지는걸로 보이네요 

.htaccess 부분을 잡아주면 될듯해서 public_html안에  .htaccess 관련 찾아보니

 

https://www.cikorea.net/bbs/view/tip?idx=20472

위와같이 조치하니 해결하였습니다.

저는 public 을 public_html로 변경하였기에 public_html에 .htacess 신규로 생성하여 적용하니 잘되었습니다.

application, public, system, tests, docs 에는 별도로 적용하지 않았습니다.

 

kasumil / 2023/02/15 11:54:41 / 추천 0
// $routes->setAutoRoute(false);

$routes->setAutoRoute(true);

한대승님 말씀대로 오토 라우팅이 꺼져있으니 제가 작성한 코드블록으로 해당 세팅을 건드려주시면 됩니다.