2010-02-09 5 views
1

저는 CodeIgniter를 사용하여 웹 사이트를 로컬로 개발했으며이를 웹 서버에 업로드하려고 시도했으며 다음 오류 (업로드 할 때까지 본 적이 없었습니다)를 받았습니다.Localhost에서 웹 사이트로 CodeIgniter를 업로드 할 때 문제가 발생했습니다.

Fatal error: Class 'CI_Hooks' not found in <snip>/system/codeigniter/Common.php on line 136 

내가 CodeIgniter는 자신의 최신 빌드를 제외하고, PHP의 5.3.x와 잘 재생되지 않습니다 읽었습니다 (나는 또한 다운로드 한 및 업로드를 시도 단순히 시스템 디렉토리에 내 편집 된 파일을 교체하지만) 그러나 나는 여전히 같은 오류가 발생합니다.

그 메시지를 검색하면 많은 도움이되지 않았습니다 ... 아무도 비슷한 것을 볼 수 있습니까?

답변

1

사용하는 CI의 버전은 무엇입니까? 최신 CI 버전 1.7.2를 사용하고 파일 system/codeigniter/Common.phpCI_Hooks 클래스에 대한 호출을 찾을 수 없습니다.

개발시 사용자 정의 라이브러리가 있거나 CI 시스템 파일을 터치합니까? 모든 파일이 서버에 성공적으로 업로드되었는지 확인 했습니까?

+0

그건 재밌 네요, 나도 그럴 수 없었어. 다시 모든 것을 다시 올리려고 노력할 것입니다 ...하지만 '환영'파일의 이름을 'main'으로 바꾸는 것 외에는 특별한 것을 구현하지 않았습니다. – espais

+0

잘못된 파일을 업로드했을 수 있습니다. git, svn, mercurial과 같은 SCM을 사용하여 소스 코드를 관리하고 서버에 업로드하는 것이 좋으므로 서버의 코드가 개발 컴퓨터의 코드와 동일하거나 최신인지 확인 할 수 있습니다. 나는 자식을 선호하며 항상 할 수있을 때마다 그것을 사용합니다. –

+0

그것이 잘못된 FTP 업로드였습니다 ... 감사합니다! – espais

1

나는 몇 달 전에 비슷한 문제가 있었으며, 불행하게도 실제로 발생한 일을 정확하게 확인하지 못했습니다. 그러나 내가 취한 조치는 다음과 같습니다.

파일을 업로드하고 전송시 손상 위험에 노출되는 대신 서버에 codeigniter zip 파일을 보관하십시오.

wget http://codeigniter.com/download.php 

해당 파일의 압축을 푼 다음 웹 사이트 루트 디렉토리로 이동하십시오.

이제 도메인을로드하고 수정하지 않고 기본 CI 설치가 제대로 작동하는지 확인하십시오. 그런 다음 작동되면 웹 사이트 특정 파일을 한 번에 조금씩 이동하고 자주 다시로드하기 때문에 무엇이 중단되는지 알 수 있습니다.

제 경우에는 SFTP가 파일을 보크 화했거나 다른 이상한 문제가 발생했다는 가정 만 할 수 있습니다.

0

이 줄은 load_class라는 함수에 있고 'CI_Hooks'를 검색하면이 줄이 /system/libraries/Hooks.php에 정의되어 있음을 알 수 있습니다. (따옴표 포함) '후크'을 검색하면 온라인 시스템에서

$EXT =& load_class('Hooks'); 

/CodeIgniter의/CodeIgniter.php가

그래서 당신은 시스템/라이브러리가 Hooks.php이 있는지 확인하려면, 단지 수를 보여줍니다 사실 그것은 자본금 H를 가지고 있습니다. 그렇지 않다면 그것은 당신의 문제입니다.

다양한 역사적인 이유 때문에 파일 이름의 대소 문자는 중요하지 않으므로 Windows에서 응용 프로그램이 제대로 작동하지만 Linux/UNIX로 옮길 때 문제가 발생합니다.

모델 파일 이름에 대문자 첫 글자를 주었을 때 한 번 실수를했습니다. 이것은 윈도우에서 잘 동작했지만 리눅스에 배포했을 때 즉시 오류가보고되었습니다. 다행히도 추적하기가 더 쉬웠습니다.

1

82과 같이 '후크'클래스의로드가 CodeIgniter.php에 발생합니다. 나는 이것이 어떤 종류의 .htaccess 문제이거나 시스템 폴더의 경로가 잘못되었다는 것을 나타낼 것입니다.

관련 문제