[[PageOutline]]
* Ubuntuでは、libapache2-mod-php5はapache2-mpm-workerと共に使用することが出来ない。
* aptitude install -s libapache2-mod-php5
{{{
The following NEW packages will be installed:
apache2-mpm-prefork{a} libapache2-mod-php5 php5-common{a}
The following packages will be REMOVED:
apache2-mpm-worker{a}
}}}
* php5-cgi + fcgidで代替する
= reference =
* [http://ubuntuforums.org/showthread.php?t=1038416 HOWTO: Using php5 with apache2-mpm-worker - Ubuntu Forums]
* よく纏まっている
* [http://linux.mini13i.gotdns.org/?Apache%2FFastCGI Apache/FastCGI - Linux Tips]
* FastCGI/fcgidの設定例
* [http://ubuntuforums.org/showthread.php?t=1265288 (ubuntu) Very slow Apache2 : mpm-worker + mod-fcgid - Ubuntu Forums]
* FCGIWrapperからphp-cgiを直接呼ばず、fcgiシェルスクリプトを経由
* [http://blog.half-moon.org/archives/573 個人的自由帳 ≫ PHP + fcgi + suEXEC + php.ini 設定メモ]
* [http://www.php-seed.net/blog/archives/95 xdebug追加をphp.iniに記述するとき、zend_extension=か zend_extension_ts=なのかを見極めるには。: PHPの種 ブログ]
{{{
phpinfo()などで、以下の2行を確認すべし。
Debug Build => no
Thread Safety => enabled
(snip)
まとめると、
1.zend_extensionに
2.もしデバッグビルドが有効なら、_debugを付けて、
3.もし、スレッドセーフが有効なら、_tsを付ける。
}}}
= 設定例 =
* 対象として、[http://www.freshreader.com/ver2/ja/ FreshReader]を使用
* [http://www.wxwxw.com/~muu/blog/2010/02/17/freshreader%E3%81%AElenny-64bit%E3%81%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/ FreshReaderのlenny 64bitへのインストール ≪ むーのぶろぐ]
* FreshReaderに同梱されているのはi386用のioncubeなので、x86_64用を別途取得しておくこと。
== install apache2, fcgid and php-cgi ==
* sudo aptitude install -R apache2 libapache2-mod-fcgid php5-cgi
{{{
apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-bin{a}
apache2.2-common{a} libapache2-mod-fcgid libapr1{a} libaprutil1{a}
libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a} php5-cgi php5-common{a}
}}}
* /usr/bin/php-cgi -v
{{{
PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cgi-fcgi) (built: May 13 2010 20:03:22)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
}}}
== install FreshReader ==
* wget http://www.freshreader.com/ver2/archive/sffr20unix_ja.tar.gz
* => /var/www/freshreader
* wget http://www.asial.co.jp/ioncube/encoder/loader/ioncube_loaders_lin_x86-64.tar.gz
* sudo cp -r --preserve=timestamp ioncube/* /var/www/freshreader/ioncube/
=== php5 with fcgid ===
* sudo vim /etc/apache2/sites-available/default
{{{
AllowOverride All
Addhandler fcgid-script .php
FCGIWrapper "/usr/bin/php-cgi -c /var/www/freshreader/php.ini"
Options +ExecCGI
}}}
* FCGIWrapperに渡す実行ファイルはURL上のPATHではなくファイルシステム上のPATH
{{{
FCGIWrapper "/cgi-bin/php -c /var/www/freshreader/php.ini"
}}}
* => Wrapper /cgi-bin/php cannot be accessed: (2)No such file or directory
* /etc/php5/cgi/conf.d/ioncube.iniなどにiniを格納した場合は「-c」引数は不要
=== php5 without fcgid ===
* [http://wiki.bit-hive.com/tomizoo/pg/PHP%20CGI%A4%C7%A4%CE%BC%C2%B9%D4 PHP CGIでの実行 - とみぞーノート]
* [http://d.hatena.ne.jp/tohokuaiki/20090601/1243837447 PHPをモジュール版で動いてるところにpcntl拡張を使いたくてCGIでも動かそうとしたら、結構大変であわゎとなった - それ図解で。・・・tohokuaikiのチラシの裏]
* sudo a2enmod actions
* Actionディレクティブを使うので有効にする
* sudo vim /etc/apache2/sites-available/default
{{{
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
(snip)
AllowOverride All
Addhandler php-script .php
Action php-script /cgi-bin/php
Options +ExecCGI
}}}
* Actionディレクティブの場合は「"/cgi-bin/php -c ~~~.ini"」のような指定の仕方は出来ないので注意
* 次のようにsymlinkされている
{{{
/usr/lib/cgi-bin/php -> /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php5
}}}
* sudo vim /etc/php5/cgi/conf.d/ioncube.ini
{{{
zend_extension = /var/www/freshreader/ioncube/ioncube_loader_lin_5.3.so
}}}
== misc ==
* FreshReaderのクローラを動かすのにphpコマンドが必要となるが、以下のようにphp-cgiコマンドでも動くので、cron用にphp5-cliのインストールは不要?
{{{
sudo php-cgi -f /var/www/freshreader/crawler.php -c /var/www/freshreader/php.ini
}}}