PHP

説明する必要がないほど有名なHTMLへの埋め込むタイプのスクリプト言語です。PHP is Hypertext Pre-processerと再帰的な定義がされています。

Xubuntu PPC Karmicのレポジトリーにあるのは、5.2.10で、年の取り扱いでPPCのビッグエンディアンに対応できていにないバグ(http://bugs.php.net/bug.php?id=48276)があります。

$ apt-cache show php5
Package: php5
Priority: optional
Section: php
Installed-Size: 20
Maintainer: Ubuntu Core Developers 
Original-Maintainer: Debian PHP Maintainers 
Architecture: all
Version: 5.2.10.dfsg.1-2ubuntu6.4

最新版は、バグ修正が入ってきていますのでそのインストール方法です。

インストールする前に、いくつかのライブラリーの準備が必要です。PHPでGDを使うために、GDが使用する、JPEG,PNG周りの準備を行います。

$ sudo ln -s /usr/lib/libjpeg.so.62.0.0 /usr/lib/libjpeg.so
$ sudo ln -s /usr/lib/libpng12.so.0.37.0 /usr/lib/libpng.so
$ sudo apt-get install libjpeg62-dev
$ sudo apt-get install libpng12-dev

./configureには、マルチバイトに対応させるための–enable-mbstring、zlibを使用するための–with-zlib-dir、MySqlを使用するための–with-mysql, –with-mysql-sock、GDを使用するための–with-gd それに関連して、JPEG,PNG用の–with-jpeg-dir,–with-png-dirを指定します。また、php.iniの参照先、with-config-file-pathも指定してあります。

./configure \
 --enable-mbstring \
 --with-config-file-path=/etc/php5 \
 --with-zlib-dir=shared \
 --with-mysql= \
 --with-mysql-sock=/var/run/mysqld/mysqld.sock \
 --with-gd
 --with-jpeg-dir=/usr/lib \
 --with-png-dir=/usr/lib

このあと、

$ make
$ sudo make install

で、インストールできます。インストール先は、 /usr/local/binになります。

設定

PHPをWebサーバーのバックエンドで動かす設定をします。
まずは、Lighttpdの設定です。必要なモジュールmod_proxy_core, mod_proxy_backend_fastcgiを追加します。proxy.coreを使用していますので、Ver1.5以上でないと動きません。

#### PHP
server.modules += ( "mod_proxy_core", "mod_proxy_backend_fastcgi" )
$HTTP["url"] =~ "\.php$" {
       proxy-core.balancer = "round-robin"
       proxy-core.allow-x-sendfile = "enable"
       proxy-core.protocol = "fastcgi"
       proxy-core.backends = ( "unix:/var/run/lighttpd/php-fastcgi.sock" )
       proxy-core.max-pool-size = 5
}

簡単に説明しますと、URLが、.phpで終わるものをすべて、fastcgiのプロトコルでsocketに渡すという設定です。
socketは、unix:/var/run/lighttpd/php-fastcgi.sockにしてあります。バランシングはしていませんが、balancerにはround-robinを設定しています。
max-pool-sizeは、要求に対して作成されるPHP プロセスの数、PHP_FCGI_CHILDRENに対応する値をいれます。今回は、PHPは5つ動かす予定ですので、5にしてあります。サーバーへのリクエストの数によって、もっと増やしてもかまいません。これで、Webサーバーから、PHPへの橋渡しはできました。

次に、PHPでの受け取り方です。PHPは、以下のようにspawn-fcgiを用いで起動します。

$sudo /usr/local/bin/spawn-fcgi -s /var/run/lighttpd/php-fastcgi.sock -f /usr/local/bin/php-cgi -u www-data -g www-data -C 5 -P /var/run/php-fastcgi.pid

-sでLighttpdで指定したものと同じsocketを指定、-fで起動するphp-cgiの指定をしています。実行するユーザとグループは、ともにwww-dataです。(ユーザーとグループを変更して起動しますので、root権限が必要です。) -Cで先ほどのPHP_FCGI_CHILDRENの値、5を指定します。また、PIDは、-Pで指定してあります。

ちゃんと機能しているかを確認するために、簡単なPHPファイルを作りましょう

動作確認

<?php  phpinfo()  ?>

これを、Webサーバーから参照出来るところ例えば

/var/www/

に、test.phpとして保存します。

lynx http://localhost/test.php

テストがおわったら、test.phpは消しておきましょう。

コメントを残す