CI 묻고 답하기

제목 URL 입력시 No input file specified 발생문제
글쓴이 엠보싱 작성시각 2009/11/19 22:08:09
댓글 : 16 추천 : 0 스크랩 : 0 조회수 : 42853   RSS

테스트 서버에서  개발 후  실제서버를 돌리려구  joyent 에서 개발자용 hosting 서버를 하나 받아서

CI 를 설치 했는데요    일단 아파치 홈 루트가 설정되어있는 폴더에  넣어서  404 ERROR 뜨는 것 까지 확인했습니다.

config.php 파일에서 base_url 랑 database.php 에서  파일 수정 했구요

그런데 테스트 서버에서  먹히던  http://도메인/controller명/ function명/   이 실행이 안되고

자꾸  No input file specified   이 문구나   505  ERROR를  표출합니다. 

아파치 conf 파일 수정 권한이 없어서 
.htaccess 파일에


<IfModule mod_rewrite.c>
    RewriteEngine On
 
 RewriteBase /
 
 RewriteCond %{HTTP_HOST} ^codeigniter-kr.org [NC]
 RewriteRule ^(.*)$ http://www.codeigniter-kr.org/$1 [L,R=301]
 

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_URI} !^/captcha/(.*)$
 RewriteCond %{REQUEST_URI} !^/images/(.*)$
 RewriteCond %{REQUEST_URI} !^/js/(.*)$
 RewriteCond %{REQUEST_URI} !^/include/(.*)$
 
 RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

넣었구요 

또 
config.php 파일에서   $config['index_page'] = "index.php";     이넘을   $config['index_page'] = "index.php?";

로도  수정해 보았지만 여전히  해결되지 않구 있네요..ㅜㅜ

구글링을 통해 해결해 보려 하지만..........이놈의 영어.......   

도움좀 주세요 ~

 다음글 초보에요. 뷰 안에서 다른 뷰 호출할려면... (1)
 이전글 액티브 레코드 질문드립니다. (13)

댓글

변종원(웅파) / 2009/11/19 23:30:52 / 추천 0
RewriteBase /
 
 RewriteCond %{HTTP_HOST} ^codeigniter-kr.org [NC] 
 RewriteRule ^(.*)$ http://www.codeigniter-kr.org/$1 [L,R=301]

위 라인 주석처리하거나 삭제하고 다시 접속해보시구요.

$config['index_page']= ""; 빈칸으로 처리하셔야 합니다.
엠보싱 / 2009/11/20 12:32:45 / 추천 0
웅파님  ㄳ합니다. 

위에 처럼 기존의 .htaccess 파일 내용을 지우고  위 소스를 넣고  index_page도 "" 로  했는데도  문제가 해결되지 않는군요....

route 페이지에서  $route['default_controller'] 를   예제 blog 로 해놓으면  기본 도메인 입력시  적용은 됩니다.

하지만  도메인/blog 라고 하면  여전히   No input file specified  이 글이 뜨거나  500번 에러 코드를  표출합니다.   ㅜㅜ
ci세상 / 2009/11/20 12:51:23 / 추천 0
.htaccess 이거 지우고 http://도메인/index.php/blog 라고 하면 어떻게 뜨나요?
변종원(웅파) / 2009/11/20 13:23:39 / 추천 0

아파치에서 mod_rewrite 모듈이 올라와있는지 확인 부탁드립니다.

만얀 ci세상님이 올리신대로 http://도메인/index.php/blog 도 접속이 안되면 다른 문제이지만
http://도메인/index.php/blog은 접속되고 http://도메인/blog 은 접속이 안되면 mod_rewrite 모듈이
실행되지 않거나 .htaccess 파일이 잘못 되거나 둘중 하나 입니다.

변종원(웅파) / 2009/11/20 13:43:24 / 추천 0
포럼 검색해보니  .htaccecc의 내용중에서

RewriteRule ^(.*)$ index.php/$1 [L]  -> RewriteRule ^(.*)$ index.php?/$1 [L]

이렇게 바꿔보라네요.

엠보싱 / 2009/11/20 13:57:29 / 추천 0
ci세상  / 웅파    님이  말씀하신데로    .htaccess 파일을  .htacce 로 파일명을 바꾸고

config.php 에서  base_url 을 http://도메인/ 으로 바꾸고  index_page ="index.php"; 로 바꾸엇구요
routes.php 파일에서  default_controller 를  ""  로  바꾸고    해보았지만 여전히 ......
No input file specified   를 출력하네요 .....

default_controller을  blog 로 바꾸고  blog  컨트롤러에  index() {} 함수에 echo  "test"; 를 넣으면 
http://도메인/  이나  http://도메인/index.php/ 시  test를 출력합니다.    하지만

http://도메인/blog 나  http://도메인/index.php/blog    입력시  No input file specified  를 출력합니다.

ㅇ ㅏ 그리고   아파치  디렉토리  root가  home/abcd/  라면    abcd/ 디렉토리 밑에  phpinfo.php 폴더를 넣고
http://도메인/phpinfo.php  라고 입력을햇는데 왜   404 에러코드가 뜨는지도좀....;;;   

home/abcd/  디렉토리 밑에  phpinfo.php와   CI system 폴더 안의 디렉토리나 파일이 있습니다.

CI  index.php 에서  $system_folder = "";  이런식으로  설정한뒤 system 폴더는 제거 한 상태입니다.  
변종원(웅파) / 2009/11/20 14:30:42 / 추천 0
/home/abcd 디렉토리 퍼미션도 점검해보시구요. 701, 755, 777 등

http://도메인/phpinfo.php 이게 접근안되는거면 아파치설정이 잘못 됐거나 디렉토리, 파일 퍼미션때문일겁니다.

설정이 바뀌면서 점점 해결하기 힘들어지는 것같습니다.

1. 다 지우시고 아파치 설정후 /home/abcd/index.php (내용은 phpinfo()로)를 만드시고
http://도메인/index.php 로 접근이 되는지 체크

2. 접근이 되면 CI 1.7.2 버전을 새로 다운 받고 /home/abcd 디렉토리에 풀고
http://도메인/index.php 로 접근시 welcome 화면이 뜨는지 체크

3. 이상이 없다면 테스트서버의 내용을 올려보세요.
ci세상 / 2009/11/20 14:51:37 / 추천 0
중요한 자료 없으시면 계정을 잠시 오픈해 주시거나, 전체 소스를 압축해서 올려주세요^^
엠보싱 / 2009/11/20 14:53:49 / 추천 0

웅파/

기존에  /home/abcd/ 에서   phpinfo.php 파일을 로딩하는것을 확인했습니다.

또   현재 테스트 서버 소스를 다 지우고 기존 CI 1.7.2. 버젼을 올려서 테스트 중이구요 

맨처음 CI 1.7.2를 넣고  http://도메인/index.php   를 치면  

 

Welcome to CodeIgniter!

The page you are looking at is being generated dynamically by CodeIgniter.

If you would like to edit this page you'll find it located at:

system/application/views/welcome_message.php

The corresponding controller for this page is found at:

system/application/controllers/welcome.php

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.


Page rendered in 0.0132 seconds

와 같이   제대로  인식합니다.

하지만  blog.php 파일을 controller 폴더에
<?php

class Blog extends Controller {

 function Blog()
 {
  parent::Controller(); 
 }
 
 function index()
 {
  $this->load->view('test');
 }
}
와 같이 코딩한후 

ttp://도메인/index.php/blog   에  들어가면

No input file specified.

이러한 문구를   출력합니다.  어떻게 해결해야하는지....답답하네요 ㅠㅠㅠㅠ

 



 

변종원(웅파) / 2009/11/20 15:00:29 / 추천 0
phpinfo()의 내용을 보시면 혹시 apache에서 php를 cgi모드로 실행하는 호스팅서버가 아닌지요?
위와 같은 호스팅환경이라면 No input file specified. 에러가 난다고 하네요.

아래 링크대로 설정을 변경하고 테스트해보세요.
http://www.terencechang.com/2008/08/28/codeigniter-no-input-file-specified-php-5-apache-2/
엠보싱 / 2009/11/20 15:32:10 / 추천 0
하하하하   웅파님 

빠르고 정확한 답변 감사 드립니다.   ㅎㅎㅎ  해결됬네요  

감사합니다. ㅎ 

추가적으로 

config.php  파일에   $config['index_page'] = "index.php?";

이런식으로  셋팅하면  웅파님의 링크 설정 에서  index.php? 를 생략할수 있군효 ㅎㅎㅎ

감사합니다.
ci세상 / 2009/11/20 15:53:07 / 추천 0
엠보싱 / 이렇게 넣어도 해결이 되시나요?

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|ext|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
엠보싱 / 2009/11/20 16:14:14 / 추천 0

ci세상  /  코드에서 
RewriteRule ^(.*)$ /index.php/$1 [L]  에서
RewriteRule ^(.*)$ /index.php?/$1 [L]  으로  변경하면 해결되는군요

방금 확인했습니다.

.htaccess 파일
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|ext|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]
 

이와 같은 문제는 어떤경우  일어나는지 알수 있을까요?

ci세상 / 2009/11/20 16:56:14 / 추천 0

웅파님 답변처럼 해당 서버세팅시 특이상황인 부분이 맞구요..

그로 인해서 $_SERVER 자체가 인식을 못한것이 문제가 되었습니다.

system/libraries/URI.php 60줄에 보시면 _fetch_uri_string 해당 부분에서 $_SERVER 값을 체크해서 자동으로 찾아주는데 그 역할을 못해주고 빈값을 리턴시킨것있습니다.

config.php에서 uri_protocol  을 AUTO로 하면 안되고 REQUEST_URI 로 세팅하면 제대로 인식을 하게 될것 같습니다.

위에서 처리하신 방법은 결국 ? (물음표) 하나를 추가해 줌으로써 서버에서

http://도메인/?컨트롤러 이런식으로 인식이 되게 되었던것 같습니다.^^


결론은 ~~ 이건 개발자의 잘못이 아니라 ~ 서버관리자의 특성으로 인해서 고생하셨던 것입니다.^^

=> 해당 호스팅 환경에서 어떠한 상황이 또 생길지 모르니.. 보편적인 서버로 이전하실것을 권장해 드립니다.^^
 

엠보싱 / 2009/11/20 17:00:35 / 추천 0
ci세상 /  답변 감사합니다.

웅파님  ci세상님 의 답변 덕분에 문제도 해결하고 많은 도움이 되었네요 

감사합니다. ㅎ