ServersMan@VPSをまた借りた

CentOS, ServersMan No Comments »

今、請け負っている仕事にPHPExcelを使うものがあります。
これまでは、ファイルを書き出すだけで全然問題がなかったのですが、既存のexcelファイルを読み込んで編集する機能を使おうとすると、一部の関数が定義されていないと文句を言われて動きません。
開発環境はWindows7でほぼ最新版なのですが、Linuxではそうもいきません。
Date系の関数が実装されているPHP5.3の環境が必要になりました。

今までテスト鯖用にServersMan@VPSを使っていたのですが、PHPは5.1.6なので、これをアップデートしてしまってもよかったのですが、比較検証することができなくなるため、新しく借りることにしました。
使い慣れたSaaSesでいくかどうかちょっとだけ悩んだ結果、できるだけ同じ環境で比較できるようにと、またServersManを借りることにしました。
スペックはどうでもいいので、無難にEntryタイプを選択。

OSはCentOS5.4だったのを5.6に、PHPも5.3をいれて、ほかにも手当たり次第にupdateやupgradeをかけまくって、まだ途中だったりします。
そのうち終わりますよ、きっと。

たぶん、でめたし、でめたし?

CentOS6にRPMforgeを導入する

CentOS 3 Comments »

CentOS6は5と同じ要領では正常に進めません。
当然ですね、メジャーバージョンが違いますから。
簡単なパスの変更ですが、一応記録しておきます。

まずは、リポジトリのインストール

yum -y install yum-priorities
yum -y install yum-plugin-priorities

次に、リポジトリ設定ファイルの編集
vi /etc/yum.repos.d/CentOS-Base.repo
各セクションの末尾に
#add
priority=1

を追加。

GPGキーをインストール

wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt

ここからがCentOS5と異なります。
RPMforgeリポジトリのインストール
64bitの場合

http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-1.el6.rf.x86_64.rpm


32bitの場合

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.2-1.el6.rf.i686.rpm

そして最後にyumをアップデート
yum -y update rpmforge-release

これで、RPMforgeのお世話になれます。
でめたし、でめたし。

CentOS6をネットワーク経由でインストールしようとして手が止まる

CentOS No Comments »

新しく鯖を手に入れました。
ウェブ鯖用なので、OSはCentOS6の64bitを選びました。
CentOS6の32bitはDVD1枚ですが、64bitはDVDで2枚になってしまうため、ネットワーク経由でインストールすることにしました。
ブートはUSBで、ネットワークインストールのISOをダウンロードしてブートイメージを書き込みます。
ブートするまでは特に問題ないでしょう。
インストールデバイスを選択する画面で手が止まりました。
見慣れたメニューと少し違います。
ローカルCD/DVD
ハードドライブ
NFSイメージ
FTP
HTTP
の、
FTPとHTTPがなくて、URLとなっています。
まぁ、想像は付くのですが、選択するとTCP/IPの設定画面が現れ、さらに進みます。
今までは、サイト名とディレクトリが分かれていましたが、URLを入力しろと言われます。
ここでhttpまたはFTPのプロトコルからの入力が必要になっています。
ま、大した変更ではありませんが、あえて統一した理由もよくわかりませんが。
そのあとはたぶん同じです。
変更があったかもしれませんが、その画面を利用するような設定ではなかったので。

待望のCentOS6をインストールしてみた

CentOS, Linux No Comments »

これまでサーバ用途にはCentOS一択でお世話になっています。
RedHatが6になり、6.1も出るのに、CentOSは6のアナウンスが全然ないとか、中心メンテナが離脱してScientificLinuxへの移行を勧めているとか、物騒な情報も流れ迷走している感じがしなくもありませんでした。

そんな中でいよいよリリースされたCentOS6。
早速、余っているPCにインストールしてみました。
デザインや設定画面がちょっと変更になっていましたが、インストール自体は特に問題なく完了。
再起動して、yumでアップデートして、再起動して、特に問題はなさそうでした。
個人的な利用範囲での大きな変更は、PHPが5.3になってたり、Perlが5.10になってたりしているぐらいでしょうか。
これといって問題になりそうな更新もないので、今後はCentOS6のお世話になろうと思います。

FTPでPASVの設定を忘れていた

CentOS, Linux, SaaSes No Comments »

SaaSesでVPSを借りています。
新しいシステム用にちょっとだけランクのいいサービスを契約しました。
そのシステムのバックアップでFTP経由でファイルをミラーリングしていたのですが、接続がブチブチ切れて大きなファイルをダウンロードできない現象が頻発していました。
VPSに入れていたFTPサーバはProFTPDです。
しばらく放置していたのですが、FTPクライアントのソフトを見ていて気がつきました。PASVモード接続にチェックが入っていませんでした。
そこでチェックを入れてみたものの、ログインしてもリストを取得できない、これはファイアウォールの設定か何かかと思って眺めていても、埒が明きません。
よくよく調べてみると、PASVモード用にポート番号を設定する必要があると判明。
SaaSesのVPSはWebminで管理できますが、Webminの管理ツールからPASVモードの設定は1.530の現在では出来ないようです。
なので、設定ファイル編集より直接編集します。
最後に

# PASVモードで使用可能なポート番号範囲
PassivePorts 7030 7050

とおまじないを書いて保存、適用します。
さらに、Linuxファイアウォールで該当のポートを空けて適用すればPASVモードで接続が出来るようになりました。
でめたし、でめたし。

そういえば、回線のせいかもとツイートした気がします。日本ラッドさん、ごめんなさい。

TCPDFでOTFフォントを使用する

CentOS, PHP, PostScript No Comments »

PHPでPDFを扱うためのライブラリにTCPDFがあります。
TCPDFでOTFフォントを使用すると、AcrobatReaderでは正常に読めても、Illustratorで正常に読めず、テキストがラスタライズされて少々気持ちの悪い事態に遭遇することとなります。
Illutratorで開くことを想定しているなら、TCPDFで扱うフォントには少々の工夫が必要なので、ここに残しておきます。

まず、TCPDFで扱うフォントはTTFフォントで統一します。フォント名が同じであればTTFで作成したPDFでも、OTFフォントがインストールされた環境のIllustratorでも問題なく読むことが出来ます。

OTFフォントをTTFフォントに変換するにはFontForgeを使用します。
インストール方法を検索すると、Windowsのcygwin環境下でのインストール方法が沢山ヒットしますが、個人的にはうまくいかなかったので、LinuxのCentOS5を使用しました。アプリケーションはGUIでx11環境が必要なので、デスクトップ版を用意しましょう。
パッケージはhttp://sourceforge.net/projects/fontforge/files/fontforge-executables/から「fontforge-20090923-1.i386.rpm」をダウンロードします。少々古いものですが、特に問題ありません。ダウンロードが終わると、ファイルをダブルクリックするだけでインストールが始まり、あっさりと完了します。

アプリケーションはGUIなのですが、メニューには登録されませんのでファイルを直接起動するか、ターミナルから起動する必要があります。ターミナルで「fontforge」と入力して起動すると、読み込むファイルを要求されるのでTTFフォントに変換したいOTFフォントを選択します。

選択したOTFファイルの内容によってはCIDマップファイルが必要と言われるかもしれません。CIDマップファイルはhttp://fontforge.sourceforge.net/cidmaps.tgzにありますので、ダウンロードして展開したファイルを「/usr/share/fontforge/」にコピーします。

しばらくして読み込みが完了すると文字コード表が表示されるので、メニューより「CID>単一化」を選択してファイルを統合します。
そしてメニューより「ファイル>フォントを保存」を選択して、保存形式を「TrueType」に設定し、保存ファイル名を入力して保存すれば完了です。
これで変換作業は完了です。作成されたTTFファイルを開いて正常に読み込むことができれば成功です。

フォントファイルをTCPDFで扱える状態にする方法は、ライブラリ内のtcpdf/fonts/utils/README.TXTにある通りで問題ありません。むしろ他に方法がありません。
「$ ttf2ufm -a -F myfont.ttf」
「$ php -q makefont.php myfont.ttf myfont.ufm」
これで作成されたファイルをfontsディレクトリにコピーし、TCPDFよりPDFを作成すればAcrobatReaderでもIllustratorでも問題なく開くことが出来るPDFファイルの完成です。

いまいち文章が推敲されていないのでまとめます。

TCPDFはPDF作成ライブラリですごい
TCPDFのPDFはOTFフォントを使うとIllustratorでは読めない(ラスタライズされる)ことがある
TCPDFのPDFをIllustratorで読む可能性があるならOTFフォントをTTFフォントに変換しておく
OTFフォントをTTFフォントに変換するにはFontForgeを利用する
CIDマップがないとOTFファイルを展開できない(ことがあるかもしれない)

CentOS5.5に最新のImageMagickをソースからインストールする

CentOS, ImageMagick, Linux 2 Comments »

CentOS5.5のシステムをセットアップしていました。
yumからシステムを一通りアップデートしてから、PerlをCPANでモジュール群を更新したのですが、Image::Magickを入れようとしたところ、force installにしてもNOT OKとなり、インストールできませんでした。
これはImageMagickのバージョンとPerlの(コアなモジュール)バージョンとの依存の影響と思われ、Windowsの場合はImageMagickとActivePerlのバージョンは細かく指定されています。
Linuxの場合は自動で依存を解消してくれるものと思っていましたが、どうやらダメだったようです。
ImageMagickのために、別のディストリを入れなおすことも考えましたが、それではあまりにも情け無いので、だめもとで手動でソースからコンパイルしてインストールに挑戦しました。

まずはソースの取得


[root@localhost ~]# wget ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
--2010-07-20 15:44:05--  ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
=> `ImageMagick.src.rpm'
ftp.kddilabs.jp をDNSに問いあわせています... 192.26.91.193
ftp.kddilabs.jp|192.26.91.193|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD /graphics/ImageMagick/linux/SRPMS ... 完了しました。
==> SIZE ImageMagick.src.rpm ... 8747108
==> PASV ... 完了しました。    ==> RETR ImageMagick.src.rpm ... 完了しました。
長さ: 8747108 (8.3M)

100%[======================================>] 8,747,108   3.39M/s 時間 2.5s

2010-07-20 15:44:08 (3.39 MB/s) - `ImageMagick.src.rpm' へ保存終了 [8747108]

検索してヒットするサイトの中にはURLが「kddilabs」ではなく「kddlabs」とありますが、どちらでもいい(?)みたいです。こちらの環境でkddlabsはDNS解決できませんでしたがkddilabsでは通りました。

ここからsrc.rpmを取得して展開します。
コマンドなら次の通り

[root@localhost ~]# rpm -ivh –nomd5 ImageMagick.src.rpm
1:ImageMagick 警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します
########################################### [100%]
警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します

同じ階層に「_FILES」という文字が追加されたディレクトリがあるはずなので、移動します。


[root@localhost ~]# cd ImageMagick.src.rpm_FILES
[root@localhost ImageMagick.src.rpm_FILES]# ls
ImageMagick-6.6.3-0.tar.bz2  ImageMagick.spec

とりあえずビルドしてみます。


[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec
エラー: ビルド依存性の失敗:
libtiff-devel は ImageMagick-6.6.3-0.i386 に必要とされています
giflib-devel は ImageMagick-6.6.3-0.i386 に必要とされています
perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています
ghostscript-devel は ImageMagick-6.6.3-0.i386 に必要とされています
djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libwmf-devel は ImageMagick-6.6.3-0.i386 に必要とされています
jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libtool-ltdl-devel は ImageMagick-6.6.3-0.i386 に必要とされています
lcms-devel は ImageMagick-6.6.3-0.i386 に必要とされています
librsvg2-devel は ImageMagick-6.6.3-0.i386 に必要とされています

いろいろと足らないと文句を言われました。
とりあえずyumで片っ端から入れていきます。


[root@localhost ImageMagick.src.rpm_FILES]# yum install libtiff-devel giflib-devel perl-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel lcms-devel librsvg2-devel

進捗は省略します。
最終的に次の3つが残ります。

perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています
djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています
jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています

まず、「perl-devel」はcentOS5.5ではperlに頭語されているらしいので不要です。
specファイルの15行目(辺り)にあるperl-develを削除またはコメントアウトします。

次に、「djvulibre-devel」はリポジトリ「RPMForge」または「Dag」を利用してインストールします。
導入方法は検索するなどして調べてください。
大量に解説サイトがあるので省略します。

最後に、「jasper-devel」は「http://dev.centos.org/centos/5/testing/i386/RPMS/」にCentOS5用のRPMがあります。他のサイトにある通常のel5.i386のrpmは依存解消できずにインストールできませんでした。

これら3つが解決すれば晴れてImageMagickのコンパイルが開始できます。


[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec

かなり時間がかかります。
問題なく終われば、以下の場所にrpmが生成されます。


[root@localhost redhat]# cd /usr/src/redhat/RPMS/i386
[root@localhost i386]# ls
ImageMagick-6.6.3-0.i386.rpm            ImageMagick-devel-6.6.3-0.i386.rpm
ImageMagick-c++-6.6.3-0.i386.rpm        ImageMagick-doc-6.6.3-0.i386.rpm
ImageMagick-c++-devel-6.6.3-0.i386.rpm  ImageMagick-perl-6.6.3-0.i386.rpm
ImageMagick-debuginfo-6.6.3-0.i386.rpm

ここまで来れば(おそらく大丈夫です。


[root@localhost i386]# rpm -Uvh ImageMagick-*
準備中...                ########################################### [100%]
1:ImageMagick            ########################################### [ 14%]
2:ImageMagick-c++        ########################################### [ 29%]
3:ImageMagick-perl       ########################################### [ 43%]
4:ImageMagick-debuginfo  ########################################### [ 57%]
5:ImageMagick-devel      ########################################### [ 71%]
6:ImageMagick-c++-devel  ########################################### [ 86%]
7:ImageMagick-doc        ########################################### [100%]
[root@localhost i386]# convert -version
Version: ImageMagick 6.6.3-0 2010-07-20 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features:

でめたしでめたし。お疲れ様でした。

プリンタを買いました

CentOS, Folding@home, Perl, 未分類 No Comments »

パソコンの使い始めといえばN88-BASICとか、MS-DOS5.0AHとか、Window3.1とかの世代なのですが、PC-9821Xa/7Eを手に入れて以来、それなりに周辺機器には手を出してきました。
その中で今まで手に入れていないメジャーな機器にMOとプリンタがありましたが、ついにプリンタを買うことにしました。
プリンタはずっと欲しかったのですが、携帯のデジカメで済ますのがほとんど。

とはいえ、最近のサービスは領収書など自分で印刷しろってのが多く、ファミマTカードの請求書も印刷のみなのでこれはいよいよ買うしかないと、重い腰を上げたのです。
頻繁に使うわけではなく、インクジェットだと起動時のクリーニングでインク代が馬鹿にならないらしいので、思い切ってレーザーを選択することに。
デザインとか使い勝手とか考えて、結局ブラザーのHL-2140にしました。
買ったのは楽天の店で12000を切る安さ。
ポイントを使って1万ちょいで手に入れました。

di:ブラザー 新品送料無料!A4 モノクロレーザープリンタージャスティオ HL-2140メーカー保証…

実際に使ってみても、特に問題ありません。
レーザなので電気を食うのはわかっていましたが、電圧が不安定になるのか、電磁波の影響かわかりませんが、起動時と印刷時に部屋の蛍光灯がちらつくぐらいで、思っていたよりも静かだし、いい買い物をしたのではないかと思ってます。
トナーセーブモードがあるのですが、印刷ごとに設定品ければならないのでちょっと面倒です。
どうやら、初期状態は固定なようで、印刷のジョブごとに再設定が必要なのは調整して欲しいところです。

CentOS5.3でrootのメールを受信しようとしてハマる

CentOS No Comments »

自宅サーバやクローラ機では結構いい加減な設定でスクリプトが走っています。
ログをきちんととっているわけでもないので、cronのログ便りなのですが、それすらも何もしていなかったり。

さすがにこのままではイカンとたまりにたまったrootのメールを受信しておこうと、別のマシンから受信を試みました。
メールが溜まっているのはCentOS5.3で、dovecotを入れて受信を試みます。
ユーザ名もパスも正しいのに以下のように表示されます。
「]Internal login failure. Refer to server log more information.」
えっと、dovecotのログの場所はどこだ?
てな感じでさくっとあきらめて別のユーザで試すと問題なく受信が可能でした。
どうもroot権限に関する何かが邪魔しているようなので、メールエイリアスでrootをadminに飛ばして受信することにしましたとさ。

これじゃダメなんだけど。

結局のところRPMForgeって何やねん?

CentOS No Comments »

新しいマシンにCentOS5.3を入れて、いろいろセットアップしていますが、ProFTPDが初期状態のyumではインストールできません。
どのサイトもやり方ばかりというか、コピペ記事ばかり、そもそもそれが何を意味しているかを説明してくれていません。
要は、有志によるパッケージ管理らしいのですが、本当に有益なものであれば標準化されていいものなのに、開発側からは放置されているのか、なんなのか。
裏の事情は英語圏なのでよくわかりませんが、とにかくユーザ側にとっては面倒くさいの一言です。

とりあえず愚痴ってすっきりしたので、ここでも、ProFTPDをインストールするためにyumにちょっかいを出す方法をここにもコピペしておきましょう。

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm


この2行で導入完了です。
このrpmForgeリポジトリ導入でほかにもいろいろインストールできるようになるらしいですが、いつもなにかpostfixはこれを使用しないでもインストールできるようになっていました。
昔は初期状態のyumではインストールできなかったのですが。
あと、ProFTPDは全て小文字で

yum install proftpd


としなければなりません。ProFTPDでは見つかりませんでした。

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン