Do You PHP?    
Search Engine Optimization  php5 powerd  Valid XHTML 1.0!  Valid CSS!  このサイトのはてなブックマーク数 



last updated
2004/07/16

counter hits
since 1999/11/06


PHP5.0.x以降のXSLTサポート手順

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)

cautionconfigureに失敗した場合、コンソールの最後にメッセージが表示されるので、確認してみましょう。また、ログファイルconfig.logが作成されているはずですので、こちらも確認してみましょう。このファイルには、configureスクリプトの何行目辺りにある、どういった処理を行っている時にエラーとなったかが記されています。

5.コンパイルとインストール

configureが無事終了したら、makeを実行しコンパイルを行います。コンパイルが終了したらrootユーザーとなり、インストールを実行します。

$ make
$ su
# make install

memoインストール先は、Apache1.3.xの場合は[Apacheのインストール先]/libexec、Apache2.0.xの場合は[Apacheのインストール先]/modules となります。ここにlibphp5.soが存在するかどうか、確認しましょう(これが実体です)。

memoconfigure終了後、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ファイルの読み込み
     */
    $xml = new DomDocument();
    $xml->load('test.xml');

    /**
     * XSLファイルの読み込み
     */
    $xsl = new DomDocument();
    $xsl->load('test.xsl');

    /**
     * XSLTプロセッサオブジェクトの作成と使用する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 &amp; 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です。

XSLTサポートの確認画面


About This Site |  Privacy Policy |  Contact
Copyright © 1999 - 2004 by Hideyuki SHIMOOKA all rights reserved.