본문 바로가기
기타

Nginx, PHP 연동 (2) - code igniter 프로젝트 연결

2021. 12. 23.

이전 글: Nginx, PHP 연동 (PHP-FPM) (1)

 

Nginx, PHP 연동 (PHP-FPM) (1)

0. Nginx, php 연동의 전체적인 구조 https://server-talk.tistory.com/307 WEB Server - NGINX PHP 5.2 연동하기 - CentOS 7 WEB Server - NGINX PHP 연동하기 - CentOS 7 이번 포스팅에서는 NGINX와 PHP 연동..

ghebal.tistory.com

이전 글에서 Nginx 로 localhost:8080 에 내가 원하는 php 페이지가 보여질 수 있도록 하는 데는 성공했다.

 

요약하자면,

1. Nginx 기본 root 디렉토리에 내가 원하는 php 파일을 넣어주고

2. Nginx 가 해당 php파일 해석을 php-fpm에게 요청할 수 있도록 설정을 바꿔주고

3. php-fpm 이 해당 파일을 찾을 수 있도록 디렉토리 설정을 맞춰준다.

=> 여기서 내가 코드이그나이터 튜토리얼을 따라 만든 코드이그나이터 프로젝트를 Nginx 와 연결시키는 작업을 해줄 것이다. 

현재 코드이그나이터 프로젝트는 localhost:8080 에서 열리고 있고, localhost:8080 으로 접속하면 codeigniter welcome 페이지가 뜬다. localhost:8080/news 로 이동하면 전체 뉴스 리스트를 볼 수 있고, 개별 뉴스 아이템을 클릭하면 상세 페이지로 이동하는 구조이다. 

그래서 오늘 하려고 하는 것은, 코드이그나이터와 nginx 를 3000포트로 연결시켜서 localhost:3000 포트로 접속하면 코드이그나이터 프로젝트에 접속할 수 있도록 하는 것이다. 

 

Nginx로 code igniter 프로젝트로 띄우기

1. Nginx conf 파일에 새로운 server 블록을 만들어준다. 내용은 다음과 같다.

포트는 3000 포트로 열어줄 것이고, server name 은 ci-tutorial 으로 할 것이다. 

root 디렉토리를 코드이그나이터의 index.php 가 있는 /Users/kyunglimkang/Sites/test/codeigniter/public 로 맞춰준다.

nginx 가 php 파일을 만났을 때 할 작업들도 세팅해준다. 

root 디렉토리는 동일하고, fastcgi가 해당 파일을 찾을 수 있도록 $document_root$fastcgi_script_name 으로 설정해준다.

여기까지 작업해주고 localhost:3000 으로 접속하면 코드이그나이터 welcome 페이지가 잘 뜬다.

단, localhost:3000/news 로 접속하면 오류가 났다. ci에서 controller 를 호출하는 부분을 잘 인식할 수 있도록 하는 코드를 추가해주어야 한다.

 

2. controller 호출 가능하도록 conf 파일에 코드 추가

아래와 같은 코드 3줄을 해당 server 블록 안에 추가해주면 된다.

if (!-e $request_filename ) {

      rewrite ^(.*)$ /index.php last;

}

코드를 추가해준 server 블럭 코드는 다음과 같다.

https://krksap.tistory.com/879

 

nginx에서 php ci(code igniter) 설정

nginx에서 php ci(code igniter) 설정 wnmp나 nginx를 올리고 거기에 php 코드이그나이터(이하 ci)를 쓸려고 할 때 발생하는 문제점을 겪어 이 글을 씁니다. 결론적으로 nginx.conf에서 server{ } 에 아래 세줄의..

krksap.tistory.com

여기까지 해주면 localhost:3000/news 로도 잘 접속이 되고, 다른 컨트롤러들도 문제없이 잘 호출됐다.

댓글