문제 해결
다음은 일반적인 설치 문제와 권장 해결 방법입니다.
설치가 제대로 동작하는지 어떻게 알 수 있나요?
프로젝트 루트에서 명령줄을 통해:
php spark serve
브라우저에서 http://localhost:8080을 열면 기본 환영 페이지가 표시됩니다:

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 오류 로그를 참조하세요.