[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 メーリングリストの案内