PHP 5.3.3にswfed 0.20をインストールする
phpでフラッシュファイルのリソースを動的にリプレースを行えるextension swfedをPHP5.3.3にインストールしてみる。作者のよやさんによるとPHP5.3にて動作確認済みということです。せっかくなので、最新版のswfed-2.0を入れてみます。
まずダウンロード
- sourceforgeからダウンロード
wget http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fswfed%2F48480%2Fswfed-0.20.tar.gz [1] 23739 --12:32:45-- http://sourceforge.jp/frs/redir.php?m=iij sourceforge.jp DNS... 202.221.179.21 sourceforge.jp|202.221.179.21|:80 ³... ³ HTTP ³... 400 Bad Request 12:32:45 400: Bad Request
あれ、ダウンロードできない。
なるほど、&がバックグラウンドプロセスになっていただけか....不覚
wget 'http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fswfed%2F48480%2Fswfed-0.20.tar.gz'
インストール
tar xvzf swfed-0.20.tar.gz
cd swfed-0.20/src
phpize
./configure
make install
ここでエラー
/usr/local/src/swfed-0.20/src/swfed.c: In function 'zm_startup_swfed':
/usr/local/src/swfed-0.20/src/swfed.c:142: error: too few arguments to function 'zend_declare_property_stringl'
- swfed.c:142行目でzend_declare_property_stringlの引数が足りない。スレッドセーフ対応用のマクロTSRMLS_CCを追加。スレッドセーフな環境でない場合、引数を指定していなくってもコンパイルが通って動いちゃうので、指定忘れをしやすいんですね。ふむふむ
zend_declare_property_stringl(swfeditor_ce, "swf_object", strlen("swf_object"), "", 0, ZEND_ACC_PUBLIC TSRMLS_CC); return SUCCESS;
- モジュールにシンボリックリンクを張る
cd /usr/local/lib/php/extensions/ ln -s no-debug-zts-20090626/swfed.so .
- php.iniにモジュールの記述を追加
extension=swfed.so
svc -t /service/apache2/
- ちゃんとモジュールがロードされているかどうか確認
php -r "phpinfo();"|grep swfed swfed