| | 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 | }}} |