[PHP-users 15748]JpGraphインストール

ams ams @ smile.ocn.ne.jp
2003年 6月 8日 (日) 22:21:17 JST


過去ログにも度々出てますが、RedHat 系の(7.2 以降) rpm ビルド
で、試験環境を作成してみましたので、メモを出します。

勿論、日本語使用 OK にします。

今回は、RedHat 7.2 で行いました。出来るだけ最新の環境にする
ために、srpm は、Vine 2.6rc1 のものを使います。PHP は、Vine
Plus のものです。

ftp://ftp.ics.es.osaka-u.ac.jp/pub/mirrors/Vine/Vine-2.6/SRPMS/SRPMS
apache-1.3.27-0vl1.src.rpm

ftp://ftp.ics.es.osaka-u.ac.jp/pub/mirrors/Vine/VinePlus/2.6/SRPMS
php-4.2.3-0vl1.src.rpm

各々、リビルドするわけですが、
# rpm --rebuild apache-1.3.27-0vl1.src.rpm
として、出来上がった rpm ファイルをそのままインストール。ド
キュメントルートは、/home/httpd となり、具体的なソースは、
/home/httpd/html 以下となります。localhost だけ使ってテスト
http://localhost/jpgraph-1.11/src/Examples/testsuit.php
をして、問題が無くなってから、spec ファイルを書き換えて、ド
キュメントルートをソースインストールと同じ場所にしても構わな
いと思います。

PHP をリビルドする前に、gd ライブラリをリビルドすることにな
ります。このライブラリは、既に、2.0.X 系が安定版なのですが、
RedHat 系は、1.8.4 系で且つ、gnuplot などとの依存関係があり
ますから、1.8.4 のままで行きます。

2.0.x 系は、PHP 4.3.X 以上でしか使えません。特例として、
http://www.boutell.com/gd/
に、PHP 4.2.3 のパッチがありますから、最新の JpGraph の全て
の機能が使いたければ、これを使って下さい。

gd は、RedHat 7.2 以降なら、(Vine 2.6rc1 も)1.8.4 の srpm を
用いて、リビルドする際に、SOURCE ディレクトリの本体を解凍し
て、CFLAGS,LIBS を調整します。

CFALGS に -DHAVE_LIBTTF -DJISX0208 があるかどうか
LIBS に -lttf があるかどうかです。
無ければ、付け足して、tar.gz ファイルを作り直しておいて下さ
い。ざっと見て、-DJISX0208 以外は大抵最初からありますが。

gd のインストールが無事済めば、PHP にとりかかります。
php-4.2.3-0vl1.src.rpm
を、rpm --rebuild で、一旦分解してから、SPECS ディレクトリで
、php.spec ファイルの configure の設定を直します。

compile() {
./configure \
	--prefix=%{_prefix} \
	--with-config-file-path=%{_sysconfdir} \
	--enable-force-cgi-redirect \
	--disable-debug \
	--enable-pic \
	--enable-inline-optimization \
	$* \
	--with-exec-dir=%{_bindir} \
	--with-bz2 \
	--with-regex=system \
	--with-gettext \
	--with-gmp \
	--with-gd \
	--with-jpeg-dir=%{_prefix} \
	--with-png-dir=%{_prefix} \
	--with-freetype-dir=/usr \
	--enable-gd-native-ttf \
	--with-zlib \
	--with-gdbm \
	--with-openssl \
	--with-layout=GNU \
	--enable-debugger \
	--enable-magic-quotes \
	--enable-safe-mode \
	--enable-sockets \
	--enable-sysvsem \
	--enable-sysvshm \
	--enable-track-vars \
	--enable-yp \
	--enable-ftp \
	--enable-wddx \
	--without-mysql \
	--without-oracle \
	--without-oci8 \
	--with-xml \
	--with-expat-dir=%{_prefix} \
	--with-dom=%{_prefix} \
        --enable-xslt \
	--with-xslt-sablot=%{_prefix} \
	--with-dom-xslt=%{_prefix} \
        --enable-iconv \
	--enable-mbregex \
	--with-namazu=%{_prefix} \
	--with-kakasi=%{_prefix} \
	--enable-mbstring \
	--enable-mbstr-enc-trans \
	--enable-versioning \
	--enable-zend-multibyte
#sh ltconfig ltmain.sh
make
}

として、FreeType2 を使う設定にします。そして、rpm -bb or -ba
として、rpm,srpm をリビルドして下さい。尚、PostgreSQL,MySQL
は、Vine 2.6RC1 のものをリビルドして入れてあります。結局、
ベンダーさん提供のRedHat 系では、一番バージョンが進んでいま
すから。
postgresql-7.2.3-0vl1
MySQL-3.23.53-0vl2
となります。これらも、リビルドしてインストールしてしまいます
。最も、PostgreSQL は、そのままでも構いません。MySQL だけが
、一般のRedHatとVineで名称が(先頭大文字)違うので、面倒を省
くためです。いずれにしても、実運用しているマシンは避けるのが
望ましいですね。データのリストアに自信が無ければ、やめておく
方が無難です。後、postfix とか言われますが、適当に入れてあげ
て下さい。後で、強制的にアンインストールすれば良いですから。
最終的には、自分の環境に合わせることになりますけど。namazu
だとか使わない方は、

BuildPrereq: apache-devel, gdbm-devel, imap-devel >=
2000c-1.6.0, MySQL-devel 
BuildPrereq: openssl-devel,
postgresql-devel, pam-devel, postfix BuildPrereq:
freetype-devel, gd-devel, libjpeg-devel, libpng-devel,
zlib-devel 
BuildPrereq: namazu-devel, kakasi-devel,
unixODBC-devel, libxml2-devel BuildPrereq: expat-devel,
gmp-devel, pcre-devel BuildPrereq: libxslt-devel,
libsablotron0-devel

ですから、調整して、php.spec ファイルを改変して下さい。

php-imap-4.2.3-0vl1
php-pgsql-4.2.3-0vl1
php-devel-4.2.3-0vl1
php-ldap-4.2.3-0vl1
php-odbc-4.2.3-0vl1
php-4.2.3-0vl1
php-mysql-4.2.3-0vl1
とドキュメントが出来るはずです。

また、BUILD ディレクトリに、php-4.2.3 が展開されていますから
、その ext/gd に移り、
# phpize
# ./configure --with-gd --with-ttf=/usr
 --enable-gd-native-ttf 
# make
# su
# make EXTENSION_DIR=/usr/lib/php4 install

とします。/usr/lib/php4 には、
[root @ maria php4]# ls
gd.so  imap.so  ldap.so  mysql.so  odbc.so  pgsql.so
となっているはずです。

これで、ほぼ準備は出来ました。/etc/php.ini には、
extension=gd.so
を入れておいて下さい。

http://www.aditus.nu/jpgraph/jpdownload.php
から、JpGraph 1.11 (.tar.gz)を取ってきて下さい。最新版は、
1.12 ですが、日本語パッチ宛をしますので。また、core フォント
を
http://corefonts.sourceforge.net/
から、rpm で作成してください。インターネット接続していれば、
自動的に生成してくれるようになってますので、ページの指示通り
にしてください。

http://www.geocities.jp/rui_hirokawa/php/php-book2/
「PHP4徹底攻略」実戦編 サポートページ から、JpGraph 1.11 の
パッチを貰って来て下さい。これをソースを解凍して当てて、再び
tar.gz に戻して、SOURCE ディレクトリに置きます。

但し、修正してもらったはずなのですが、パッチには一カ所抜けが
あり、念のために、当てた後に src/jpgraph.php 2044 行目が、
 FF_TREBUCHE => array(FS_NORMAL=>'trebuc',
    FS_BOLD=>'trebucbd',   FS_ITALIC=>'trebucit',
    FS_BOLDITALIC=>'trebucbi', FS_EXT=>'.ttf' ),

となっているかどうか、確認してください。

そして、実験的に作成するための
JpGraph の spec ファイルを SPECS に、
jpgraph.spec
---start
Summary: Graph Library for PHP
Name: jpgraph
Version: 1.11
Release: 1
License: QPL <--- (だそーです。)
Packager: ams @ smile.ocn.ne.jp
Group: Development/Languages
Source:http://jpgraph.techuk.com/jpgraph/downloads/jpgraph-
%{version}.tar.gz <--- 一行で(今はアクセスできないけど、
JpGraphのページのミラー指定がそうなっているので)
URL:http://www.aditus.nu/jpgraph/
Buildroot: %{_tmppath}/%{name}-root
BuildArch: noarch

%description
JpGraphは手軽にPHP-4.1,gd-1.8.4 以降を使って
多彩なグラフを作成するPHPクラス群です。
理数的な使い方よりも、むしろビジネスシーンで
の利用が望ましいツールです。

%prep
rm -rf $RPM_BUILD_ROOT
%setup -q

%build

%install

mkdir -p $RPM_BUILD_ROOT/home/httpd/html/%{name}-%{version}

cp -a $RPM_BUILD_DIR/%{name}-%{version}/*
$RPM_BUILD_ROOT/home/httpd/html/%{name}-%{version}

%clean
rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/%{name}-%{version}/

%files
%defattr(-,root,root)
/home/httpd/html/jpgraph*

%changelog
* Sat Jun 6 2003 ams <ams @ smile.ocn.ne.jp>
- Ver 1.11
---end

というファイルを作成して、rpm -bb or -ba をして、rpm を作成
して下さい。そして、インストール。

/home/httpd/html に jpgraph-1.11 ディレクトリが出来ているは
ずです。本来は、/usr/share/pear に入れるべきものですが、
Exsample ディレクトリの沢山のファイルが、インクルードディレ
クトリを ../ にしているため、動作確認が済むまではとりあえず
このようにします。

後は、apche を起動して、http://localhost で、apache の状態を
、phpinfo.php を例のごとく、<?php phpinfo(); ?> で確認できた
ら、

jpgraph.php を
DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");

// Directory for jpGraph TTF fonts. Must end with '/'
// DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
DEFINE("TTF_DIR","/usr/share/fonts/msttcorefonts/");
このように指定することとなるはずです。

http://localhost/jpgraph-1.11/src/Examples/
として、 testsuit.php を動かします。ここで、GD 2.X を用いる
一カ所以外は、全て動作してブラウザに表示されるはずです。
(Linux Mozilla 1.4.1 rc1 と Linux Mozilla 1.0rc3 で確認)
更に、http://localhost/jpgraph-1.11/src に japanese ディレク
トリを作成し、
「PHP4徹底攻略」実戦編 にある、日本語使用のコードもいずれも
無事に動作しました。
require_once("../jpgraph.php"); // JpGraph メインファイル
require_once("../jpgraph_line.php"); // 折れ線グラフ用ファイ
ル のようにインクルードは調整して下さい。

以上、全て OK なら、JpGraph を /usr/share/pear に移して、利
用して下さい。(rpm を作り直しても良いでしょうし)

長文失礼をしました。くれぐれも、稼働中のシステムではなく、内
容を触っても良いマシン・システムで自己責任で試して下さいませ
。間違っても、Web,DB Mail etc. 運用しているシステムでは、や
らないで下さい。

---
ams
mailto:ams @ smile.ocn.ne.jp


PHP-users メーリングリストの案内