preload
4月 06

巷で高速だと評判なHTTPサーバーnginxでPHPを使用する場合、ApacheのようにPHPのモジュールをインストールして終わり、という訳にはいかない。

nginx + PHPの方法はいくつかあるようなのだが、ここでは、lighttpd付属のspawn-fcgiでPHPが使えるようになるまでの手順を紹介する。

spawn-fcgiをまともに使うのが初めてなので、記念にメモ。pig-monkey.com » Blog Archive » An Ubuntu VPS on Slicehost: Web Serverを参考にした。というか、そのまま。

php5をインストール

1
$ sudo aptitude install php5-common php5-cgi php5-mysql php5-cli

本来spawn-fcgiはlighttpdのおまけの一つなので、lighttpdをダウンロードしてmakeする必要がある(lighttpdのインストールは必要ない) 最初にlighttpdをコンパイルするのに必要なパッケージをインストール。これらが、無いとconfigureの途中で止まる。

1
$ sudo aptitude install libpcre3-dev libbz2-dev zlib1g-dev

lighttpd ダウンロード & インストール

1
2
3
4
5
6
$ wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
$ tar xvzf lighttpd-1.4.19.tar.gz
$ cd lighttpd-1.4.19
$ ./configure
$ make
$ sudo cp src/spawn-fcgi /usr/bin/spawn-fcgi

php5-cgi起動スクリプト(/usr/bin/php5-fastcgi)作成

1
2
#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -C 2 -f /usr/bin/php5-cgi

これで、127.0.0.1:9000でFastCGIプロセスが口をあけて待ってます。実行権限もお忘れなく。

1
$ sudo chmod +x /usr/bin/php5-fastcgi

ついでにリンクも作成

1
$ sudo ln -s /usr/bin/php5-fastcgi /usr/bin/php-fastcgi

起動スクリプト(/etc/init.d/fastcgi)を用意

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
RETVAL=0
case"$1" in
	start)
		echo "Starting fastcgi"
		$PHP_SCRIPT
		RETVAL=$?
  ;;
	stop)
		echo "Stopping fastcgi"
		killall -9 php5-cgi
		RETVAL=$?
  ;;
	restart)
		echo "Restarting fastcgi"
		killall -9 php5-cgi
		$PHP_SCRIPT
		RETVAL=$?
  ;;
	*)
		echo "Usage: php-fastcgi {start|stop|restart}"
		exit 1
  ;;
esac
exit $RETVAL

こっちも、パーミッションの設定お忘れなく

1
$ sudo chmod 755 /etc/init.d/fastcgi

試しに起動してみる

1
$ sudo /etc/init.d/fastcgi start

「child spawned successfully」と表示されるのを確認したうえで、サーバ起動時に立ちあがるように設定。

1
$ sudo update-rc.d fastcgi defaults

これでphpが使えるようになりました。

関連記事

TrackBack URL :

コメントをどうぞ

Comments links could be nofollow free.