FreeBSD に PHP を載せて色々プログラムを組んでいますが、グラフなどイメージで表現したいものも多々あります。今まではクライアント側に C# や Delphi などでプログラムを組み込んでしのいできましたが、「フロントはブラウザのみ」という要求もだんだんと増えてきました。そこで、クライアント側完全ブラウザ化の第一歩としてサーバ側でイメージの生成がどの程度できるものかトライしてみます。
また、サーバ側の追加プログラムは ports ではなく package を利用します。
マシンの構築
OS には FreeBSD4.11 を使用します。
- http://www.freebsd.org/ja/ からたどって、 FreeBSD4.11 mini のディスクイメージをダウンロードしてきます。
- CD にディスクイメージを焼きます。
- インストールマシンに焼きたての CD をセットして電源オン。
Kerner Configuration Menu
- 2行目の Start kernel configuration in full-screen visual mode を選択
Active-Drivers
Inactive-Drivers
- [X]
- [Q]
- [Y]
sysinstall Main Menu
- Standard を選択
- [ OK ]
FDISD Partition Editor
- A
- Q
Boot Manager
- Standard を選択
- [ OK ]
FreeBSD Disklabel Editor
- A
- Q
Choose Distributions
- Minimal を選択
Choose Installation Media
- 1 CD/DVD を選択
- [ YES ]
- [ OK ]
SLIP/PPP
- [ YES ]
Network interface information required
- de0 を選択
IPv6
- [ NO ]
DHCP
- [ NO ]
Network Configuration
- Host : freebsd
- Domain : shimamuraworks.com
- IPv4 Gateway : 192.168.1.1
- Name server : 192.168.1.1
- IPv4 Address : 192.168.1.2
- [ YES ]
network gateway
- [ NO ]
network services
- [ NO ]
anonymous FTP
- [ NO ]
NFS
- [ NO ]
NFS client
- [ NO ]
security profile
- [ NO ]
- [ OK ]
console setting
- [ YES ]
- 3 Keymap を選択
- Japanese 106
- X Exit
time zone
- [ YES ]
- [ NO ]
- 5 Asia
- 19 Japan
JST
- [ YES ]
Linux binary compatibility
- [ YES ]
- [ OK ]
non-USB mouse
- [ YES ]
- Z Enable
- [ YES ]
- X Exit
package collention
- [ YES ]
- [ OK ]
- [ YES ]
User and Group
- User を選択
- Login ID : shima
- Password : **********
- Member group : wheel (ルートになりたかったから)
- Login shell : /bin/tcsh
- X Exit
root password
- [ OK ]
- **********
- **********
any options
- [ NO ]
X Exit Install
reboot
- [ 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です。
日本語を含むイメージの表示
<?phpHeader ("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:「シェルで日本語が通るように」を追加