さとーC++ぶろぐ

アクセスカウンタ

zoom RSS DebianやUbuntu環境でApache2 + PHP5 でApache2をマルチスレッドに

<<   作成日時 : 2008/03/21 14:42   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Debian GNU/Linux 4.0 R3 etch と Ubuntu 7.10 server にて


ASP.NETをApacheで動かす mod_mono (パッケージ名 libapach2-mod-mono)を入れると,ASP.NETが使えるが,PHPが消されてしまう。PHPとASP.NETを同時に使う方法としても,これが使えます。



mod_php5 (パッケージ名 libapache2-mod-php5 ) をApache2に入れると,
apache2-mpm-worker (マルチスレッド駆動)がアンインストールされ,
apache2-mpm-prefork (フォーク駆動 Apache 1.3系と同じ)がインストールされる。

Ubuntu 7.10 Server ならLAMPサーバを入れるとデフォルトでApacheがフォーク駆動になる。
Debian GNU/Linux 4.0 R3 etch で
aptitude install apache2
aptitude install php5
として入れても,libapache2-mod-php5 + apache2-mpm-prefork になる。

php5パッケージは,インストールされているapacheを探し,
apache2が入っていれば,apache2-mpm-workerをアンインストールして
libapache2-mod-php5 と apache2-mpm-prefork をインストールする。


せっかくのマルチスレッド版のApacheが使えない。(マルチスレッド版の方が若干速い)


libapache2-mod-php5 では, apache2-mpm-worker (マルチスレッド駆動)が使えないのだ。



以下の手順で,libapache2-mod-php5 + apache2-mpm-prefork から php5-cgi + apache2-mpm-worker に入れ替える事が出来る。基本的にどちらも出来ることは同じ。

(以下のコマンドは,全てDebainならrootで。Ubuntu は頭に sudo を付けて実行。)

aptitude install php5-cgi apache2-mpm-worker
を実行。

libapache2-mod-php5 と apache2-mpm-prefork をアンインストールするので,
続行してもよいか聞いてくる。Yで続ける。


終わると普通に動く。
PHPの設定ファイルの位置が,
/etc/php5/cgi/ 内になるので,こちらで設定する。

Webサーバの /cgi-bin/ ディレクトリが /usr/lib/cgi-bin/ になっていること。

具体的には,

/etc/apache2/sites-available/default
の中に

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

の記述があること。これがないと,上手く動かん。(初期状態で入っています。)
ちなみに,phpはここに入る。php5 と phpのシンボリックリンクが出来る。



phpMyAdmin は,php5-cgiには標準で対応していないっぽい。
Debian GNU/Linux 4.0 R3 etchでは一応,動くが,
Ubuntu 7.10 Serverでは動かなくなった。

vi /etc/apache2/conf.d/phpmyadmin.conf


<Directory /usr/share/phpmyadmin > から </Directory >の間に

AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php5

を追加すること。

mod_actions を有効にする。以下のコマンドを実行。
a2enmod actions


Ubuntu 7.10のphpMyAdminのバージョンは
phpMyAdmin - 2.10.3deb1ubuntu0.2
このファイルに, /phpmyadmin/ を /usr/share/phpmyadmin/ へのエイリアス
にする設定が書かれている。


さらに,mod_php5 じゃないので以下の設定が使えない。
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .

これらの中で,デフォルトじゃないのは,,magic_quotes_gpc Off だけ。
これを設定しておく。
vi /etc/php5/cgi/php.ini
の中のmagic_quotes_gpc On を magic_quotes_gpc Off に修正。

送信時に "や ' や \ の文字に \ を勝手に付けるもの。
これを有効にしておきたい人は,mod_php5 の方を使ったほうがいい・・・。
(いまさらかよ)
戻すには, aptitude install libapache2-mod-php5 でどうぞ・・・。あ,上記で行った設定ももどしておいて・・・。

だた,これらのphpMyAdminは php_flag magic_quotes_gpc が Onだろうが Offだろうが問題なく動いているみたいだが・・・。


おまけ
Debian GNU/Linux 4.0 R3 etchでは/etc/apache2/conf.d/phpmyadmin.conf の位置設定ファイルがになくて,かわりに /usr/share/phpmyadmin/.htaccess を使う。
/usr/share/phpmyadmin/ へはディレクトリ /var/www/ 内に
シンボリックリンクを置くことで設定している。


Debian GNU/Linux 4.0 R3 etchでのphpMyAdminのバージョンは
phpMyAdmin - 2.9.1.1-Debian-6

色々と違う・・・。


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文
DebianやUbuntu環境でApache2 + PHP5 でApache2をマルチスレッドに さとーC++ぶろぐ/BIGLOBEウェブリブログ
文字サイズ:       閉じる