PHP経由でGD使いたいなと思ったので。何も考えずにPHPインストールしてると、imagecreateとかのfunctionがないよと怒られるので、その辺のインストール周りから。必要なライブラリとかはマニュアルみたら載ってるので、困らないと思うけれど、自分メモもかねて貼っておく。
- jpeg-6b
$ cd ~/download $ wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz $ cp ./jpegsrc.v6b.tar.gz /usr/local/src/ $ cd /usr/local/src/ $ tar zxvf ./jpegsrc.v6b.tar.gz $ cd ./jpeg-6b $ ./configure --enable-shared $ make $ sudo make install
$ cd ~/download $ wget http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.16.tar.gz $ cp ./libpng-1.2.16.tar.gz /usr/local/src/ $ cd /usr/local/src/ $ tar zxvf ./libpng-1.2.16.tar.gz $ cd ./libpng-1.2.16 $ ./configure --enable-shared $ make $ sudo make install
- FreeType 2
$ cd ~/download $ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.2.tar.gz $ cp ./freetype-2.3.2.tar.gz /usr/local/src/ $ cd /usr/local/src/ $ tar zxvf ./freetype-2.3.2.tar.gz $ cd ./freetype-2.3.2 $ ./configure --enable-shared $ make $ sudo make install
フォントは使うかわからないけれど、ついでなので入れた。
ライブラリのインストールが出来たところでPHPの再インストールなんだけれど、今回付けたconfigureオプションのせいか「/usr/bin/ld: cannot find -lltdl」とか怒られたので、先にlibltdlインストール。libmcryptなので、画像とは関係ないかもだけど。
- libltdl
$ cd /usr/local/src/libmcrypt-2.5.7/libltdl/ $ ./configure --enable-ltdl-install $ make $ sudo make install
ということで、PHP再インストール。configureオプションが良い感じに増えてきた。
$ cd /usr/local/src/php-5.2.1 $ ./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql=/usr/local/mysql \ --with-mcrypt \ --enable-roxen-zts \ --enable-zend-multibyte \ --enable-track-vars \ --enable-mbstring \ --enable-mbregex \ --with-zlib \ --with-gd \ --with-jpeg-dir=/usr/local \ --with-png-dir=/usr/local \ --with-freetype-dir=/usr/local \ --enable-gd-native-ttf $ make $ sudo make install
これまた画像とは関係ないけれど、ZendOptimizerがバージョンアップしてたので、ついでにインストール。
- ZendOptimizer
$ cp ~/download/ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz /usr/local/src/ $ cd /usr/local/src/ $ tar zxvf ./ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz $ cd ./ZendOptimizer-3.2.6-linux-glibc21-i386 $ sudo ./install-tty yes /usr/local/Zend /usr/local/php/lib/ yes /usr/local/apache2/bin/apachectl no
これでマニュアルのimagecreate関数のページに書いてある以下のコードとかが動くようになる。
<?php header("Content-type: image/png"); $im = @imagecreate(110, 20) or die("Cannot Initialize new GD image stream"); $background_color = imagecolorallocate($im, 0, 0, 0); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, "A Simple Text String", $text_color); imagepng($im); imagedestroy($im); ?>
上のコードをそのままペタっと貼ると(←実際にimgタグのsrcは自宅サーバーに置いた上のコードにしてある)となる。
ということで、Gmail Signature Generatorみたいなのはすぐに作れる環境がめでたく出来ました。