忍者ブログ

カウンター

プロモーション

カレンダー

02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


No Image

Windows Xp で 84 keyboard の配列が直った! 原因は101 keyboard に見えた事。

PCパーツ

 サーバ用にしようと思っているサブPCでは、
コンパクトなキーボードばかり使っている。

 しかしどうもコンパクトなキーボードは毎回配列が異なるのは良いとして、
案外キーボードのキーに書いてある文字と、実際に押してみた時のキーが違う現象が起きる。

 私が持っている84 キーボード なんていうのは最悪だ!
半角/全角キーだけではIMEが動かないどころか、関係の無い文字が入ってしまう。
また、同様に[ * ]が使いたい場合も、なぜかShift + [ 8 ]キーだったか、全く関係の無いキーを押すと
やっと[ * ]が使える始末。

 顔文字を書こうと思って[ ^ ]を使おうとしても[ = ]になって・・・
これもまた場所が違ってShift + 何処かの数字を押したらやっと[ ^ ]を見つけたが、
キーに書いてある事と違い、そんな事を習慣にして覚えたいと思う訳はなく・・・・w

 とりあえず、これの直し方が変わったのでメモしておこうと思う。
但し色々なキーボードを同時にPCに繋いで使っている場合はそのキーボード同士の
配列が違うなら、違う設定になってしまうのではないかと思う。
予想が出来るので其処まで試してはいないが、注意点である。

 レジストリは、場所など示すのが面倒なので元の101の時と後の106の場合を書いておく。
そのままメモ帳に張り、拡張子を[reg]にしてそれを適当な名前で保存し実行すれば良い、
しかし自己責任である。

~~~元の101~~~~>
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"LayerDriver JPN"="kbd101.dll"
"LayerDriver KOR"="KBD101A.DLL"

<~~~~~~~~~~~

 

~~~修正106~~~~>
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"LayerDriver JPN"="kbd106.dll"
"LayerDriver KOR"="kbd106n.dll"

<~~~~~~~~~~~

 この様に~~~> <~~~ の間をメモ帳に貼り付け保存すれば良い。

 色がになっている所が変更して注目して欲しい所だ。
色がになっている変更箇所は、Windows がDLL を大文字や小文字で区別していないのだろう、
元が大文字の英語になっている、そんなに気にするべき場所ではないとは思う。

 また私が修正106で小文字を使っているのはディレクトリ上のファイル名をそのままコピーして
貼り付けたからだ、つまりファイル名は小文字の英文字を使っていたことになる、
気になるなら大文字にしても良いとおもう。

自分でレジストリを編集するのならば、スタートメニュー> ファイル名を指定して実行>
そこで、「 regedit 」と入力してレジストリエディタを開き
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
を見て編集すれば言い訳だ。

なかなか抜本的な対処が見当たらない場合には良いと思う。
今後84 keyboard を利用する場合の参考になれば良いとおもう。

以上メモでした。

拍手[0回]

PR

No Image

php x MySQL x Windows 7

PHP の調べ物

ぶっちゃけかなり長い間悩んだ事

php の構文からMySQL に接続する方法がOS によって違うのだ!
Windows 7 とWindows Xp でこの違いにハマり長い間悩んだ。

これはWindows の初期の設定の違いなのか、挙動の違いなのかは判らないが、
どうも ドメインの名前解決がWindows 7 の場合は行われていなかったのだ!!!


php のMySQL への接続を確立する構文の基礎例:
$conn = mysql_connect("MySQL のドメイン名","MySQL のユーザー名", "MySQL のユーザーのパスワード");

これがXp だと、ローカルホスト(localhost がドメイン名)である状況(まぁ別にそれ以外にしないと思うけど)にしておくのならば、
$conn = mysql_connect("localhost","MySQL のユーザー名", "MySQL のユーザーのパスワード");

で普通に動く。

しかーし、どうもWindows 7 だと動かない・・・・
これをドメインをIPアドレスに直した形にしないと所期の設定の違いなのか、ドメインの名前解決の挙動の違いなのか判らないが
以下の様にしなければ動かない。

$conn = mysql_connect("127.0.0.1","MySQL のユーザー名", "MySQL のユーザーのパスワード");


どうもこれは、Window Xp の方が特殊なのかもしれない、なぜならばApache でもかなり昔に書いた
qualified domain name(FQDN:完全修飾ドメイン名)のエラー
で説明した通り、IPアドレスに直さないと動かないのであった。


今回は短めに。

拍手[0回]


No Image

勘違いで見つけたcURL(Client URL Library)と思ったが!!!

PHP の調べ物

 何時もの様に、自由に迷ってみました、
そしてその迷ったこの思いをやはり何時もの様に、綴っておこうと思います。
(右往左往して毎度毎度間違えから何かを確実に少しづつですが得ていると思いますw)

 複数のURLを意識せずに同時に開きたいと思って、
PHP のマニュアルで色々探してみた。

 プロセス制御環境でPHPのスクリプトを同時に走らせようかと思ったが、
UNIX では動くがWindows では動かないとか、プラットフォームに依存する
関数が多くみられたので困った。

 具体的には、PCNTL — プロセス制御 を使おうと思ったがその
プラットフォームに依存するので、OSに合わせて自動で切り替わる様な
スクリプトを書くのはどうも安定した結果が出せない気がしていました。

 他にもそのプロセス制御で、セマフォ — セマフォ、共有メモリおよび IPC
とか、下記※の様な条件付きでの共有メモリなども含め複数のURLを同時に
取得する方法を入手しようかと思いましたがなかなか見つかりませんでした。

※「Windows 2000 より前のバージョンの Windows では共有メモリをサポートしていません。
Windows では、PHP が Apache や IIS などの web サーバモジュールとして稼動している場合にのみ」

 そしてまたこれもこのブログを書きながら間違えだったと気が付いたのですが、
cURL という物がありました。

 このcURL とは、例えばログイン処理してからしか見られないサイトなどで
ログインのアドレスやパスワードを元にログイン処理をしてから
ログインしてから見られない情報を得るなど、しっかり手順を追って処理出来るように
した物の様です。

 私が欲しい物では無かった様ですが、ネット上で調べるとセオリーの様な話があるので
一応メモ書きをしている訳です^^;

cURL はWindows 環境で有効にするには、php.ini の中にある
;extension=php_curl.dll を使えば良い様です。
これの「;」を取り除き有効にします。
一応私は確認の為にPHP のext フォルダの中身を見て
中にphp_curl.dll がある事を確認しました。

 また導入前のWindows 環境でphpinfo()関数を用いたとしても
cURL と言う言葉すら出てこないので、一瞬これは対応していなのかな?
と思いましたが、しっかりphp_curl.dll をphp.ini のextension を有効にして
Apache(私の場合)を再起動すればすぐに項目が現れました。
(私のApache 用のVC6コンパイルのPHP5.33の環境にて)

 やはりWindow 環境で開発している分、そういうプロセス関係で
PHP のスクリプトを呼び出すなどは現在のPHP ではプラットフォームに
依存する様な書き方が一番性能が良い様で、プラットフォームを選ばない方法で
これだ!と思える関数やライブラリは無い様でした。

 とりあえずは、Window の環境でのなんらかの方法を見つけ、
その後でWindow環境とLinux 環境でも使えるスクリプトを作れるなら
作ってみようと思った、しかしプラットフォームごとにプロセスの仕方が違うと
レスポンスなどは全く変わってしまうだろうと思う、私が思うに最大のネットアクセス数か
何かがWindow で改良というか改造を加えなければ、10にも満たない記憶がある、
これはDoS攻撃かなにかの踏み台にされない為にそうなったハズだが、
これを外す方法はある、いずれにせよやはりサーバはLinux(UNIX)の方が
有利であることは良くわかった・・・・PHPでさえも!・・・・

 私は欲張った構想と、小さなテストプログラムを幾度も頭の中や紙や
ソース(スクリプト)上で書いてみて色々するタイプだが、考える事の方が
時間を取られる事もあり、頭の整理や実感をする為にこのブログを書いた事は
私らしくも恥ずかしいが否定できないだろうと思った。

                                以上メモでした。

追伸:


以上だと思ったが!!!

まだ桎梏(しつこく この漢字生まれて初めて使う、脱線気味でごめんw)追求していると
どうもこのcURL で並列に実行できそうだ!!!!!!!!!!

  並列処理にもっていくには、cURL マルチハンドルに、通常の cURL ハンドルを追加するらしい。
その関数は、curl_multi_add_handle() という関数みたいだ。

 ぶっちゃけ目から鱗&目から涙だ;v;wwww うれしすぎるw

 これで私のしたい事がいっぱい終わりそうだ。
何度も言うがうれしいw よくやったPHP これからも期待している><bw

拍手[0回]


No Image

zend_extension と zend_extension_ts そしてApache の設定・・でもよくわからない

Apache と PHP の調べ物

過去の私のブログ、xdebug やらZend Debugger を使う前の予備調べ にある
XDebug というデバッガーを動かすためのphp.ini の設定でずっと疑問に思っていた設定がある。

その設定項目は、
zend_extension
zend_extension_ts
の違いであった。

この違いの意味が何処に書いてあるのか今までわからなかった。

しかし公式サイトにしっかり書いてあったのでその事をメモしておく。

公式サイトには、
以下の4つが存在した。

--- --- php.ini に書くらしい、xdebug の設定(※なにやら環境によって違うので鵜呑みは危険!)  --- ---
zend_extension
string

動的読み込み可能な Zend 拡張モジュール (たとえば APD) を PHP の起動時に読み込む際の絶対パス。

zend_extension_debug string

zend_extension の亜種で、デバッグ情報つきでコンパイルされた拡張モジュール用のもの。

zend_extension_debug_ts string

zend_extension の亜種で、デバッグ情報つきかつスレッドセーフでコンパイルされた拡張モジュール用のもの。

zend_extension_ts string

zend_extension の亜種で、スレッドセーフでコンパイルされた拡張モジュール用のもの。
 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

デバッグ情報付きというのは、PHPをデバッグする為のものらしく、
PHPがデバッグ情報付きでコンパイルされているかどうかによって _debug とついた読み込みを
するかしないかを選ばなくては正確に動作しない様だ。

その情報を知るには、phpinfo関数を用い、その項目から、
 

Debug Build no
でデバッグでコンパイルされているかどうか調べ、
no でないならばデバッグなので _debug がついている物を使う。
(※よく考えたらコンパイルしたら変わることは無いと思われる)

そいて、 _ts についてもphpinfo関数を用い、その項目から、
Thread Safety enabled
でスレッドセーフが有効ものかどうか調がついている物を使う。
enabled ならば _ts が付いている物を使う。

Debug Build と Thread Safety によるextension 表(※多分間違っています!)
  Debug Build
 no  noじゃない(Yesとかon?)
Thread Safety
 
disabled  zend_extension  zend_extension_debug
enabled  zend_extension_ts  zend_extension_debug_ts

色々調べてみるとこんな感じになるのかと思った。

追加情報: ---------------------------
が!!!!!
これは間違えかもしれない!!!!
このページの下の方にありますが、phpinfo()のステータスでThread Safety はどうも
Apache との連携の事を指し示し、xdebug との連携の意味では無いのかもしれません。

そしてDebug Build もデバッグした時に決まってしまうのでしょうから、
後から変わることは多分ないでしょう。
--------------------------------


まず、ここまでの参考サイト:
Xdebug によるデバッグ環境の構築 - Web/DB プログラミング徹底解説

xdebug追加をphp.iniに記述するとき、
zend_extension=か zend_extension_ts=なのかを見極めるには。
: PHPの種 ブログ



なにか私のWindows 環境では、php.ini にxdebug の設定をすると説明どおりの設定では動かない件
 そしてココからが問題だ!
私の場合は、phpinfo()で調べると、
Debug Build no
Thread Safety enabled
であったので、その場合は、zend_extension_ts で良いと思ったのだが動かない!
不思議な事にThread Safety が無効(disabled) の
zend_extension でないと動かないのである。
このThread Safety の意味はなんなんだろうか?

追加情報: ---------------------------
 もう一度よく考えてみた。
現時点でWindows版のPHP のphpinfo関数 による
Thread Safety がenabled である表記はApache に対してのスレッドセーフの事を示していて、
xdebug の為の表記ではないと思われる。

 確認の為にあえてNo-Thread-Safe の
5.3 VC6 Non-thread-safe (32 bit) を使ってzend_extension_ts はもちろん、
zend_extension の設定を使ってみましたが、xdebug のがphpinfo関数でステータス一覧は
出てこなかったので、なぜか動かない状況でした。

もし何か良い情報があれば、気軽にコメントもらえると助かります。

私の動いてる環境は「zend_extension = の書式」 + 5.3 VC6 (32 bit) (Tread Safe) のDLL で
動作確認が取れています。

xdebug公式 ダウンロード:download/SVN
--------------------------------

一応スレッドセーフの関連はApache の動作をスレッドを用いる設定でも出てきた記憶があるので
こちらもどう動いているかなどの
参考URL
@IT:Apache 2.0の必須設定と基本セキュリティ対策(1/3)
 

             xdebug

xdebug support enabled
Version 2.1.0

Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.145 $
                                ・
                                ・
                          (各設定の値も続く)

ステータスでは上記のこんな感じの項目が現れたらステップ実行や、変数の値を知るなど
デバッグ機能が使える様になる。


尚、この文章は後ほど修正しているので、順番的におかしく読みにくい部分があるかもしれませんがご了承下さい^^;

拍手[0回]


No Image

php 5.3.2 php 5.3.3 へ やっぱり個人メモw

PHP の調べ物

 またも本格的に開発を進める前に、
Windows 7 のPC を手に入れてしまったので、
そちらのPC へ開発環境を入れようとした時にPHP のバージョンが
上がっていたのでついでにバージョンアップしようと思った。

私の行うWindows 環境のPHP の以降は極めて簡単で、
httpd はApache を用い、そこそこのマルチスレッドのPCなので
PHP のダウンロードはVC6 x86 Thread Safe のダウンロードをして
php.ini の内容を比較し、エディターで書き換えた物を用意し、
元のディレクトリーにあるPHP を消して、新しい物と置き換え、
Apache サービスを再開してみるだけである。

 今回設定としてバージョンアップとして項目が関係しているのは
session.entropy_file の様です。

 この項目は、session.entropy_file で指定したリソースに関しての
設定の様で、バイト数を指定し、デフォルトは、0 (無効)だそうです。
 特にPHP 5.3.3 でこのsession.entropy_file で変わった所は、
ランダムでファイルパスと言うかIDを作ることの様です、この表現は間違っているかも
しれませんので、具体的には公式のページを見てください。

 元々このsession xxx の設定の意味がよくわからなかったのですが
よく調べてみると、phpやWebでのセッションの意味が私が良くわかっていなかったのが
良くわかりました。

 この場合のPHPのセッションとは、個別のコンピュータごとに
違う結果を残す為の仕組みの様です。

 その場合のセッションの情報を残す為の場所を指定するのが、
session.entropy_file であり、その情報の読み取るバイト数を
session.entropy_length で決める様です。

関連の関数としては、
session_start 関数
session_register 関数
などがある様です。

 まだセッションの設定は色々ある様ですが、
私はまだプログラミング出来ない、していない段階なので、
詳しくはgoogle検索をした方が良いでしょう。(私がwですww)

さて、後は元のphp 5.3.2 のphp.ini の内容を
5.3.3 の新しく使うphp.ini の設定に変更点や修正を書き込むだけです。

本当に個人的なメモになります、全く他人には当てにならないメモなので悪しからず。

拍手[0回]


[PR]