Changes between Version 3 and Version 4 of TipAndDoc/network/httpd/mpm-worker+php


Ignore:
Timestamp:
Sep 19, 2010 12:39:37 PM (14 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TipAndDoc/network/httpd/mpm-worker+php

    v3 v4  
    1818 * [http://ubuntuforums.org/showthread.php?t=1265288 (ubuntu) Very slow Apache2 : mpm-worker + mod-fcgid - Ubuntu Forums] 
    1919   * FCGIWrapperからphp-cgiを直接呼ばず、fcgiシェルスクリプトを経由 
     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{{{ 
     24phpinfo()などで、以下の2行を確認すべし。 
     25Debug Build => no 
     26Thread Safety => enabled 
     27 
     28(snip) 
     29 
     30まとめると、 
     311.zend_extensionに 
     322.もしデバッグビルドが有効なら、_debugを付けて、 
     333.もし、スレッドセーフが有効なら、_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{{{ 
     51PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cgi-fcgi) (built: May 13 2010 20:03:22) 
     52Copyright (c) 1997-2009 The PHP Group 
     53Zend 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{{{ 
     110zend_extension = /var/www/freshreader/ioncube/ioncube_loader_lin_5.3.so 
     111}}} 
     112 
     113 == misc == 
     114* FreshReaderのクローラを動かすのにphpコマンドが必要となるが、以下のようにphp-cgiコマンドでも動くので、cron用にphp5-cliのインストールは不要? 
     115{{{ 
     116sudo php-cgi -f /var/www/freshreader/crawler.php -c /var/www/freshreader/php.ini 
     117}}}