목요일, 6월 13, 2024
HomeLinuxubuntu NGINX + PHP manual install

ubuntu NGINX + PHP manual install

ubuntu NGINX + PHP manual install

1. 필요 패키지 설치

apt-get install -y php5-fpm php5-cli php5-mcrypt php5-gd php5-mysql
apt-get install -y libgd-gd2-noxpm-ocaml libgd-gd2-noxpm-ocaml-dev
apt-get install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libgoogle-perftools-dev perl libperl-dev libstring-crc32-perl gcc make

2.eval_module 다운로드(필요없으신분은 4번과정으로 넘어기시면 됩니다.)
wget http://www.grid.net.ru/nginx/download/nginx_eval_module-1.0.1.tar.gz

3.압축해제후 patch

tar zxf nginx_eval_module-1.0.1.tar.gz
sed -i -e "/ngx_http_eval_block/,+10 s~^\([^/]*\)\*ecf,\([^/]*\)\(//.*\)\?$~\1\2 //\1*ecf,\2~I" \
    -e "/ngx_http_eval_block/,+60 s~\(//[[:blank:]]*\)\?\(ecf[[:blank:]]*=[[:blank:]]*ctx->loc_conf.*\)~// \2~I" \
    -e "/ngx_http_eval_block/,+20 s~^\([^/]*\)\*pclcf,\([^/]*\)\(//.*\)\?$~\1\2 //\1*pclcf,\2~I" \
    -e "/ngx_http_eval_block/,+60 s~\(//[[:blank:]]*\)\?\(pclcf[[:blank:]]*=[[:blank:]]*pctx->loc_conf.*\)~// \2~I" \
    ./nginx_eval_module-1.0.1/ngx_http_eval_module.c

4.nginx 1.6.2 다운로드

wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar zxf nginx-1.6.2.tar.gz
cd nginx-1.6.2/

5.필요 폴더 생성

mkdir -p /server/nginx-1.6.2/cache
mkdir -p /server/nginx-1.6.2/cache/client_temp
mkdir -p /server/nginx-1.6.2/cache/proxy_temp
mkdir -p /server/nginx-1.6.2/cache/fastcgi_temp
mkdir -p /server/nginx-1.6.2/cache/uwsgi_temp
mkdir -p /server/nginx-1.6.2/cache/scgi_temp

6.링크 연결

ln -s /server/nginx-1.6.2 /server/nginx

7. configure 옵션

./configure \
  --prefix=/server/nginx-1.6.2 \
  --pid-path=/server/nginx-1.6.2/run/nginx.pid \
  --with-perl_modules_path=/usr/lib/perl/5.18 \
  --http-client-body-temp-path=/server/nginx-1.6.2/cache/client_temp  \
  --http-proxy-temp-path=/server/nginx-1.6.2/cache/proxy_temp  \
  --http-fastcgi-temp-path=/server/nginx-1.6.2/cache/fastcgi_temp  \
  --http-uwsgi-temp-path=/server/nginx-1.6.2/cache/uwsgi_temp  \
  --http-scgi-temp-path=/server/nginx-1.6.2/cache/scgi_temp  \
  --with-perl=/usr/bin/perl \
  --with-http_addition_module \
  --with-http_degradation_module \
  --with-http_image_filter_module \
  --with-http_gzip_static_module \
  --with-http_random_index_module \
  --with-http_realip_module \
  --with-http_mp4_module \
  --with-http_flv_module \
  --with-http_dav_module \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_sub_module \
  --with-http_secure_link_module \
  --with-google_perftools_module \
  --add-module=/root/nginx_eval_module-1.0.1

nginx_eval_module 모듈이 필요없으시면 –add-module=/root/nginx_eval_module-1.0.1 옵션을 제거합니다.

8.configure 진행과정

................
Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library

  nginx path prefix: "/server/nginx-1.6.2"
  nginx binary file: "/server/nginx-1.6.2/sbin/nginx"
  nginx configuration prefix: "/server/nginx-1.6.2/conf"
  nginx configuration file: "/server/nginx-1.6.2/conf/nginx.conf"
  nginx pid file: "/server/nginx-1.6.2/run/nginx.pid"
  nginx error log file: "/server/nginx-1.6.2/logs/error.log"
  nginx http access log file: "/server/nginx-1.6.2/logs/access.log"
  nginx http client request body temporary files: "/server/nginx-1.6.2/cache/client_temp"
  nginx http proxy temporary files: "/server/nginx-1.6.2/cache/proxy_temp"
  nginx http fastcgi temporary files: "/server/nginx-1.6.2/cache/fastcgi_temp"
  nginx http uwsgi temporary files: "/server/nginx-1.6.2/cache/uwsgi_temp"
  nginx http scgi temporary files: "/server/nginx-1.6.2/cache/scgi_temp"

9.make

make 


..................
        -lpthread -lcrypt -lpcre -lssl -lcrypto -ldl -lz -lgd -lprofiler
make[1]: Leaving directory `/root/nginx-1.6.2'
make -f objs/Makefile manpage
make[1]: Entering directory `/root/nginx-1.6.2'
sed -e "s|%%PREFIX%%|/server/nginx-1.6.2|" \
                -e "s|%%PID_PATH%%|/server/nginx-1.6.2/run/nginx.pid|" \
                -e "s|%%CONF_PATH%%|/server/nginx-1.6.2/conf/nginx.conf|" \
                -e "s|%%ERROR_LOG_PATH%%|/server/nginx-1.6.2/logs/error.log|" \
                < man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/root/nginx-1.6.2'

10.make install

make install


make -f objs/Makefile install
make[1]: Entering directory `/root/nginx-1.6.2'
test -d '/server/nginx-1.6.2' || mkdir -p '/server/nginx-1.6.2'
test -d '/server/nginx-1.6.2/sbin'              || mkdir -p '/server/nginx-1.6.2/sbin'
test ! -f '/server/nginx-1.6.2/sbin/nginx'              || mv '/server/nginx-1.6.2/sbin/nginx'                        '/server/nginx-1.6.2/sbin/nginx.old'
cp objs/nginx '/server/nginx-1.6.2/sbin/nginx'
test -d '/server/nginx-1.6.2/conf'              || mkdir -p '/server/nginx-1.6.2/conf'
cp conf/koi-win '/server/nginx-1.6.2/conf'
cp conf/koi-utf '/server/nginx-1.6.2/conf'
cp conf/win-utf '/server/nginx-1.6.2/conf'
test -f '/server/nginx-1.6.2/conf/mime.types'           || cp conf/mime.types '/server/nginx-1.6.2/conf'
cp conf/mime.types '/server/nginx-1.6.2/conf/mime.types.default'
test -f '/server/nginx-1.6.2/conf/fastcgi_params'               || cp conf/fastcgi_params '/server/nginx-1.6.2/conf'
cp conf/fastcgi_params          '/server/nginx-1.6.2/conf/fastcgi_params.default'
test -f '/server/nginx-1.6.2/conf/fastcgi.conf'                 || cp conf/fastcgi.conf '/server/nginx-1.6.2/conf'
cp conf/fastcgi.conf '/server/nginx-1.6.2/conf/fastcgi.conf.default'
test -f '/server/nginx-1.6.2/conf/uwsgi_params'                 || cp conf/uwsgi_params '/server/nginx-1.6.2/conf'
cp conf/uwsgi_params            '/server/nginx-1.6.2/conf/uwsgi_params.default'
test -f '/server/nginx-1.6.2/conf/scgi_params'          || cp conf/scgi_params '/server/nginx-1.6.2/conf'
cp conf/scgi_params             '/server/nginx-1.6.2/conf/scgi_params.default'
test -f '/server/nginx-1.6.2/conf/nginx.conf'           || cp conf/nginx.conf '/server/nginx-1.6.2/conf/nginx.conf'
cp conf/nginx.conf '/server/nginx-1.6.2/conf/nginx.conf.default'
test -d '/server/nginx-1.6.2/run'               || mkdir -p '/server/nginx-1.6.2/run'
test -d '/server/nginx-1.6.2/logs' ||           mkdir -p '/server/nginx-1.6.2/logs'
test -d '/server/nginx-1.6.2/html'              || cp -R html '/server/nginx-1.6.2'
test -d '/server/nginx-1.6.2/logs' ||           mkdir -p '/server/nginx-1.6.2/logs'
make[1]: Leaving directory `/root/nginx-1.6.2'

11. nginx.conf 백업

mv /server/nginx/conf/nginx.conf /server/nginx/conf/nginx.conf.org

12. vi /server/nginx/conf/nginx.conf

    user                            www-data www-data;
    
    worker_processes                1;
    worker_rlimit_nofile            100000;
    worker_rlimit_sigpending        10000;
    
    error_log                       /server/nginx/logs/error.log;

    pid				    /server/nginx/run/nginx.pid;

    events {
            worker_connections      1024;
            accept_mutex_delay      100ms;
            multi_accept            on;
            use epoll;
    }
    
    
    http {
            #---------------------------------------------------------------------------------------#
            #--- default ---------------------------------------------------------------------------#
            #---------------------------------------------------------------------------------------#
            include                 mime.types;
    
            sendfile                on;
            tcp_nopush              on;
            gzip                    on;
            tcp_nodelay             on;
            keepalive_timeout       30; 
            keepalive_requests      100000;
            send_timeout            2;
            server_tokens           off;
            server_name_in_redirect off;
     
            default_type            application/octet-stream;
            index                   index.html
    
            #---------------------------------------------------------------------------------------#
            #--- time ------------------------------------------------------------------------------#
            #---------------------------------------------------------------------------------------#
            client_body_timeout     10;
            client_header_timeout   10;
    
            #---------------------------------------------------------------------------------------#
            #--- proxy -----------------------------------------------------------------------------#
            #---------------------------------------------------------------------------------------#
            proxy_redirect          off;
	    proxy_set_header        Host            $host;
	    proxy_set_header        X-Real-IP       $remote_addr;
	    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
	    client_max_body_size    10m;
	    client_body_buffer_size 128k;
	    proxy_connect_timeout   300;
	    proxy_send_timeout      120;
	    proxy_read_timeout      300;
	    proxy_buffers           32 32k;
	    fastcgi_buffer_size     64k;
	    fastcgi_buffers         4 64k;
	    proxy_ignore_client_abort on;

            proxy_cache_path        /server/nginx/cache/one 
                                    levels=1:2
                                    keys_zone=one:10m
                                    max_size=1500m
                                    inactive=600m; 
            proxy_cache_key         "$scheme$host$request_uri";
            proxy_temp_path         /server/nginx/cache/tmp;
    
            #---------------------------------------------------------------------------------------#
            #--- log -------------------------------------------------------------------------------#
            #---------------------------------------------------------------------------------------#
            log_format      main         '$remote_addr - $remote_user [$time_local-$msec]  $status '
                                         '"$request" $request_time $body_bytes_sent "$http_referer" '
                                         '"$http_user_agent" "$http_x_forwarded_for"';
    
            #---------------------------------------------------------------------------------------#
            #--- - http ----------------------------------------------------------------------------#
            #---------------------------------------------------------------------------------------#
            server {
			listen 80;
			server_name localhost;

			charset utf-8;

			access_log  /server/nginx/logs/access.log  main;

			location / {
			    root   html;
			    index  index.html index.htm;
			}

			location ~ \.php$ {
				try_files $uri =404;
				fastcgi_split_path_info ^(.+\.php)(.*)$;
				fastcgi_pass unix:/var/run/php5-fpm.sock;
				fastcgi_index index.php;
				fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
				include fastcgi_params;
				include mime.types;
			}
		}
    
    }

12.PHP 보안관련 및 sed -i ‘s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g’ /etc/php5/fpm/php.ini sed -i ‘s/short_open_tag = Off/short_open_tag = On/g’ /etc/php5/fpm/php.ini service php5-fpm restart

13.phpinfo.php 생성

touch /server/nginx/html/phpinfo.php

vi /server/nginx/html/phpinfo.php



14. 폴더 권한설정

chown -R www-data:www-data /server/nginx-1.6.2
chown -R www-data:www-data /server/nginx

15. nginx start script 생성

touch /etc/init.d/nginx
chmod a+x /etc/init.d/nginx

vi /etc/init.d/nginx

#!/bin/bash
    #
    # description: Starts and stops the Nginx Server
    
    # nginx Service script for Linux
    
    start()
    {
        su -c "/server/nginx/sbin/nginx"
    }
    
    stop()
    {
        su -c "/server/nginx/sbin/nginx -s stop"
    }
    
    reload()
    {
        su -c "/server/nginx/sbin/nginx -s reload"
    }
    
    # See how we were called.
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      reload)
            reload
            ;;
      restart)
            stop
            sleep 2
            start
            ;;
      *)
            echo $" Usage {start|stop|restart|reload}"
            exit 1
    esac

16.서버기동시 자동스크립트 등록

update-rc.d nginx defaults

17. brower 실행후 URL확인
http:///phpinfo.php

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Time limit exceeded. Please complete the captcha once again.

Most Popular