* PHP [#nbe2e7d5]

PHP 5.0.2 が出ました。

** 入手 [#bcd0d0ab]

[[www.php.net:http://www.php.net/]]
または日本のミラー
[[jp.php.net:http://jp.php.net/]],
[[jp2.php.net:http://jp2.php.net/]]
から PHP4 または PHP5 を入手し,展開します。

[[Ring Server:http://www.ring.gr.jp/pub/net/www/php/distributions/]]
でもミラーしています。

** インストール [#z3753832]

[[Apache 1:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/apache.html]]
または [[Apache 2:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/apache2.html]]
のインストールを済ませておいてください。

PHP 5.x の場合は [[libxml2:http://xmlsoft.org/]]
もインストールしておきます(あるいは XML 関係のオプションを切る必要があります)。

PostgreSQL が /usr/local/pgsql
に入っている場合は次のように configure に --with-pgsql
も付けます。この場合は /etc/ld.so.conf
に /usr/local/pgsql/lib
と書いておき /sbin/ldconfig を実行しておかなければなりません。

 cd php-4.3.6
 ./configure --with-apxs=/usr/local/apache/bin/apxs \
             --with-pgsql --without-mysql

Apache 2 の場合は --with-apxs2=/usr/local/apache2/bin/apxs
のようにします。

PHP 5.x の場合は,標準で含まれている [[SQLite:http://www.sqlite.org/]]
を使うなら,データベース関係のオプションは不要です。
PHP 5.0.x には SQLite 2.8.14 が標準で含まれていますが,PostgreSQL
も使うなら --with-pgsql を加えます。

 cd php-5.0.2
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
   --enable-mbstring --with-gettext --with-pgsql \
   --with-zlib --with-gd \
   --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib

マルチバイト文字対応 --enable-mbstring などのオプションを付けています。
~--with-zlib --with-gd は [[Moodle:http://moodle.org/]] が使います。

 make
 make install
 cp php.ini-recommended /usr/local/lib/php.ini

これで /usr/local/apache/libexec/libphp4.so
という Shared Object ができます。
ほかに /usr/local/lib/php/ の下にたくさんのファイルが入ります。
さらに 4.3.x では /usr/local/include/php/ にヘッダファイルが入り,/usr/local/bin/
には php,pear,phpize,phpextdist,php-config が入ります。
また,/usr/local/apache/conf/httpd.conf は若干書き換えられます(古いものは httpd.conf.bak
として残ります)。

/usr/local/lib/php.ini は適宜編集します(後述)。

これでいったん Apache を /usr/local/apache/bin/apachectl stop
で止めてから /usr/local/apache/bin/apachectl start
します。

もしうまくいかないなら,httpd.conf の LoadModule
php4_module(または php5_module)で始まる行をコメントアウトすれば元に戻ります:

** php.ini の設定 [#s1ae326b]

以下の設定は /usr/local/lib/php.ini で行います。

私は教育・デバッグに便利なように,Colors for Syntax Highlighting mode
をすべて生かし,display_errors を On
にし,error_prepend_string と error_append_string を生かしました。

デフォルトではセッション情報は /tmp に入ります:

 session.save_path = /tmp

これではセキュリティ的にまずいので,たとえば /usr/local/apache/sessions
に変更し,そのディレクトリの所有者を www,パーミッションを 700 にしておきます。

PHP 4.2 からは register_globals = Off がデフォルトになりました。
従来のようにグローバル変数を使うには register_globals = On
にしておきます(ただしセキュリティ上問題が起きやすくなります)。

PHP 4.2 からは display_errors = Off がデフォルトになりました。
エラーメッセージを表示させるには display_errors = On とします。
ついでに error_prepend_string,error_append_string
を設定しておけばエラーを赤で表示するといったことができます。

PHP 4.2 からは error_reporting = E_ALL がデフォルトになりました。
未定義の変数について警告を出してほしくなければ
error_reporting = E_ALL & ~E_NOTICE
にします。

PHP のサイトからドキュメントをダウンロードして自サーバに展開してその位置を docref_root
に設定し,docref_ext もコメントでなくしておくと便利です。

memory_limit = 8M がデフォルトですが,Moodle を使うには16M以上が推奨のようです。

** グラフィックを使うには [#v61e7eed]

(以下は最近確認していません。)

PHP で gd ライブラリによるグラフィック機能を使いたければ,./configure
の際に --with-gd --with-jpeg-dir=shared --with-zlib-dir=shared を付けます。
libjpeg がなければ
[[ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz]]
を展開したディレクトリで ./configure --enable-shared,make,make install してください。
libpng がなければ [[libpng:http://www.libpng.org/pub/png/libpng.html]]
のサイトから取ってきて scripts
ディレクトリの中の適当な makefile
のリンクをソースディレクトリのトップに makefile
という名前で作って make,make install します。

ちょっとやってみましたが,アロケートできる色の数は256色が限度のようで,大きい絵を作るとたいへん遅くなります。

** リンク [#ge59023a]

-[[日本PHPユーザー会:http://www.php.gr.jp]]