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行を追加するのを忘れずに。今思うともしかしたらリネームしなくても良かったかも知れないが。
参考にしたサイトとか
ここが非常に参考になる、というか英語に抵抗のない人はここに書いてある通りにやれば、たぶん問題なさそう。