이전 글: Nginx, PHP 연동 (PHP-FPM) (1)
이전 글에서 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
여기까지 해주면 localhost:3000/news 로도 잘 접속이 되고, 다른 컨트롤러들도 문제없이 잘 호출됐다.
'기타' 카테고리의 다른 글
mac에서 php composer 설치 (0) | 2021.12.30 |
---|---|
Mac OS PHP 기본 세팅 userdir 활성화 (0) | 2021.12.29 |
Nginx, PHP 연동 (1) - PHP-FPM (0) | 2021.12.23 |
코드이그나이터 튜토리얼 - 뉴스 아이템 만들기 (0) | 2021.12.22 |
코드이그나이터 튜토리얼 - 정적 페이지, 뉴스 섹션 (0) | 2021.12.21 |
댓글