Version 5 (modified by mitty, 14 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}
- aptitude install -s libapache2-mod-php5
- php5-cgi + fcgidで代替する
reference
- HOWTO: Using php5 with apache2-mpm-worker - Ubuntu Forums
- よく纏まっている
- Apache/FastCGI - Linux Tips
- FastCGI/fcgidの設定例
- (ubuntu) Very slow Apache2 : mpm-worker + mod-fcgid - Ubuntu Forums
- FCGIWrapperからphp-cgiを直接呼ばず、fcgiシェルスクリプトを経由
- 個人的自由帳 ≫ PHP + fcgi + suEXEC + php.ini 設定メモ
- 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を付ける。
設定例
- 対象として、FreshReaderを使用
- FreshReaderのlenny 64bitへのインストール ≪ むーのぶろぐ
- FreshReaderに同梱されているのはi386用のioncubeなので、x86_64用を別途取得しておくこと。
- FreshReaderのlenny 64bitへのインストール ≪ むーのぶろぐ
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
<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
- PHP CGIでの実行 - とみぞーノート
- PHPをモジュール版で動いてるところにpcntl拡張を使いたくてCGIでも動かそうとしたら、結構大変であわゎとなった - それ図解で。・・・tohokuaikiのチラシの裏
- 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