문제 해결

다음은 일반적인 설치 문제와 권장 해결 방법입니다.

설치가 제대로 동작하는지 어떻게 알 수 있나요?

프로젝트 루트에서 명령줄을 통해:

php spark serve

브라우저에서 http://localhost:8080을 열면 기본 환영 페이지가 표시됩니다:

CodeIgniter4 환영

URL에 index.php를 포함해야 합니다

/mypage/find/apple과 같은 URL이 동작하지 않고 /index.php/mypage/find/apple과 같은 유사한 URL은 동작한다면, Apache의 .htaccess 규칙이 올바르게 설정되지 않았거나 Apache의 httpd.conf에서 mod_rewrite 확장이 주석 처리되어 있을 수 있습니다. index.php 파일 제거를 참조하세요.

기본 페이지만 로드됩니다

URL에 무엇을 입력하든 기본 페이지만 로드된다면, 서버가 검색 엔진 친화적인 URL을 제공하는 데 필요한 REQUEST_URI 변수를 지원하지 않을 수 있습니다. 먼저 app/Config/App.php 파일을 열고 URI Protocol 정보를 찾아보세요. 몇 가지 대체 설정을 시도해 볼 것을 권장합니다. 그래도 동작하지 않는다면 CodeIgniter가 URL에 물음표(?)를 강제로 추가하도록 해야 합니다. 이를 위해 app/Config/App.php 파일을 열고 다음을 변경하세요:

<?php

namespace Config;

use CodeIgniter\Config\BaseConfig;

class App extends BaseConfig
{
    // ...

    public string $indexPage = 'index.php';

    // ...
}

다음으로 변경:

<?php

namespace Config;

use CodeIgniter\Config\BaseConfig;

class App extends BaseConfig
{
    // ...

    public string $indexPage = 'index.php?';

    // ...
}

입력 파일이 지정되지 않았습니다

“No input file specified” 오류가 표시되면 다음과 같이 리라이트 규칙을 변경해 보세요(index.php 뒤에 ?를 추가):

RewriteRule ^([\s\S]*)$ index.php?/$1 [L,NC,QSA]

앱이 로컬에서는 잘 동작하지만 운영 서버에서는 동작하지 않습니다

폴더 및 파일 이름의 대소문자가 코드와 일치하는지 확인하세요.

많은 개발자들이 Windows 또는 macOS의 대소문자를 구분하지 않는 파일 시스템에서 개발합니다. 그러나 대부분의 서버 환경은 대소문자를 구분하는 파일 시스템을 사용합니다.

예를 들어, app/Controllers/Product.php가 있는 경우 짧은 클래스 이름으로 product가 아닌 Product를 사용해야 합니다.

파일 이름의 대소문자가 잘못된 경우 서버에서 파일을 찾을 수 없습니다.

튜토리얼에서 모든 곳에서 404 오류가 발생합니다 :(

PHP 내장 웹 서버를 사용하여 튜토리얼을 따라 할 수 없습니다. 내장 웹 서버는 요청을 올바르게 라우팅하는 데 필요한 .htaccess 파일을 처리하지 않습니다.

해결 방법: Apache를 사용하여 사이트를 서비스하거나, 프로젝트 루트에서 CodeIgniter 내장 서버인 php spark serve를 사용하세요.

도움이 되지 않는 “Whoops!” 페이지는 무엇인가요?

앱이 “Whoops!”와 함께 “We seem to have hit a snag. Please try again later…”라는 텍스트가 있는 페이지를 표시합니다.

이는 운영 모드에서 복구 불가능한 오류가 발생했다는 신호이며, 보안상의 이유로 웹 앱 방문자에게 오류 내용을 보여주지 않는 것입니다.

오류는 로그 파일에서 확인할 수 있습니다. 아래 CodeIgniter Error Logs를 참조하세요.

개발 중에 이 페이지가 표시되면 .env에서 환경을 “development”로 변경해야 합니다. 자세한 내용은 개발 모드 설정를 참조하세요. 그런 다음 페이지를 다시 로드하면 오류와 역추적 정보를 볼 수 있습니다.

CodeIgniter 오류 로그

CodeIgniter 오류 로그를 참조하세요.