CentOS6 환경에서 진행하며, nginx와 php는 php-fpm을 이용하여 연결된다.
설치는 yum을 이용한다.


  • Nginx 설치
sudo yum install nginx
vim /etc/nginx/nginx.conf
+location ~ \.php$ {
+    root           html;
+    fastcgi_pass   127.0.0.1:9000;
+    fastcgi_index  index.php;
+    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
+    include        fastcgi_params;
+}
sudo service nginx start

  • Php7 설치
sudo yum -y update
sudo yum -y install epel-release
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
wget https://centos6.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release*.rpm
sudo yum -y update
sudo yum -y install php70u php70u-pdo php70u-mysqlnd php70u-opcache php70u-xml php70u-mcrypt php70u-gd php70u-devel php70u-mysql php70u-intl php70u-mbstring php70u-bcmath php70u-json php70u-iconv
vim /etc/php.ini
+ date.timezone = Asia/Seoul
+ cgi.fix_pathinfo=0
+ expose_php = Off


Error: Package: php70u-gd-7.0.18-1.ius.centos6.x86_64 (ius)
        Requires: libwebp.so.5()(64bit)

위와 같은 에러 발생 시 https://www.rpmfind.net/linux/rpm2html/search.php?query=libwebp.so.5()(64bit) 에서 lib64webp5-0.4.3-1.mga5.x86_64.rpm 다운로드 후 sudo yum install lib64webp5-0.4.3-1.mga5.x86_64.rpm 설치한다.


  • php-fpm 설치
sudo yum install php70u-fpm
sudo service php-fpm start

  • index.php 생성
sudo vim /usr/share/nginx/html/index.php
<?php
phpinfo()


http://localhost/index.php 접속하여 확인한다.


문제 발생

libpcre.so.1 파일을 찾을 수 없다.


whitelife@dev:/etc/init.d$ sudo service nginx start
 * Starting Nginx Server...                                                                /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1:            cannot open shared object file: No such file or directory
                                                                         [fail]

문제 해결

심볼릭 링크를 걸어 해결 한다.


whitelife@dev:/lib$ sudo ln -s /usr/local/lib/libpcre.so.1 /lib

참고 사이트


1. Requirements Library Install

1.1. gzip module requires zlib library

C로 작성된 데이터 압축 라이브러리의 일종이다.

Home: http://www.zlib.net/
Download: http://zlib.net/zlib-1.2.8.tar.gz


tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
sudo make install

1.2. rewrite module requires pcre library

PCRE 라이브러리, POSIX 정규식 API 지원

Home: http://www.pcre.org/
Download: http://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download


tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make
sudo make install

1.3. ssl support requires openssl library

일반적으로 Linux 설치 시 포함 되어 있다.


2. Nginx Install

Download: http://nginx.org/en/download.html

원하는 버전 파일을 다운로드 하도록 하자.


tar zxvf nginx-1.6.0.tar.gz
cd nginx-1.6.0
./configure
make
sudo make install


위 요구되는 라이브러리 설치만 성공적으로 끝났다면, 무사히 설치는 완료 되었을 것이다.


3. Nginx InitScript Config

Service 에 등록 하기 위해 initScript 를 셋팅 한다.


sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx

4. Nginx Service Config

4.1. Update
sudo update-rc.d -f nginx defaults

4.2. Remove
sudo update-rc.d -f nginx remove

5. Nginx Service Start

sudo service nginx start

6. Request Welcome Page

http://localhost/ 접속 해보자. 외부에서 접속을 해야 하는 경우 80번 포트를 열도록 하자.


sudo ufw allow 80/tcp

참고 사이트


글 작성 하는 시점에서 Nginx Stable 버전은 1.6.0 버전 이다. 


1.1.x 버전을 사용하고 있었고, Nginx + WebSocket 을 사용할 수 있다는 글을 보고, 테스트 하는 도중 지원하지 않는 버전이라 테스트가 불가피 했다.

해당 글 URL (http://nodeqa.com/nodejs_ref/80) 흥미가 있다면 가보셔도 좋아요.



헉


Requirements

  • gzip module requires zlib library
  • rewrite module requires pcre library
  • ssl support requires openssl library

위 3가지 항목은 설치 전 요구되는 라이브러리다. 사전에 설치가 되어 있지 않다면, 진행을 할 수 없다.


1.  zlib library

C로 작성된 데이터 압축 라이브러리의 일종이다.

공식 사이트: http://www.zlib.net/

다운로드: http://zlib.net/zlib-1.2.8.tar.gz


tar zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make

sudo make install


2.  pcre library

PCRE 라이브러리, POSIX 정규식 API 지원

공식 사이트: http://www.pcre.org/

다운로드: http://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download


tar zxvf pcre-8.35.tar.gz

cd pcre-8.35

./configure

make

sudo make install


3. openssl library

일반적으로 Linux 설치 시 포함 되어 있다.


위 작업이 끝났다면, nginx 설치할 준비는 된 것이다.  오키



nginx Installation


다운로드: http://nginx.org/en/download.html


원하는 버전 파일을 다운로드 하도록 하자.


tar zxvf nginx-1.6.0.tar.gz

cd nginx-1.6.0

./configure

make

sudo make install


위 요구되는 라이브러리 설치만 성공적으로 끝났다면, 무사히 설치는 완료 되었을 것이다.


참고 사이트: http://wiki.nginx.org/GettingStarted





보통 브라우저에 403 응답이 올 경우 발생 한다.


default logs 경로:  /var/log/nginx/error.log 중...


2013/04/26 15:13:28 [error] 3390#0: *12 open() "***************" failed (13: Permission denied), client: 10.0.2.2, server: ***************, request: "GET *************** HTTP/1.1", host: "***************", referrer: "***************"
2013/04/26 15:13:28 [error] 3390#0: *7 open() "***************" failed (13: Permission denied), client: 10.0.2.2, server: ***************, request: "GET *************** HTTP/1.1", host: "***************", referrer: "***************"


권한이 없다. 


해결 방법


1.  /etc/nginx/conf.d/xxxx.conf 확인


// ...

root /home/xxxxx/work/

// ...


2.  root 그룹 확인


drwxr-xr-x 14 xxxxx 

xxxxx 4096  x월 xx xx:xx xxxxx

drwxr-xr-x 11 xxxxx xxxxx 4096  x월 xx xx:xx xxxxx

[xxxxx@localhost work]$ 


3.  /etc/nginx/nginx.conf 수정

해당 그룹으로 user 수정


#user  nginx;

user  xxxxx;

worker_processes  1;


error_log  /var/log/nginx/error.log warn;

pid        /var/run/nginx.pid;



events {

    worker_connections  1024;

}



http {

    include       /etc/nginx/mime.types;

    default_type  application/octet-stream;


    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';


    access_log  /var/log/nginx/access.log  main;


    sendfile        on;

    #tcp_nopush     on;


    keepalive_timeout  65;


    #gzip  on;


    include /etc/nginx/conf.d/*.conf;

}


4.  서버 재 시작



[xxxxx@localhost work]$ sudo /etc/init.d/nginx restart




 

보통 리눅스에 설치 했을 경우 경로는 /etc/nginx/ 이다.

 

Step 1.  Vitrual Host Configs 경로 설정하기

 

// ... 

 

##  
# Virtual Host Configs
## 

include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;

 

// ...

 

Step 2.  Vitrual Host Configs 설정하기

default 설정은 /etc/nginx/site-enabled/default 를 참고 한다.

 

server {

// ...

}

 

위와 같은 형태 이다. 아래 자주 쓰는 설정을 소개 한다.

 

 분류

설명 

root

 

  root /usr/share/nginx/www;

  image, javascript, html의 실제 경로

 

index

 

  index index.html index.htm;

  requestUri가 / 로 왔을 경우 요청 되는 페이지

 

server_name

 

  server_name localhost;

  server domain 명

 

location

 

  location / {

    proxy_pass  http://127.0.0.1:8080;

  }

  requestUri 에 따른 설정 접근 제한, was 로 요청 위임등 이 가능하다.

  - proxy_pass: 요청을 받아서 해당 주소로 요청을 위임 한다.

 

rewrite 

  

  rewrite ^/(.*)  http://www.test.co.kr/$1

  특정 요청이 왔을 경우 패턴에 의해서 재요청 한다.

 

 

Step 3.  Sample

rewrite는 사용 용도에 따라 location 안에 같이 사용이 가능하다.

 

server {

  root /usr/share/nginx/www;

  index index.html index.htm;

 

  server_name localhost;

 

  location /test {

    rewrite ^/(.*)  http://www.test.co.kr/$1

  }

 

  location / {

    proxy_pass  http://127.0.0.1:8080;

  } 

}

 

설정이 JSON 형태라 Apache 에 비해 간단 하고 명확한거 같다.

 

※ 참고 사이트: http://nginx.org/en/docs/

 

'Server,Was' 카테고리의 다른 글

Nginx 403 (13: Permission denied) 현상 해결하기  (0) 2013.04.26
Openssl 사설 인증서 만들기  (0) 2013.04.24
Nginx Ubuntu에서 설치하기  (0) 2013.04.23
Nginx OSX에서 설치하기  (0) 2013.04.23
war 파일 생성 하기  (0) 2013.02.17


nginx를 설치합시다.~


Step 1.  nginx 설치 하기



whitelife@ubuntu:~$ sudo apt-get install nginx

Reading package lists... Done

Building dependency tree       

Reading state information... Done

The following extra packages will be installed:

  nginx-common nginx-full

The following NEW packages will be installed:

  nginx nginx-common nginx-full

0 upgraded, 3 newly installed, 0 to remove and 337 not upgraded.

Need to get 407 kB of archives.

After this operation, 1,229 kB of additional disk space will be used.

Do you want to continue [Y/n]? Y 



Step 2.  nginx 시작하기



whitelife@ubuntu:~$ sudo service nginx start

Starting nginx: nginx.

whitelife@ubuntu:~$ 



화면을 확인 하자.


성공이다.~



'Server,Was' 카테고리의 다른 글

Openssl 사설 인증서 만들기  (0) 2013.04.24
Nginx 기본 설정하기  (0) 2013.04.24
Nginx OSX에서 설치하기  (0) 2013.04.23
war 파일 생성 하기  (0) 2013.02.17
Tomcat7 Web Application Deploy 하기  (0) 2013.02.01


nginx를 설치합시다.~


Step 1.  PCRE (Perl Compatible Regular Expressions) 설치하기

Perl 호환 정규식 이라고 한다. 먼지는 잘 모르겠지만... 설치해야 한다. 



curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz

tar zxvf pcre-8.21.tar.gz

./configure --prefix=/usr/local

make

sudo make install



Step 2.  nginx 설치하기

osx에는 svn 이 내장 되어 있다. 



svn checkout svn://svn.nginx.org/nginx/tags/release-1.3.16

./auto/configure
make
sudo make install



Step 3.  nginx 시작하기

command 에 대한 도움말을 볼 수 있다.



sudo /usr/local/nginx/sbin/nginx -?

nginx version: nginx/1.3.16

Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]


Options:

  -?,-h         : this help

  -v            : show version and exit

  -V            : show version and configure options then exit

  -t            : test configuration and exit

  -q            : suppress non-error messages during configuration testing

  -s signal     : send signal to a master process: stop, quit, reopen, reload

  -p prefix     : set prefix path (default: /usr/local/nginx/)

  -c filename   : set configuration file (default: conf/nginx.conf)

  -g directives : set global directives out of configuration file



서버를 시작해 보자.



sudo /usr/local/nginx/sbin/nginx



확인하기.

성공이다~


※ 참고 사이트

pcre - http://www.pcre.org/

nginx - http://nginx.org/en/download.html


'Server,Was' 카테고리의 다른 글

Nginx 기본 설정하기  (0) 2013.04.24
Nginx Ubuntu에서 설치하기  (0) 2013.04.23
war 파일 생성 하기  (0) 2013.02.17
Tomcat7 Web Application Deploy 하기  (0) 2013.02.01
Apache Friends XAMPP 설치 하기  (0) 2013.01.30

+ Recent posts