9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windowsへnginx 1.8をインストールしたときのメモ

Last updated at Posted at 2016-01-30

概要

Windows環境にchocolateyを使ってnginx 1.8をインストールしたときのメモです。

環境

参考

nginxのインストール

install
> choco install nginx
Installing the following packages:
nginx
By installing you accept licenses for the packages.

nginx v1.8.0
The package nginx wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider setting
 'allowGlobalConfirmation'. Run 'choco feature -h' for more details.
Do you want to run the script?
 1) yes
 2) no
 3) print
1

...省略...

 C:\ProgramData\chocolatey\lib\nginx\tools
 ShimGen has successfully created a shim for nginx.exe
 The install of nginx was successful.

Chocolatey installed 1/1 package(s). 0 package(s) failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

version

version
> nginx -v
nginx version: nginx/1.8.0

大文字Vはビルド時のconfigureを確認することができます。下記の内容は見やすいように改行をしています。

version
> nginx -V
nginx version: nginx/1.8.0
built with OpenSSL 1.0.1m 19 Mar 2015
TLS SNI support enabled
configure arguments:
--with-cc=cl
--builddir=objs.msvc8
--with-debug
--prefix=
--conf-path=conf/nginx.conf
--pid-path=logs/nginx.pid
--http-log-path=logs/access.log
--error-log-path=logs/error.log
--sbin-path=nginx.exe
--http-client-body-temp-path=temp/client_body_temp
--http-proxy-temp-path=temp/proxy_temp
--http-fastcgi-temp-path=temp/fastcgi_temp
--http-scgi-temp-path=temp/scgi_temp
--http-uwsgi-temp-path=temp/uwsgi_temp
--with-cc-opt=-DFD_SETSIZE=1024
--with-pcre=objs.msvc8/lib/pcre-8.35
--with-zlib=objs.msvc8/lib/zlib-1.2.8
--with-select_module
--with-http_realip_module
--with-http_addition_module
--with-http_sub_module
--with-http_dav_module
--with-http_stub_status_module
--with-http_flv_module
--with-http_mp4_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_auth_request_module
--with-http_random_index_module
--with-http_secure_link_module
--with-mail
--with-openssl=objs.msvc8/lib/openssl-1.0.1m
--with-openssl-opt=enable-tlsext
--with-http_ssl_module
--with-mail_ssl_module
--with-ipv6

コマンド

起動

start
> start nginx

上記のコマンドでnginxを起動すると、コンソールが立ち上がりますが、nginxを停止させるつもりでコンソール上でCtrl + Cを押してコンソールを閉じてもnginxは起動されたたままです。停止させるには下記のコマンドを実行する必要があります。

停止

stop
> nginx -s stop

help

help
> nginx -h
nginx version: nginx/1.8.0
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: NONE)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

実行環境構築

ディレクトリ

D:\dev\nginx
  ├─ \conf
  ├─ \html
  ├─ \logs
  ├─ \temp
  ├─ server_start.bat
  └─ server_stop.bat

conf

chocolateyでインストールしたディレクトリ(C:\ProgramData\chocolatey\lib\nginx\tools\nginx-1.8.0)にあるconfをディレクトリごとコピーします。

html

htmlディレクトリを作成します。
ここがnginxのドキュメントルートになります。

logs

logsディレクトリを作成します。

temp

chocolateyでインストールしたディレクトリ(C:\ProgramData\chocolatey\lib\nginx\tools\nginx-1.8.0)にあるtempをディレクトリごとコピーします。

conf/nginx.conf

デフォルトのままでも動作します。
今回はコメントされていたlog_formatとaccess_logのディレクティブを有効にしました。

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  logs/access.log  main;
confファイルのテスト

confを編集した場合はsyntaxチェックを行って設定に間違いがないか確認することができます。

syntax_check
> nginx -t
nginx: the configuration file D:\dev\nginx/conf/nginx.conf syntax is ok
nginx: configuration file D:\dev\nginx/conf/nginx.conf test is successful

実行・停止用のbat

server_start.bat
start nginx
server_stop.bat
nginx -s stop

nginxでphpMyAdmin

phpのインストール

Windowsでphpを実行するには別途、Visual Studio 2012 Visual C++ 再頒布可能パッケージが必要になります。
[https://www.microsoft.com/ja-JP/download/details.aspx?id=30679] (Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ)

Version

> php -v
PHP 5.6.17 (cli) (built: Jan  6 2016 13:28:21)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

php.ini

php.ini-developmentをphp.iniにリネームして下記の箇所を修正します。(抜粋)

extension_dir = "D:\dev\php-5.6.17\ext"
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
date.timezone = "Asia/Tokyo"

phpMyAdminのインストール

アーカイブファイルをダウンロードし、展開して出来たディレクトリをnginxのドキュメントルートにphpMyAdminという名前でコピーします。

config.inc.php

config.sample.inc.phpをconfig.inc.phpにリネームして下記の箇所を修正します。(抜粋)

$cfg['blowfish_secret'] = '<適当な文字列を記述>'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '<pmaユーザーのパスワードを記述>';

ここのコメントをはずします。

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

sql/create_tables.sql

sqlディレクトリ下にデータベースやテーブルを作成するsqlファイルが用意されています。
コメントになっているGRANT文を有効にします。

-- Privileges
--
-- (activate this statement if necessary)
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost;

MySQL

MySQLを起動しrootユーザーでログインし、上記のsqlファイルでデータベースとテーブルを作成します。

> source D:\dev\nginx\html\phpMyAdmin\sql\create_tables.sql

pmaユーザーのパスワードを設定します。

> set password for pma@localhost = password('<pmaのパスワード>');

nginxの設定

nginx.conf

confファイルに下記を追記します。

server {
    listen       80;
    server_name  phpmyadmin.localhost;

    access_log  logs/php.access.log  main;

    location / {
        root   html/phpMyAdmin;
        index  index.php;
    }

    location ~ \.php$ {
        root           html/phpMyAdmin;
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}

hosts

hostsファイルに下記を追記します。

127.0.0.1  phpmyadmin.localhost

php-cgi

nginxでphpスクリプトが実行できるようphp-cgiを起動します。

> php-cgi.exe -b 127.0.0.1:9001
動作確認

http://phpmyadmin.localhost/にアクセスしてphpMyAdminのログインページが表示されることを確認します。

バックエンドのwebアプリケーションと連携させる

同一ホスト上で実行しているspring-bootで作成したwebアプリケーションと連携させます。

nginxの設定

serverディレクティブの記述を下記のように修正します。

server {
    listen       80;
    server_name  localhost;

    access_log  logs/web.access.log  main;

    location / {
        proxy_http_version 1.1;
        proxy_pass http://localhost:9000;
        proxy_redirect http://localhost:9000/ /;
        proxy_cookie_path / /;

        proxy_set_header        Host              $host;
        proxy_set_header        X-Forwarded-By    $server_addr:$server_port;
        proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto http;
        proxy_set_header        X-Real-IP         $remote_addr;
        proxy_set_header        X-Forwarded-Port  $server_port;

        root   html;
        index  index.html index.htm;
    }

    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
動作確認

http://localhost/にアクセスしてspring-bootで作成したwebアプリケーションのページが表示されることを確認します。

nginxのssl設定の参考

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?