説明する必要がないほど有名な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は消しておきましょう。