웹서버 nginx 사용법

IT 2015. 1. 12. 02:08

웹서버 NGinX (윈도우즈용)

 


* 설치 (Windows)
    - 별도의 설치는 필요없음, 다운로드 후 압축풀면 됨
http://nginx.org/en/download.html


* 서버 제어 (명령어)
    - 도움말 : nginx -h
    - 재시작 : nginx -s reload
    - 끝내기 : nginx -s quit
   
    - 시스템 명령어 사용 종료
    taskkill /f /IM nginx.exe
    taskkill /f /IM php-cgi.exe


* root 경로 변경(홈 디렉토리 변경)
    - conf/nginx.conf 파일 수정

    server {
    ...
        root    d:\down\web;


//==========================
* 서버블록(Server Block) 설정
    - 여러 도메인 운영
    - 아파치의 버츄얼 호스트(Virtual Host)
http://wiki.nginx.org/ServerBlockExample

    - nginx.conf 수정(추가만 하면 됨)
  server {
    server_name    www.qwe1.com;
    #access_log logs/qwe1.access.log;
    root    d:\web\qwe1.com;
    location / {
            index  index.html index.htm;       
    }
  }
 
  server {
    server_name    www.qwe2.com;
    #access_log  logs/qwe2.access.log;
    root    d:\web\qwe2.com;
    location / {
            index  index.html index.htm;       
    }
  }


//==========================
* PHP 설정
    - 방법1 : PHP-FPM (FastCGI Process Manager) -
http://stackoverflow.com/questions/4539670/php-fpm-for-windows
        - php.net에서 소스를 다운 받아 재컴파일 해야 함 -> 비추

    //=============================
    - 방법2: php-fcgi (PHP-FastCGI) - 추천
http://wiki.nginx.org/PHPFastCGIOnWindows

        - PHP 설치
http://windows.php.net/download/
            - zip 파일 다운받아서 c:\php5에 푼다

    - RunHiddenConsole 다운로드
        - 실행파일을 서비스로 실행 시키는 유틸
        - 시스템 기본 유틸인 start.exe를 사용하면 필요없음
            start /B cmd /K "..."
https://code.google.com/p/kangxiaowei/downloads/detail?name=RunHiddenConsole.zip&can=2&q=
        RunHiddenConsole.exe 파일을 PHP 폴더로 복사

    - php-fcgi.bat 파일 만들기
set PATH=C:\PHP;%PATH%
C:\PHP5\RunHiddenConsole.exe C:\PHP5\php-cgi.exe -b 127.0.0.1:9123
REM start /B cmd /K "c:\php5\php-cgi.exe -b 127.0.0.1:9123 -c c:\php5\php.ini"


    - nginx.conf 파일 수정, PHP 관련 항목 추가
location ~ \.php$ {
  fastcgi_pass   127.0.0.1:9123;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include        fastcgi_params;
}

    - info.php 로 테스트
<?php
ehco phpinfo();
?>


//==========================
* MySQL 연동
    - MySQL 서버를 서비스로 설치

    - 다운로드 http://dev.mysql.com/downloads/mysql/
        - 회원가입 하지 않으려면 "No thanks, just start my download." 링크 클릭

    - PHP와 연동 http://php.net/manual/kr/mysql.installation.php
        - libmysql.dll 복사
C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysql.dll 파일을 PATH설정된 폴더로 복사
   
        - php.ini 수정
extension=php_mysql.dll
extension_dir="C:\PHP5\ext"


//========
//DB 테스트
C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe -uroot -p

CREATE DATABASE db_test;
USE db_test;

CREATE TABLE `tbl_test` (
  `pkey` int(11) NOT NULL AUTO_INCREMENT,
  `id` varchar(50) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`pkey`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

INSERT INTO `tbl_test` VALUES ('1', '1', 'd');

FLUSH PRIVILEGE;


//=====================
//PHP와 Mysql 연결 테스트 php 소스
<?php
    //error_reporting(E_ALL );//^ E_NOTICE);
    $table = 'tbl_test';

    $connect = mysqli_connect('localhost', 'id', 'pass' , 'db_test') or die("SQL server에 연결할 수 없습니다.". mysqli_error() );

    // name 가져오기
    $query = "SELECT * FROM $table";
    $ret = mysqli_query($connect, $query);
    if (!$ret) {  die('Invalid query-2: ' . mysqli_error() );}

    while ($row = mysqli_fetch_array($ret, MYSQLI_NUM)) {
        printf("ID: %s  Name: %s", $row[0], $row[1]); 
    }

    mysqli_close($connect);
?>

반응형
Posted by codens