PHP + GD で日本語表示


FreeBSD に PHP を載せて色々プログラムを組んでいますが、グラフなどイメージで表現したいものも多々あります。今まではクライアント側に C# や Delphi などでプログラムを組み込んでしのいできましたが、「フロントはブラウザのみ」という要求もだんだんと増えてきました。そこで、クライアント側完全ブラウザ化の第一歩としてサーバ側でイメージの生成がどの程度できるものかトライしてみます。

また、サーバ側の追加プログラムは ports ではなく package を利用します。

マシンの構築

OS には FreeBSD4.11 を使用します。

  1. http://www.freebsd.org/ja/ からたどって、 FreeBSD4.11 mini のディスクイメージをダウンロードしてきます。
  2. CD にディスクイメージを焼きます。
  3. インストールマシンに焼きたての CD をセットして電源オン。

Kerner Configuration Menu

  1. 2行目の Start kernel configuration in full-screen visual mode を選択

Active-Drivers
Inactive-Drivers

  1. [X]
  2. [Q]
  3. [Y]

sysinstall Main Menu

  1. Standard を選択
  2. [ OK ]

FDISD Partition Editor

  1. A
  2. Q

Boot Manager

  1. Standard を選択
  2. [ OK ]

FreeBSD Disklabel Editor

  1. A
  2. Q

Choose Distributions

  1. Minimal を選択

Choose Installation Media

  1. 1 CD/DVD を選択
  2. [ YES ]
  3. [ OK ]

SLIP/PPP

  1. [ YES ]

Network interface information required

  1. de0 を選択

IPv6

  1. [ NO ]

DHCP

  1. [ NO ]

Network Configuration

  1. Host : freebsd
  2. Domain : shimamuraworks.com
  3. IPv4 Gateway : 192.168.1.1
  4. Name server : 192.168.1.1
  5. IPv4 Address : 192.168.1.2
  6. [ YES ]

network gateway

  1. [ NO ]

network services

  1. [ NO ]

anonymous FTP

  1. [ NO ]

NFS

  1. [ NO ]

NFS client

  1. [ NO ]

security profile

  1. [ NO ]
  2. [ OK ]

console setting

  1. [ YES ]
  1. 3 Keymap を選択
  2. Japanese 106
  3. X Exit

time zone

  1. [ YES ]
  2. [ NO ]
  3. 5 Asia
  4. 19 Japan

JST

  1. [ YES ]

Linux binary compatibility

  1. [ YES ]
  2. [ OK ]

non-USB mouse

  1. [ YES ]
  2. Z Enable
  3. [ YES ]
  4. X Exit

package collention

  1. [ YES ]
  2. [ OK ]
  3. [ YES ]

User and Group

  1. User を選択
  2. Login ID : shima
  3. Password : **********
  4. Member group : wheel  (ルートになりたかったから)
  5. Login shell : /bin/tcsh
  6. X Exit

root password

  1. [ OK ]
  2. **********
  3. **********

any options

  1. [ NO ]

X Exit Install

reboot

  1. [ YES ]

マシンがリブートする。

 

ここまでが FreeBSD の基本部分のインストールです。続けて www サーバの apache をインストールします。

 

apache のインストール

root でログイン

# /stand/sysinstall

Configure

Packages

2 FTP

Japan

[ YES ]

www

apache-1.3.33_1

Install

[ OK ]

Exit

Exit Install

  • 自動起動のための編集


# vi /etc/rc.conf

次の行を追加

apache_enable="YES"

再起動して apache が動作しているか確認

shutdown -r now

 

もしかしたら、以下の gd のインストールは必要ないかもしれません。未確認です。

gd のインストール


root でログイン

# /stand/sysinstall

Configure

Packages

2 FTP

Japan

[ YES ]

graphics

gd-2.0.33_1,1

[ OK ]

Install

[ OK ]

再起動

 

php のインストール


root でログイン

# /stand/sysinstall

Configure

Packages

2 FTP

Japan

[ YES ]

lang

php4-4.3.10
php4-extensions-1.0

[ OK ]

Install

[ OK ]

再起動

  • gd モジュールの追加

root でログイン

# /stand/sysinstall

Configure

Packages

2 FTP

Japan

[ YES ]

graphics

php4-gd-4.3.10

[ OK ]

Install

[ OK ]

再起動

  • mbstring モジュールの追加

root でログイン

# /stand/sysinstall

Configure

Packages

2 FTP

Japan

[ YES ]

All どこのカテゴリーか、わからない・・・

php4-mbstring-4.3.10

[ OK ]

Install

[ OK ]

再起動

jvim エディタは本流とは関係ないですが、作業のときに日本語が通るエディタがあると便利なのでインストールします。

jvim のインストール


root でログイン

# /stand/sysinstall

Configure

Packages

2 FTP

Japan

[ YES ]

japanese

ja-jvim-3.0.j2.1a_1

OK

Install

[ OK ]

X Exit

Exit Install

以前は「東風フォント」が有名でしたが、権利関係で現在では配布がとまっています。その後継の「さざなみ」フォントを利用します。

日本語フォントの登録

http://sourceforge.jp/projects/efont/ より sazanami フォントをダウンロード

shima でログイン

> mkdir fonts
> tar jxf sazanami-20040629.tar.bz2

以下の php ファイルで動作を確認します。斜めに傾いた「インストール」という文字が黒地に白文字で表示されればOKです。

日本語を含むイメージの表示


<?php

Header ("Content-type: image/jpeg");

mb_internal_encoding("EUC-JP");
$im = imagecreate (150, 150);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);

// フォントパス
$font1 = "/usr/home/shima/fonts/sazanami-20040629/sazanami-gothic.ttf";
$font2 = "/usr/home/shima/fonts/sazanami-20040629/sazanami-mincho.ttf";

$str = "インストール";
//$str = "install";
$str = mb_convert_encoding($str,"UTF-8");

ImageTTFText ($im, 20, -45, 10, 20, $white, $font2, $str);

ImageJpeg ($im);
ImageDestroy ($im);

?>

 

シェルで日本語が通るように

シェルには tcsh を使っていますが、コマンドラインで日本語が入力できないので設定をいじります。

shima でログイン

jvim .cshrc

以下を加筆

setenv JLESSCHARSET japanese
setenv LANG ja_JP.eucJP

作成日:2005/8/17
修正日:2005/8/18:誤字・脱字の修正
修正日:2005/8/31:「シェルで日本語が通るように」を追加


島村製作所
Shimamura Works

〒 815-0033 福岡県福岡市南区大橋 1-22-3-501
TEL : 092-983-6045
E-Mail : info@shimamuraworks.com

トップ  戻る