2011年03月10日

PHP + ImageMagick インストール記録

PHPの環境にImageMagickを入れてテストをしようと思ったのですが、インストールに非常に苦労したので事前に手順を公開しておきます。

導入環境
* OS Windows XP Media Center Edition Ver.2002 SP3
* Apache/2.2.14 (Win32)
です。余談ですがMedia Center Editionなのに特に理由はありません(笑)。
なおApacheのインストールに関しては、さまざまなサイトがあるのでそちらを参照してください。
また、次に紹介するPHPのインストールの参考にしているサイトにもapacheインストール方法の記述がありますので参考にどうぞ。



まず、PHPのインストールを行います。
以下のサイトを参考に php-5.3.5-Win32-VC6-x86.zip をインストールします。
http://www.standpower.com/php_environment2.html

さらに、別件の為にphp.iniの設定に追加を行いました。

extensionの有効化

;extension=php_gd2.dll

extension=php_gd2.dll

;extension=php_mbstring.dll

extension=php_mbstring.dll

;extension=php_exif.dll ; Must be after mbstring as it depends on it

extension=php_exif.dll ; Must be after mbstring as it depends on it

タイムゾーンの設定

;date.timezone =

date.timezone = "Asia/Tokyo"


そしてapacheの再起動。
この段階で http://localhost/info.php にアクセスしてきちんと動作することを確認しておいてください。


目標であるImageMagickインストールに入ります。
以下のサイトを参考にしますが、いろいろ変更があります。
http://kyle-in-jp.blogspot.com/2008/04/windowsimagemagickphp.html
【】付きで書いてある番号は上記サイトの番号に対応させてあります。

【1.】のImageMagickのインストールです。
まず、 ImageMagick-6.6.8-1-Q16-windows-dll.exe を以下から取得します。
http://www.imagemagick.org/script/binary-releases.php?ImageMagick=qa8kehgo3k4hu158g1p0u9sc51#windows
インストーラの設定はインストールディレクトリ設定以外は全てデフォルトです。
以下のように設定しました。

C:\Program Files\ImageMagick-6.6.8-Q16

C:\ImageMagick-6.6.8-Q16


【2.】Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)のインストールですが、下の方に

2009/05/04追記
「Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ」は「Microsoft Visual C++ 2008 Redistributable」でも動作する。
動作環境
Microsoft Windows 2003 Server SP2, Apache2.2.11, PHP5.2.9-2, ImageMagick6.5.2-0

とあり、既に2008がインストールされていたので行いませんでした。
ちなみにここにあります。
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=ja
さらに2010バージョンもありますが、試していません。
http://www.microsoft.com/downloads/details.aspx?familyid=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84&displaylang=ja

【3.】php_imagickのインストールですが、一番ハマった所です。
Mikko's blog には既にVC9版しかなく、VC6版がありません。
上記でPHPはVC6版を入れましたので、VC6版のDLLを得る必要があります。
このままPHP VC6 + DLL VC9で試してみましたが起動時にチェッカでエラーになりました。
もうひとつのパターンとしてPHPをVC9版にする、という手があり、試してみた所info.phpは正常動作しました。
ただし、VC6とVC9の差をよくわかってない自分が悪いのですが、IISにはVC9版、apacheにはVC6版を使うのが一般らしく不要なトラブルを防ぐためにもPHP VC6版を利用したい所でした。
ちなみに、VC9版ですがinfo.phpは動作したのですがテストコードを動かすとapacheごと落ちるという現象が出て、原因追及する前にVC9版の利用を諦めた、というのが実際の所です。

長々と書きましたが、方法としては記述のとおりなのですが使うDLLを以下のものにしました。
http://marijuana.xsrv.jp/modules/wordpress/?p=443
ページの下の方に『php_imagickはこちら』というリンクがあります。こちらをたどった先にあるphp_imagicをダウンロードしてください。
すると『php_imagic301-1.7z』というファイルが得られると思います。これは7z形式という、ちょっと珍しい圧縮形式なのでなんとかして伸長してください(笑)。私はlhazで伸長しました。
中には3つのDLLがありますので、【3.】のphp_imagick_dyn-Q16.dllの代わりに『php_imagick53-VC6.dll』を使います。php_imagick53-VC6.dllをC:\php\extディレクトリにコピーします。

【4.】php.iniに以下の設定を追加ですが、この手順のままだと以下のみを追加すればいいです。ちなみに追加場所はどこでもいいです。

extension=php_imagick53-VC6.dll


【5.】OSのシステム環境変数の設定です。設定方法はどこでも参考にしてください。
『MAGICK_HOME』に『C:\ImageMagick-6.6.8-Q16』を設定します。
なおユーザー環境変数とシステム環境変数の違いがわからないのであれば、システム環境変数にセットしておいた方が無難です。セキュリティポリシー等でセットできなければユーザー環境変数でも問題ないと思います。

【6.】で、Windowsの再起動です。どうして必要なのかわかりませんが、まぁやっておきましょう。

これで終了になります。

【7.】のテストコードをコピーし、2つの画像ファイルも同じディレクトリに入れると…動作すれば成功ですが、ファイルのパスをフルパスで指定しないと動作しませんでした。原因はわかりません。でもそれで動くので
お疲れさまでした。
少なくとも、私は疲れましたwww
posted by ちや at 12:49| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

2008年12月06日

coregaダメだな…

Corega Draft 11n対応 無線LANルーター + 無線LANカードセット CG-WLBARGNH-PCG-WLBARGNH-Pというのを買いました。といっても、かなり前ですが。目的は、私のうちのLANに店舗のPCを繋げ、店舗用のADSLを解約するためです。正直どれでもよかったので、最近の情勢にも疎いしそれ程悪い印象の無いcoregaが安かったからです。考えてみれば、HUBぐらいしか買ったこと無かったので悪い印象があるわけ無いんですよね…
なぜ無線LANなのかというと、店舗とウチのLANケーブルの端とでは、部屋が2つ程はさんでいる状態だからです。もっと言っちゃうと、厳密には別棟にあるからです。天井裏を這いずり回ってケーブルを引き回すことも考えたのですが、スピードはそれ程必要ないので繋がればいいかな?と思ったのです。

で、無線LANのそばでノートPCでテストし、接続を確認。さすがにね…。で、設置予定地へそのまま移動すると接続したまま。うん、大丈夫。楽勝じゃないですか。終わり。
で終わればよかったのですが、そうはいきませんでした。

まず、今まで普通にネットワーク使ってますので?、ルータは既に持っております。つまりこいつのルータ機能は止めていいわけです。じゃぁ別の製品を買えばよかったというのは確かですが、なーんんか嫌な予感がしたのと、万が一の時には使い回しが出来るかな?と思いまして。でルータ機能を止めますと…既存のDHCPサーバ(もう一台のルータですが)からIPアドレスが取得できません。いや、厳密に言うと『取得にとても時間がかかる』ようです。面倒なので突き詰めてませんが。無意味に多段ルータにするしかないようです。まぁ、れはDHCPサーバであるルータ(Aterm BR500V)がタコっぽいのも原因くさいのですが…。まぁサブネットの関係でクライアントが必ずこの無線LAN ルータを通らなきゃいけなくなった、という事による速度低下がありますが、それほど気にしないのでまぁ影響は小ですね。

次は影響『中』なのですが、なぜか設定画面に入れません。再起動した途端は入れます。設定して安心して?しばらく放置、これを設定しようと入ろうとすると…
認証エラー
以下の項目に注意して入力してください。
# すでにログインされています
はて?なんの事でしょう???再起動すればちゃんとログイン画面が出るので、クライアントのせいではないと思うんですが…不思議ですね…。まぁ、めったに設定しないから影響は少ないといえば少ないのですが。
ついでに、coregaはcoregaユーザ向けにコレデ・ネットなんていうDynamicDNSサービスを立ち上げてますが…証明書、期限切れてますが…はぁ…

で一番困るのが、ブチブチ切れること。電波が弱い所だとブチブチ切れるのはまだわかりますが、それほど弱くない所でも切れます。実際に必要な店舗なんかは繋がったり切れたりが激しい。こりゃ使い物にならないかも…無線LANルータを買い換えるor無理やり有線を引いてみるor中継器を買うor設定を変えると何とかなるかもor etc.。さて、どうするのがよいのでしょうか…。ちょっと明日いろいろやってみるつもりです。

とりあえず私の中ではcoregaは鬼門と分類されました。単にハズレの可能性もありますが、追求するほど意欲がありませんf(^^;

【2008/12/7追記】
ダブルチャンネル設定を外したらなんとか『非常に弱い←→弱い』あたりで繋がってるようです。日常運用でどうなるか見てみないとわかりませんね。休日だからノイズとかも少ないでしょうし。とりあえず、接続規格が混在すると弱るようです。うーむ。当然という気もしますし、それもどうなの?って気もします…。実運用まで時間があるし、ちょっと様子見です。
posted by ちや at 22:13| Comment(1) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

2007年06月20日

薬品パッケージ(Re:ちっちゃいシステム)

! 定義
薬品を通常納入することができる単位毎のもの。通常は箱単位で納入されるが、分割販売が行われている場所もありこの場合は箱に入っていない。
! 発生個所
* 簡易オンライン発注プログラム
* (卸業者以外の)納品実績(手入力)
! 管理項目
* 薬品パッケージ名
* 入り数(入っている量)
* JANコード(いわゆるバーコード)
* メーカ名
* 薬価コード
* 管理単位(散剤や液剤などの場合、1包や1本などで管理したい物とgやmlで管理したいものがあり、ルール化はされていない。薬価コードがある場合は、実際はそれをキーとして取得できる薬品の単位である。)
! 注意
* 昨今、メーカ合併や薬品名の変更、JANコードの変更が多く発生しているので、それらをきちんと紐付ける必要がある。
* 薬価コードが無いもの(医療材料など)も存在する。
* 分割販売で納入したものはJANコードは存在しない。よって、JANコードはキーになりえない。
posted by ちや at 15:52| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

薬価コード(Re:ちっちゃいシステム)

! 定義
個人のページであるが、以下を参照
* http://square.umin.ac.jp/~jin/text/code.html
""【薬価基準収載医薬品コード】(別名;厚生省コード、薬価コード)
""
"" 薬価基準収載医薬品に付けられる12桁(アルファベット1字を含む)の数字です。
"" 医薬品の成分、剤形、銘柄等を表しています。

'''本来の'''データの入手先
* http://202.214.127.149/
!! 『本来の』の意味
定義を見ると、医薬品に対して一意に決められているように思えるが、[[医薬品マスター|http://202.214.127.149/guest/plsql/DlYP]]の薬価基準コード(項目32番目)をソートするだけでわかるが、まったく一意ではない。しかし、レセプトコンピュータに登録されている薬価コードは一意となっており『何が正しいマスタなのか』まったくわからない。
当システムでは、正しい事よりも動く事を優先し、レセプトコンピュータに登録されている薬価コードを正として構築する。

! 薬価コードが割り振られている範囲
当システムにおいて、扱う薬品は
* 医薬品
* 医薬部外品
* 化粧品
* 医療用具
とあり、『医薬品』のみに薬価コードは存在し、それ以外には存在しない。よって、薬品のキーとして薬価コードは利用できない。
posted by ちや at 15:51| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

薬品コード(Re:ちっちゃいシステム)

! 定義
レセプトコンピュータにおいて、ユーザが自由に定義できる薬品のユニークキー
! 命名規則
!! 漢方薬
漢方薬には番号(最大3ケタ)の定義がされており、ツムラ社製の漢方薬は『ツ』+『定義された番号』とする。
ツムラ社以外の漢方薬の場合は漢方薬以外に順ずる(予定)
!! 漢方薬以外
『カタカナ3文字』+『数字2ケタ』
カタカナ3文字の決め方は以下の通り
* 薬品名の濁音、半濁音、長音を除く
* 小文字は大文字に直す
* 数字は省く
* 例1.『マーズレンS → マスレ』
* 例2.『ディオバン20mg → テイオ』
数字2ケタは一意になる範囲で任意。
! 注意
* 上記命名規則が出来上がる前に定義されているものも多数存在するが、『薬品.候補表示』がOFF(0)になっているはずである。
* レセプトコンピュータで管理されていない薬品パッケージも存在し、当然それには薬価コードは存在しない
posted by ちや at 15:48| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

薬品(Re:ちっちゃいシステム)

! 定義
このシステムで管理する物の最小単位。ただし、あまりにも一般名なので変更希望。
! 発生個所
* レセプトコンピュータ
* 薬品パッケージが発生するとそれに紐付いて発生
! 管理項目
* 薬品コード
* 薬価コード
* ==名称・規格==
* 局内用名称
* 単位
* 薬価
* 経過措置期限
* 候補表示
posted by ちや at 15:47| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

2007年06月19日

ちっちゃいシステム開発してみる?

自作のプログラムに追加要件が発生したので、見直してみる。
で、このページを見ている奇特な人の勉強用?に過程を書いていってみようかな、と。もし提案や質問、『オレ作る!』とかあったらコメントしてね。

大前提として、小さい個人薬局用のシステム(と言うほどのものか?)。他に欲しがる奇特な人もいるかもしれないので、導入や操作にあまりにもスキルが必要なことはしない。

! 要件
レセプトコンピュータから出力される薬品の使用実績と発注ソフトから出力される発注実績などを元に、納入価や不良在庫、使用実績を管理したい
!! データの発生個所
* レセプトコンピュータ(http://www.mdis.co.jp/melphin/function.html)
** 薬品マスタ
** 1週毎の薬品使用実績
* 簡易オンライン発注プログラム「Fine PC Jr II」(http://www.alfresa.co.jp/html/support.htm)
** 薬品パッケージマスタ
** 1週毎の発注実績
* インターネット経由による発注(発注伝票なし)
* (卸業者発行の)納品伝票(紙)
* (卸業者以外の)納品実績(手入力)
!! 出力(管理項目)
* m週毎の薬品の使用実績
* 薬品パッケージの卸業者毎の納入価比較
* 薬品パッケージ納入後、n週間使用実績が無いもののリスト
!! インフラ制限
* 利用PCスペックはP3-800(だったかな?)、512M、Win2Ksp4
* なるべくスタンドアロンで。どうしてもサーバで処理したいならLinux機を(VPN越しに)用意する
* 言語はインストーラが用意されているものを。実質的にActiveScriptRubyかな。
posted by ちや at 12:34| Comment(0) | TrackBack(3) | PC | このブログの読者になる | 更新情報をチェックする

2007年04月19日

とりあえず成功

windows firewallとか設定してみたり、ウィルスバスターの設定してみたり、lmhostsを書いてみたり、といろいろ忘れていることを調べつつ一歩ずつ進んでいった。
で、pingが通るようになったり、名前解決がされるようになったりと成果も一歩ずつでてきた。で、原因の概略は
・ICMPをウィルスバスターは防いでいた
・ルータの片側しかポートを開いていなかった
・XPの共有はデフォルトで同一サブネット内(だったっけかな?)しか許可していなかった
だったね。うーむ。面倒。

という訳で、社内ネットワーク設定大会は終了。

どうでもいいが、デュアルモニタにした家のPCは、ある時突然固まる。時計の秒針も止まってるしタスクモニタも止まってる。うーむ。今度はこっちだ。なんか元々ビデオ周りが怪しいんだよなぁ。XP再インストールしようかなぁ…
posted by ちや at 15:16| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする

2007年04月14日

ルータの設定なんて忘れたぞぉ!

職場のネットワークを構築しようと思った。

Internet

FLASHWAVE 2040 M1(A)

HUB ― 作業用PC (B)

RTA55i (C) ― 展示用PC (D)(予定)

業務用PC (E)

古いルータなのはご愛嬌。というか廃物利用だ。
なんでこんなかまし方してるかというと、(C)には万が一にも漏れてはいけないデータが山ほどある。だから(A)と(B)(C)はサブネットを分けるのだ。まぁ(B)の位置はココでいいのか?という問題はあるが対外的には画面しかないから大丈夫だろう。

で、とりあえずつないでみた。ルーティングも書いてみた。

うまくない…

(E) → (B)は通る。でもNetBEUI(だっけ?)が通ってないらしく(B)の名前が解決できない。\\(IPアドレス)\pubみたいなのは行けるけど\\(マシン名)\pubは駄目。どっかポートがふさがってる気もするが、わからん。大体において、どこのポートだ?どのポートだ?

(B) → (E)は通らない。IPアドレス指定でもダメだ。ブラウジングもダメ。(B) → (C)の(E)側にはアクセスできる。だから(E)にもアクセスできていいはずなんだけど…なんでだ?

やりたいコトは
・(B)は(A)経由でインターネットにアクセスできる
・(D)(E)はインターネットにアクセスできない。
・(B)のディレクトリを(D)(E)に公開
・(E)のプリンタを(B)に公開
・(D)は(B)からVNC接続できる
なんだけど…。Windowsの名前解決はどうでもいい(hostsに書いてもいい)から、どうにかならんもんか。難しい事をしようとしている訳でもないはずだが、どうにもこうにも手法そのものを忘れたよ…
posted by ちや at 13:47| Comment(0) | TrackBack(1) | PC | このブログの読者になる | 更新情報をチェックする

2007年04月09日

etch公式リリース

* http://www.debian.org/News/2007/20070408
リハビリ?の為にtestingを入れたのだが、stableになってしまった。
このままtestingを推し進める根性までは無いので、sources.listを直しておかないと…
posted by ちや at 19:31| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。