27 9月 2007

[Linux] php5安裝extension xslt

## 此篇文章有更新 ##
## 以下為手動compile安裝xslt+php的步驟 ##
## 至於Ubuntu+php5+xsl 請參考我的新文章 ##

由於在php4.1以後的版本對extension xslt預設不再是support,因此如果想要為php安裝xslt的話,就變得有點麻煩了。最近正好要在Fedora5上安裝Apache+PHP+XSLT+Mysql,原本一切很順利得裝起來了,但是最後才發現PHP5不support XSLT了,原本全都用yum指令安裝的,或是用rpm安裝的,全都要移除重新安裝一次…

在Linux上,由於要讓PHP5裝上XSLT,就必須要自行下載source code經過compile後才能安裝,而要compile安裝PHP的話,也必須compile安裝Apache才行。

安裝XSLT所需要的套件是Sablot,而Sablot又需要先安裝Expat,所以安裝的順序為(以下版本為參考用):

  1. Expat-2.0.1
  2. Sablot-1.03 (Sablotron)
  3. Apache (httpd-2.0.59)
  4. PHP-5.2.3

以下為我的安裝指令,--prefix的路徑是可以自己設的,以自己的主機設定為主。

  • Expat
    • ./configure
    • make
    • make install
  • Sablot
    • 要-enable-shared才能讓PHP找到XSLT的library
    • ./configure --enable-shared
    • make
    • make install
  • Apache
    • 要--enable-module才能讓PHP順利安裝
    • ./configure --prefix=/usr/local/apache2 --enable-module=so
    • make
    • make install
  • PHP
    • ./configure --prefix=/usr/local/php \
    • --with-apxs2=/usr/local/apache2/bin/apxs \
    • --with-mysql=/usr/ \
    • --enable-xslt \
    • --with-xslt-sablot
    • make
    • make install

這只是在Linux上,安裝Apache+PHP再加上PHP的extension的XSLT,如果要加上其他的extension也是差不多依樣畫胡蘆就行了。若還是不太清楚,可以下./configure --help查一查,或是看看INSTALL檔案的內容,應該就滿清楚的了。


#ps. 最近改用Ubuntu照上面的步驟安裝,卻是屢裝屢敗,硬是不給我裝起來...明明phpinfo()的結果都看得到xslt了,執行時,就是給我出現Fatal error: Call to undefined function xslt_create() 的訊息...真的很幹!
後來改用php 4.4.7安裝後,才成功。真是奇怪...

2 則留言:

L 提到...

PHP5 已經不使用XSLT Functions了,改用XSL functions,所以xslt_create()當然不能用了,請改用其他方法吧。
我測試之後,沒問題。
這個問題也困擾我一些時日了,還好解決了。:)

XSL functions
http://www.php.net/manual/en/ref.xsl.php

XSLT Functions中已說明在PHP4.1.0可支援.PHP5則將其移到PECL去了.
http://www.php.net/manual/en/ref.xslt.php

Enjoy!!:D

Falldog 提到...

感謝你的意見~
我等等就來試試~
終於等到高手出面了~淚~
:)