wiki:TipAndDoc/network/httpd/mpm-worker+php

Version 6 (modified by mitty, 13 years ago) (diff)

--

  • 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

設定例

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

php5 with fcgid

  • sudo vim /etc/apache2/sites-available/default
            <Directory /var/www/freshreader>
                    AllowOverride All
                    Addhandler fcgid-script .php
                    FCGIWrapper "/usr/bin/php-cgi -c /var/www/freshreader/php.ini"
                    Options +ExecCGI
            </Directory>
    
  • 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

  • sudo a2enmod actions
    • Actionディレクティブを使うので有効にする
  • sudo vim /etc/apache2/sites-available/default
            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    
    (snip)
    
            <Directory /var/www/freshreader>
                    AllowOverride All
                    Addhandler php-script .php
                    Action php-script /cgi-bin/php
                    Options +ExecCGI
            </Directory>
    
  • 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