[[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://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html mod_fcgid - Apache HTTP Server] * [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 }}}