|
PHP5もXSLTをサポートしていますが、PHP4と異なり「XSL関数」でのサポートということになり、XSLTプロセッサもSablotronからlibxsltに変更になっています。これに伴い、configureオプションや使用するAPIも(当然)変更になっていますので、注意が必要です。
1.libxsltのインストール
最近のディストリビューションであれば、libxsltがすでに用意・インストールされている場合が多いと思いますので、省略します。。。ちなみに、Vine Linux2.95βではlibxslt-develパッケージ(rpm)が用意されていますので、apt-get等でインストールすると手っ取り早いと思います。
# apt-get update
# apt-get install libxslt-devel
#
2.Apacheのインストール
Apacheのインストールのページを参照して、DSOをサポートするようインストールしてください。今回は、Apache2.0.50をインストールしました。
3.PHPのソースを入手・展開
PHP本家のサイト(http://www.php.net/)からソースを取得します。最新版は(2004/07/16現在)は、PHP5.0.0です。php-5.0.0.tar.gzをダウンロード・展開後、php-5.0.0ディレクトリに移動します。GNU tarの場合、以下のコマンドです。
$ tar jxf php-5.0.0.tar.bz2
$ cd php-5.0.0/
$
4.PHPのconfigure
XSLサポートのオプションを付け、configureスクリプトを実行します。今回は、以下のオプションを付けましたが、その他のオプションはお好みにより付けて下さい。
- PHPをApache2 DSO版にする(*1)
- PHPでXSL関数をサポートする(*2、必須です)
- マルチバイト文字列関数(mbstring)をサポートする(*3)
- マルチバイト正規表現関数(mbregex)をサポートする(*4)
具体的なコマンドは、以下のようになります(カッコ内の数字は、上記のオプションの説明に対応しています)。
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs \ (*1)
--enable-xsl \ (*2)
--enable-mbstring \ (*3)
--enable-mbstr-enc-trans \ (*3)
--enable-mbregex (*4)
configureに失敗した場合、コンソールの最後にメッセージが表示されるので、確認してみましょう。また、ログファイルconfig.logが作成されているはずですので、こちらも確認してみましょう。このファイルには、configureスクリプトの何行目辺りにある、どういった処理を行っている時にエラーとなったかが記されています。
5.コンパイルとインストール
configureが無事終了したら、makeを実行しコンパイルを行います。コンパイルが終了したらrootユーザーとなり、インストールを実行します。
$ make
$ su
# make install
インストール先は、Apache1.3.xの場合は[Apacheのインストール先]/libexec、Apache2.0.xの場合は[Apacheのインストール先]/modules となります。ここにlibphp5.soが存在するかどうか、確認しましょう(これが実体です)。
configure終了後、suでrootユーザーになり、make installとしてもOKです。個人的には最近こちらの手順を使っています。
6.php.iniの設定
PHP5の設定ファイルであるphp.iniのコピー&設定を行います。php-5.0.0ディレクトリにphp.ini-recommendedファイルがありますので、/usr/local/lib/php.iniとしてコピーします。内容は必要に応じて適宜編集してください(^-^;
7.httpd.confの設定
[Apacheのインストール先]/conf/httpd.confを編集し、PHPを使用可能な状態にします。以下の赤字が編集した部分です。
LoadModule php5_module modules/libphp5.so(存在するか確認する)
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php(アンコメント)
AddType application/x-httpd-php-source .phps(必要であればアンコメント)
8.Apacheの起動と動作確認
[Apacheのインストール先]/bin/apachectlを使って、Apacheを起動します。なお、起動・停止スクリプトを別途作成している場合は、そちらを使って起動してください。
$ su -
# [apachectlへのパス]apachectl start
#
以下のようなPHPスクリプト・XML・XSLファイルを用意し、動作テストを行います。なお、XMLのデータは、PHP4.1.x以降のXSLTサポート手順にあるものを使っています。
●xslttest.php
<?php
$xml = new DomDocument();
$xml->load('test.xml');
$xsl = new DomDocument();
$xsl->load('test.xsl');
$processor = new xsltprocessor();
$processor->importStyleSheet($xsl);
echo $processor->transformToXML($xml);
?>
●test.xml<?xml version="1.0" encoding="shift_jis"?>
<article>
<subject>PHP関連書籍</subject>
<book>
<title>PHP4徹底攻略</title>
<isbn>ISBN4-7973-1392-7</isbn>
</book>
<book>
<title>Dynamic Webサイト構築入門 PHP編</title>
<isbn>ISBN-4898142818</isbn>
</book>
<book>
<title>Oracle8iとPHPで作るWebデータベースfor Miracle Linux</title>
<isbn>ISBN4871938670</isbn>
</book>
<book>
<title>PHPパーフェクトリファレンス</title>
<isbn>ISBN-4894714027</isbn>
</book>
<book>
<title>ホンキで学ぼう!PHPのキホン―PHP4によるwebアプリケーション構築のはじめの一歩</title>
<isbn>ISBN4-7980-0119-8</isbn>
</book>
<book>
<title>PHP、PerlでつかうXML/XSL―Sablotronで実現するWEBサイト管理の効率化</title>
<isbn>ISBN4886486169</isbn>
</book>
<book>
<title>プロフェッショナルPHPプログラミング</title>
<isbn>ISBN4-8443-1483-1</isbn>
</book>
<book>
<title>PHP4でカンタンWebDB構築ガイド</title>
<isbn>ISBN4-7980-0082-5</isbn>
</book>
<book>
<title>PHPデスクトップリファレンス</title>
<isbn>ISBN4-8731-1034-3</isbn>
</book>
<book>
<title>PHP+RDBMS Webサーバーでのデータベース活用術</title>
<isbn>ISBN4871938050</isbn>
</book>
<book>
<title>MySQL & PHP Webデータベース入門</title>
<isbn>ISBN4-7973-1325-0</isbn>
</book>
<book>
<title>PHPプログラミング入門</title>
<isbn>ISBN4-89471-225-3</isbn>
</book>
<book>
<title>PHPによるWebデータベース構築</title>
<isbn>ISBN4-89471-255-5</isbn>
</book>
<book>
<title>オープンソースソフトウェアによる全文検索・データベースWebの作り方</title>
<isbn>ISBN4-88337-177-8</isbn>
</book>
<book>
<title>オープンソースでつくるグループウェア</title>
<isbn>ISBN4898140505</isbn>
</book>
<book>
<title>PC-UNIXによる高機能Web構築入門</title>
<isbn>ISBN4-7741-0758-1</isbn>
</book>
<book>
<title>Linux/FreeBSDによるSQLデータベース構築入門 PostgreSQL6.4.2+PHP3編</title>
<isbn>ISBN4-07-391360-3</isbn>
</book>
</article>
●test.xsl<?xml version="1.0" encoding="shift_jis"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="shift_jis" indent="yes"/>
<xsl:template match="/article">
<html>
<head><title><xsl:value-of select="subject"/></title></head>
<body>
<b><xsl:value-of select="subject"/></b>
<hr/>
<ul>
<xsl:apply-templates select="book"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="book">
<li><b><xsl:value-of select="title"/></b> (<xsl:value-of select="isbn"/>)</li>
</xsl:template>
</xsl:stylesheet>
PHPスクリプトをブラウザからアクセスし、以下のように内容が表示されればOKです。
|