| 20 | |
| 21 | * [http://blog.half-moon.org/archives/573 個人的自由帳 ≫ PHP + fcgi + suEXEC + php.ini 設定メモ] |
| 22 | * [http://www.php-seed.net/blog/archives/95 xdebug追加をphp.iniに記述するとき、zend_extension=か zend_extension_ts=なのかを見極めるには。: PHPの種 ブログ] |
| 23 | {{{ |
| 24 | phpinfo()などで、以下の2行を確認すべし。 |
| 25 | Debug Build => no |
| 26 | Thread Safety => enabled |
| 27 | |
| 28 | (snip) |
| 29 | |
| 30 | まとめると、 |
| 31 | 1.zend_extensionに |
| 32 | 2.もしデバッグビルドが有効なら、_debugを付けて、 |
| 33 | 3.もし、スレッドセーフが有効なら、_tsを付ける。 |
| 34 | }}} |
| 35 | |
| 36 | = 設定例 = |
| 37 | * 対象として、[http://www.freshreader.com/ver2/ja/ FreshReader]を使用 |
| 38 | * [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へのインストール ≪ むーのぶろぐ] |
| 39 | * FreshReaderに同梱されているのはi386用のioncubeなので、x86_64用を別途取得しておくこと。 |
| 40 | |
| 41 | == install apache2, fcgid and php-cgi == |
| 42 | * sudo aptitude install -R apache2 libapache2-mod-fcgid php5-cgi |
| 43 | {{{ |
| 44 | apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-bin{a} |
| 45 | apache2.2-common{a} libapache2-mod-fcgid libapr1{a} libaprutil1{a} |
| 46 | libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a} php5-cgi php5-common{a} |
| 47 | }}} |
| 48 | |
| 49 | * /usr/bin/php-cgi -v |
| 50 | {{{ |
| 51 | PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cgi-fcgi) (built: May 13 2010 20:03:22) |
| 52 | Copyright (c) 1997-2009 The PHP Group |
| 53 | Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies |
| 54 | }}} |
| 55 | |
| 56 | == install FreshReader == |
| 57 | * wget http://www.freshreader.com/ver2/archive/sffr20unix_ja.tar.gz |
| 58 | * => /var/www/freshreader |
| 59 | |
| 60 | * wget http://www.asial.co.jp/ioncube/encoder/loader/ioncube_loaders_lin_x86-64.tar.gz |
| 61 | * sudo cp -r --preserve=timestamp ioncube/* /var/www/freshreader/ioncube/ |
| 62 | |
| 63 | === php5 with fcgid === |
| 64 | * sudo vim /etc/apache2/sites-available/default |
| 65 | {{{ |
| 66 | <Directory /var/www/freshreader> |
| 67 | AllowOverride All |
| 68 | Addhandler fcgid-script .php |
| 69 | FCGIWrapper "/usr/bin/php-cgi -c /var/www/freshreader/php.ini" |
| 70 | Options +ExecCGI |
| 71 | </Directory> |
| 72 | }}} |
| 73 | |
| 74 | * FCGIWrapperに渡す実行ファイルはURL上のPATHではなくファイルシステム上のPATH |
| 75 | {{{ |
| 76 | FCGIWrapper "/cgi-bin/php -c /var/www/freshreader/php.ini" |
| 77 | }}} |
| 78 | * => Wrapper /cgi-bin/php cannot be accessed: (2)No such file or directory |
| 79 | |
| 80 | * /etc/php5/cgi/conf.d/ioncube.iniなどにiniを格納した場合は「-c」引数は不要 |
| 81 | |
| 82 | === php5 without fcgid === |
| 83 | * [http://wiki.bit-hive.com/tomizoo/pg/PHP%20CGI%A4%C7%A4%CE%BC%C2%B9%D4 PHP CGIでの実行 - とみぞーノート] |
| 84 | * [http://d.hatena.ne.jp/tohokuaiki/20090601/1243837447 PHPをモジュール版で動いてるところにpcntl拡張を使いたくてCGIでも動かそうとしたら、結構大変であわゎとなった - それ図解で。・・・tohokuaikiのチラシの裏] |
| 85 | |
| 86 | * sudo a2enmod actions |
| 87 | * Actionディレクティブを使うので有効にする |
| 88 | |
| 89 | * sudo vim /etc/apache2/sites-available/default |
| 90 | {{{ |
| 91 | ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ |
| 92 | |
| 93 | (snip) |
| 94 | |
| 95 | <Directory /var/www/freshreader> |
| 96 | AllowOverride All |
| 97 | Addhandler php-script .php |
| 98 | Action php-script /cgi-bin/php |
| 99 | Options +ExecCGI |
| 100 | </Directory> |
| 101 | }}} |
| 102 | |
| 103 | * 次のようにsymlinkされている |
| 104 | {{{ |
| 105 | /usr/lib/cgi-bin/php -> /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php5 |
| 106 | }}} |
| 107 | |
| 108 | * sudo vim /etc/php5/cgi/conf.d/ioncube.ini |
| 109 | {{{ |
| 110 | zend_extension = /var/www/freshreader/ioncube/ioncube_loader_lin_5.3.so |
| 111 | }}} |
| 112 | |
| 113 | == misc == |
| 114 | * FreshReaderのクローラを動かすのにphpコマンドが必要となるが、以下のようにphp-cgiコマンドでも動くので、cron用にphp5-cliのインストールは不要? |
| 115 | {{{ |
| 116 | sudo php-cgi -f /var/www/freshreader/crawler.php -c /var/www/freshreader/php.ini |
| 117 | }}} |