【PHP】【nginx】cygwin上でnginx+php-fpm環境を構築する
windowsでのnginx+php-fpm環境から逃げ出したい所存です。
phpredis もまともに動かないし、php5.4も怪しげだし…
というわけで、脱windowsの1つとして、cygwin上でnginx+php-fpm環境を作ってみました。
参考 http://nicholasorr.com/blog/2008/11/22/solved-nginx-php-fastcgi-win32-no-input-file-specified/
cygwin
http://www.cygwin.com/からsetup.exeをダウンロード
- Choose A Download Siteはiijあたりで。
- Select Packages では、Devel以下全てと、Libs以下libcurl3、Net以下libcurl-devel、Net以下libcurl4、Libs以下libxml2、Libs以下libxml2-develをインストール。
cygwin terminalを起動
$ .bash_profileに追加
export PATH=$PATH:/usr/sbin:/usr/local/sbin
nginxインストール
最新版のソースをダウンロードしてコンパイル
$ mkdir /usr/local/src $ cd /usr/local/src $ wget http://nginx.org/download/nginx-1.2.7.tar.gz $ tar xvzf http://nginx.org/download/nginx-1.2.7.tar.gz $ cd nginx-1.2.7 $ ./configure --sbin-path="/usr/sbin/" --conf-path="/etc/nginx/nginx.conf" --pid-path="/var/run/nginx.pid" $ make $ make install
nginxの設定
worker_connectionsを変更しておかないと、起動しない
$ vi /etc/nginx/nginx.conf
worker_connections 1024;
↓変更
worker_connections 64;
その他、適宜nginx+php-fpmな設定を記述
起動!
$ nginx
user関連のエラーが出るが、問題なさそう。
PHPインストール
- http://php.net/downloads.phpからミラーを探してダウンロード
APC等の拡張も静的に組み込む
peclで拡張をインストールすると、
Exec format error in Unknown on line 0
というエラーがphp-fpmの起動時に発生し、読み込まない
$ cd /usr/local/src $ tar xvzf php-5.4.12.tar.gz $ cd php-5.4.12/
拡張のソースをダウンロードしていく。
今回はAPC、pecl-http、phpredisをインストールする。
参考: http://www.php.net/manual/ja/install.pecl.static.php
$ cd ext $ pecl download APC $ tar xvf APC-3.1.13.tar $ mv APC-3.1.13 apc $ pecl download pecl_http $ tar xvf pecl_http-1.7.5.tar $ mv pecl_http-1.7.5 http $ pecl download xdebug $ tar xvf xdebug-2.2.1.tar $ mv xdebug-2.2.1 xdebug $ git clone https://github.com/nicolasff/phpredis/ $ mv phpredis redis $ cd ../ $ rm configure $ ./buildconf --force $ ./configure \ --enable-mbstring \ --enable-mbregex \ --with-mcrypt \ --with-mysql \ --with-mysqli \ --enable-pcntl --with-pdo-mysql=mysqlnd --enable-fpm \ --enable-apc --enable-xdebug --enable-http --enable-redis configureオプションは ./configure --help で確認 適宜、必要な機能をenableするなり対応する $ make $ make install $ cp php.ini-production /usr/local/lib/php.ini $ cp ./sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf
PHPの設定
$ vi /usr/local/etc/php-fpm.conf 適宜php-fpmの設定を行う $ vi /usr/local/lib/php.ini 適宜phpの設定を行う 通常はextensionでapc等を読み込むが、必要なし
起動!
$ php-fpm
user関連のエラーが出るが、問題なさそう。
若干、xdebugでエラーが出ている気もするけど、動作はしているようなので、まあええか、と。