Windows7マシンにnginxなWebサーバを導入したので覚え書き。
nginxのインストールと起動
nginxのWebサイトからダウンロードして展開し、展開したフォルダをCドライブの直下にC:\nginx\となるように配置した。
nginx.exeを直接ダブルクリックしてもWebサーバとしては起動するけど、その後の処理が微妙に面倒(設定ファイル変更時にリロードできない)なのでコマンドラインから起動したほうが良いと思う。具体的なコマンドは下記の通り
Webサーバの起動 start nginx 設定ファイルの再読み込み nginx -s reload Webサーバの終了 nginx -s stop
これだけでWebサーバとしては普通に動くと思う。ちゃんと動いていればhttp://localhost/にアクセス出来るはず。なお、標準設定だとC:\nginx\htmlにあるファイルにアクセスが出来る。
バーチャルホストの設定
バーチャルホストの設定も基本的は下記の通り。まずはC:\Windows\System32\drivers\etc\hostsにあるhostsファイルに、アクセスしたいサーバ名を定義する。例えばこんな感じ。
127.0.0.1 hoge1.example.com 127.0.0.1 hoge2.example.com
こう書いておくと、hoge1.example.comにアクセスしようとした時に、127.0.0.1に、つまり自分のマシンの中にあるWebサーバにアクセスしようとする。 続いてnginxの設定に。C:\nginx\conf\nginx.confに下記の項目を追加する。なお、この設定では、hoge1.example.comにアクセスがあったときはC:\nginx\html\hoge1.example.comに、hoge2.example.comにアクセスがあったときはC:\nginx\html\hoge2.example.comにそれぞれアクセスするように指示している。
server { listen 80; server_name hoge1.example.com; location / { root html/hoge1.example.com; index index.html index.htm; } } server { listen 80; server_name hoge2.example.com; location / { root html/hoge2.example.com; index index.html index.htm; } }
PHPの設定
PHPのダウンロードサイトからWindows用のバイナリをダウンロードした。ダウンロードした展開しC:\nginx\phpに配置する。 まずphp.iniの設定を行う。php.ini-productionをphp.iniにリネームして使う。以下の行の先頭にセミコロンがあるので削除する。
extension_dir = “ext”
extension=php_bz2.dll extension=php_gd2.dll extension=php_imap.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll
必須ではないがデバッグが不便なので、display_errorsをOnにしておいても良いと思う。あと、timezoneもいまのうちに。
date.timezone = "Asia/Tokyo"
次に、nginx側の設定を行う。基本的には上述したバーチャルホストの設定の中に、PHPの処理に関する処理を付け加えたものになる。
server { listen 80; server_name hoge1.example.com; location ~ \.php$ { root html/hoge1.example.com; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; includefastcgi_params; } location / { root html/hoge1.example.com; index index.php index.html index.htm; } }
コマンドラインからstart php\php-cgi.exe -b 127.0.0.1:9000 -c php\php.iniとしてPHPを起動する。なおnginxの設定ファイルを書き換えた後は、nginx -s reloadとして設定ファイルの再読み込みを忘れないこと。
MySQLの設定
MySQLのサイトからダウンロードしてくる。今回はmysql-5.5.25a-win32.zipを選択。展開したものをC:\nginx\mysql仁配置する。mysqlフォルダの中にいくつかの設定ファイルがあるんだけど、今回はとりあえずmy-medium.iniをコピーしてmy.iniとリネームして使う。変更点は下記の通り。
[client] #password = your_password port = 3306 socket = c:/nginx/mysql/tmp/mysql.sock [mysqld] port = 3306 socket = c:/nginx/mysql/tmp/mysql.sock basedir = c:/nginx/mysql datadir = c:/nginx/mysql/data bind-address = localhost enable-named-pipe skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M
コマンドラインからmysqlのインストールと起動を行う。
mysqld --install-manual net start mysql mysqladmin -u root password パスワードを決める
PhpMyAdminのインストール
インストールと言うほどのものでもないが、コマンドラインからMySQLをいじりたくない人は、PhpMyAdminを入れたら良いと思う。PhpMyAdminのサイトからダウンロードして、C:\nginx\html\phpmyadminに配置する。こうしておけばhttp://localhost/phpmyadminでアクセスできるようになると思う。
MongoDBのインストール
インストールと言うほどのものでもないが、http://www.mongodb.org/からMongoDBのWindowsバイナリをダウンロードする。私が利用したのはmongodb-win32-i386-2.0.6。Cドライブ直下に、c:\dataというフォルダを作成し、さらにデータの保管用にc:\data\dbと言う空のディレクトリを作成する。ダウンロードしたMongoDBを展開しc:\dataの下に配置する。C:\data\mongodb-win32-i386-2.0.6みたいな感じになる。mongoDBを利用する時は、C:\data\mongodb-win32-i386-2.0.6\bin\mongod.exeをダブルクリックする。
これだけだとPHPからMongoDBにアクセスできないので、https://github.com/mongodb/mongo-php-driver/downloadsからMongoDBのPHPドライバをダウンロードしてくる。私がダウンロードしたのはphp_mongo-1.2.12.zipで、その中にあるphp_mongo-1.2.12-5.4-vc9.dllをphp_mongo.dllにリネームしてC:\nginx\php\extに配置した。php.iniにextension=php_mongo.dllの1行を追加するのを忘れずに。今思うともしかしたらリネームしなくても良かったかも知れないが。
参考にしたサイトとか
ここが非常に参考になる、というか英語に抵抗のない人はここに書いてある通りにやれば、たぶん問題なさそう。