« EBSタイプ AMIの作成方法 (途中まで) | メイン | リバースキャッシング(by varnish) »

amazon LINUX AMI でNginx + Fcgi を試す。(未完)

         

amazon LINUX AMI でNginx + Fcgi を試す。

そもそも認識していなかったのだが、spawn-fcgiは不要。php5.3.3以降は、fpmというモジュール
が実装されているため、こちらをコンパイルすればオッケーとのこと。

なので構成としては
---- nginx ---- php-fpm
となる。

amazon AMI,nginx 1.0.0 ,php 5.3.6で実施しました。

今回特殊なのは、Apacheのサーバ環境(本番環境)と、処理量過多のサイトの2本立て(普通は
しないと思うが)なので、同じバージョンをデュアルコンパイルして実装する。

         

イメージ

----- apache 80 ---- mod_php

----- nginx 81 ---- php-fpm

なんでこんな面倒なことをしてるのかと言うと、保守的な環境と、処理さばけてなんぼのサイト
を2本立てすることになったから。本来は、サーバをそもそも二つに分けた方がいいとは思う。
なお、フロントには、多段になるけど、varnishをおいて、81に振り分ける処理プロキシサーバ
を予定。

nginxでもできるみたいだが、varnish を利用してみたかったというのもある。nginxにまとめる
のが普通かもなぁ。

コンパイル途中でこういうのがでる場合は、事前に

/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1
make: *** Waiting for unfinished jobs....

yum install libltdl-devel が必要(mcryptの関係)
なお、fpmとapxsは、排他の関係にあるので注意。

あと関連しそうなパッケージを追加

yum install libevent-devel.x86_64
yum install libtool-ltdl-devel.x86_64

でconfigureをかける。

CFLAGS='-m64 -O3 -msse -mmmx -funroll-loops' ./configure \
--prefix=/usr/local/lib/php-5.3.6 \
--with-config-file-path=/usr/local/lib/php-5.3.6 \
--includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring \
--enable-mbregex --with-gd --with-mysql=mysqlnd --with-png-dir=/usr/lib \
--with-jpeg-dir=/usr/lib \
--with-zlib-dir --enable-gd-jis-conv --with-xsl --enable-soap --with-curl \
--with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --enable-fpm


でインストール結果は

# make install
Installing PHP SAPI module: fpm
Installing PHP CLI binary: /usr/local/lib/php-5.3.6/bin/
Installing PHP CLI man page: /usr/local/lib/php-5.3.6/man/man1/
Installing PHP FPM binary: /usr/local/lib/php-5.3.6/sbin/
Installing PHP FPM config: /usr/local/lib/php-5.3.6/etc/
Installing PHP FPM man page: /usr/local/lib/php-5.3.6/man/man8/
Installing build environment: /usr/lib64/build/
Installing header files: /usr/include/php/
Installing helper programs: /usr/local/lib/php-5.3.6/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/lib/php-5.3.6/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/lib64/php/
[PEAR] Archive_Tar - already installed: 1.3.7
[PEAR] Console_Getopt - already installed: 1.3.0
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util - already installed: 1.2.1
[PEAR] PEAR - already installed: 1.9.2
Wrote PEAR system config file at: /usr/local/lib/php-5.3.6/etc/pear.conf
You may want to add: /usr/lib64/php to your php.ini include_path
/home/ohba/php-5.3.6/build/shtool install -c ext/phar/phar.phar /usr/local/lib/php-5.3.6/bin
ln -s -f /usr/local/lib/php-5.3.6/bin/phar.phar /usr/local/lib/php-5.3.6/bin/phar
Installing PDO headers: /usr/include/php/ext/pdo/


終わったら
ln -s /usr/local/lib/php-5.3.6 /usr/local/lib/php-fpm
あとは、設定ファイル、起動ファイルをいじっていく。

今日はここまで。

トラックバック

このエントリーのトラックバックURL:
http://www.ostl.net/blog/mt-tb.cgi/636

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2011年05月10日 22:19に投稿されたエントリーのページです。

ひとつ前の投稿は「EBSタイプ AMIの作成方法 (途中まで)」です。

次の投稿は「リバースキャッシング(by varnish)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
MT3系