2011年12月18日イラストとか, プログラムのことWindows, イラスト, 自宅サーバー

誰か原因知ってたら教えて戴きたい(´・ω:;.:…

メインマシンの次は自宅サーバーの不具合。
と言いつつ、このblog自体がその自宅サーバーで公開しているものなんだから
不具合って言うのも変な話だが。

確かに使えているのだが、微妙に困った不具合。
メインマシンも微妙に困った不具合だったのが、なんだかなぁって思うw

サーバー自体はド安定なんですが、内部的におかしな事になっており
具体的に、アクセスカウンターの日別カウンターが上手く動作しなくなってます。
普通なら0時になった時点で次の日の日別カウンターになるのでリセットされるのですが
現在のサーバーになってから何時間後かにリセットされててズレにズレています。
しかも、別に埋め込んでいるアクセス解析は正常に動作しており
こちらは日別アクセスもきっちり0時を境に集計が取れています。

違いと言えば、アクセス解析はcgi、Perl版で
アクセスカウンターはphp版って事でしょうか。
そんなわけで、テストとしてphp、perlのタイマー取得がおかしいのではないかと思って
別々にファイルを作成してタイマー関数を使い現在時刻を表示されましたが
どちらも正常に取得できています。。。
じゃあ設定がおかしいのかと思いきや、そもそも前のサーバーから
設定ファイルももろもろ引用して貼り付けただけなので、URI以外は全く変わっていませんし
何より時間をズラすなんていう設定はありません(´・ω・`)

じゃあphpの設定がおかしいんだと思いきや、このwordpressや、お絵描き掲示板はphpで処理していますが
これらのタイムスタンプは全て正常です。
phpのアクセスカウンターだけ内部的に時刻がおかしいのです。
もちろん、サーバーの時刻もntpサーバーから常時合わせておりズレは全くなし。

日別がおかしいだけで、総合アクセスは正常なので本当に微妙な不具合だったりしますが。。。

もう一つの不具合は、Windowsの標準タスクの設定。
現在自宅サーバーは、常時稼動しているプログラムにwebサーバー以外に、お絵描きチャットも稼動しています。
レンタルではなく、むかーしからあるしぃちゃんのjavaお絵描きチャットプログラムで
夜中3時5分に稼動して、夜中3時に終了します。
一日の中で5分だけアクセス不能という仕様にしましたが
何故かWindowsタスクの設定でタスクの継続時間を設定しても、その継続時間を過ぎても終了しません。

以前のサーバーでは、キッチリ23時55分稼動し、夜中3時で終了して5分間インターバルの後に3時5分に再稼動するという
ローテーションを守ってくれたのですが、新サーバーではこの継続時間を過ぎても終了せず
3時5分には終了していないのに次のタスクが実行され、二重、三重…と一日過ぎる度にタスクが重なっています。
実質重なっていても1つしか実行されないので、利用者側には問題はありませんが
サーバー側にはjava.exeが何重にも起動されてしまいメモリを圧迫しています。
試しに起動時間を1分にしてもダメです。やっぱり終了しません。

同じXPsp3で何故同じタスクを立ち上げているのに、継続時間の仕様が変わると思えないし
そもそも継続時間と言ってるのに、それを過ぎても終わらないってバグじゃねぇか。

…と思っていたのですが、タスクの問題はWindowsの自動ログオンで解決しました。
っていうか自動ログオンが有効になってないと動かないってのもおかしな話な気もしますが…。
ファイル名を指定して実行にて『control userpasswords2』と入力してから
『ユーザーがこのコンピュータを使うには、ユーザー名とパスワードの入力が必要』のチェックを外してOKすれば
次回から起動時のパスワードが不要になりますが、物理的なセキュリティリスクは高まります。
そもそもこのご時勢にパスワードを設定していない環境には関係ありませんが

具体的には部屋に踏み込まれたらサーバーは電源オンだけでログオン出来てしまいます。
外部からはパスワード設定されているので、自動ログオンをオフにしてもしなくても変わりませんが。

さて、エントリーを書いている間に一つは解決してしまいましたが
アクセスカウンターの件は全く原因が分かりません。
しかも未だに昨日の日別カウンターを継続しています。もう半日過ぎてますよ。。。

タスクの件はぶっちゃけどうでも良かったので(ぉ あまり調べていませんでしたが
アクセスカウンターの件は新サーバーに移行してからずっと調べていたので
未だに解決できないのが気になって仕方がない(´・ω・`)

メンテナンスの時間ですっ!! ドゴォ

2011年11月21日プログラムのこと, ラグナロクオンラインRO, VMWare, Windows

昨日、
最新のVMwareを使うとROが起動しない
と書いたが、すまん、ありゃ嘘だ。
ro_vmware110602.jpg
正確には「VMware Tools」が最新だとダメである。
VMware Toolsは、仮想マシンにインストールしたOSの
デバイスドライバ等をインストールする為のドライバやらが入ったソフトウェア。
これを入れない事には仮想マシン入れても画面がVGA固定になったり
LANが使えなかったりと色々不便なのである。
そもそも、これがないと今回のROを起動する為に必要なDirect3Dすら使えない。
で、これをインストールする時にVMwarePlayer側のメニューから
「VMware Toolsをインストール」と選ぶと
勝手にネットからVMware Toolsの最新版8.*を拾ってきてしまうのである。
ROは何故かこの最新版だとGFCエラーが出てしまい、画面が出ないのである。
私は昨日、これをVMwarePlayerが最新だとダメと嘘こいた。
これを旧バージョンにするには、最新を適応してはダメなので
今現在公開されてるバージョンのVMwarePlayerのメニューからのインストールは使えないので
Toolsの旧バージョンをVMwareのサイトから拾ってくる必要があります。
まず、VMwareのサイトに行き、VMwareServer2.0.1を拾ってきます。
しかも拾ってくるのはWindows版ではなく、Linux版です。
なんでここでサーバーな上にLinux版の古いやつなんだという感じですが
なんか知らんけど、旧バージョンのToolsが
Linux版VMwareServerの中にisoファイルとして入ってるらしい。
ダウンロードしたら、そのrpmファイルを展開して、中にある
windows.iso」ってファイルを抽出。
どこにあるかは探してくださいというか、展開したフォルダの中を検索すればすぐでしょう。
その前にrpmファイルがlinux用バイナリで、それがまず展開できないと思うので
XacRettっていうツールをダウンロードするなりして展開。
無事にwindows.isoが抽出できたら
仮想マシン内に置いてDaemon toolsでマウントするなり
VMwarePlayerのisoファイルを直接指定とかで
とりあえず仮想マシン内でwindows.isoを読めるように。
勝手に起動して、既に仮想マシン環境が整ってる場合は「最新版が入ってるからいらねーよ」って言われるから
まずは今入ってるTools8.*をアンインストールして再起動。
再起動後にwindows.iso内のSETUPを立ち上げてTools7.*をインストール。
環境構築すぐなら、iso内のSETUP実行だけでおk。
更に再起動すると無事にToolsの旧バージョンをインストール完了。
機能的には何が変わったのかわからんけど、とりあえずこれでROも無事起動成功。
VMwarePlayer側からはお節介にToolsが最新版ではないから
ダウンロードして最新にしろとか言って来るけど無視。
因みに起動はしたけど、ウチは全部期限切れなのでログインは出来ず。
しかも期限切れ~のメッセージが出てからクライアント強制終了したらBSoDが出た。
普通に「×」とかで終了したら出なかったけど、なんかよくわからん。
これでDirect3Dが使えるOSでの仮想マシン上のRO起動は問題無しか。
PC-98上ではこんなVMware Toolsとかいらないから
起動さえすればエラーもなくクライアント起動すると思うのだけど
現状はやっぱりゲーム開始→しばらく頑張るけど起動を諦める のままだから
進展があるまでとりあえず様子見。

2011年11月21日プログラムのことGoogle, 検索

半月くらい前に突然Googleが仕様変更をして
入力中の検索ワードの予測候補が出るようになりました。
これは以前にもあった機能ですが
今までは予測ワードを出すか、出さないかという設定で
不要な人には切る事も可能でしたが
今回の仕様変更は、予測ワードは必ず出るが
入力中の検索ワードをリアルタイムで検索結果をページ内に出すか、
検索ボタンを押してから検索結果を出すかという設定になっており
必ず予測ワードを出すようになってしまいました。
内容としては、入力している検索ワードから
検索されてる頻度が高い検索ワード順に列挙しているので
人によっては入力する手間が省けるので便利かもしれませんが
私は以前から予測ワードを切っていた人なので
これが出てくると鬱陶しくて仕方が無いのです。
ですが、上記にもあるように設定変更では既に切れなくなっており
予測候補より役に立つ自分で入力した履歴「オートコンプリート」が機能しなくなってて
過去に入力したワードから過去に見たページを出せなくなって不便だと思っていました。
でもこの仕様変更は全世界で仕様化するらしく、今後も変わることが無さそうなので
どうにかオートコンプリート検索を復活できないかと思っていたら
ふと、サイト内に設置するGoogle検索の検索ボックスならどうだろうと思い
検索ボックス設置のページに行ってみた。
Google:リンク、検索機能を追加
こちらは何にも変更していないみたいで、以前のGoogleと同じように使えます。
というか、オートコンプリートがしっかり機能しています。
そんなわけで、自分は今度からこっちを使う事に。
ウチに設置したGoogle検索ページ
シンプルにも程がある。っていうか昔のGoogleっぽい。
今は機能がついてきてだんだんごちゃごちゃしてきた。
Chromeの宣伝とか。
因みにさっき発見したけど、検索結果ページの
上の検索ボックスは相変わらずオートコンプリート効かないけど
ページ下にある検索ボックスはオートコンプリートが効くのが分かった。
ちょいと面倒だけど、使えるだけマシかな。

2016年9月19日プログラムのことCGI, PCHViewer Assist CGI, perl

すぐ気付くだろうと思ってじっと眺めてたらやっぱり気付いた。
うん、自分が相当あふぉな子だったのに気付くのに時間がかからなかった。
ファイルオープン中にファイル内容を変更しようとしても変更できないのは当然である。
つまり、プログラム内でファイルオープンして
現在はそのファイルをプログラムが管理してる最中なのに
外部のコマンドによってファイル内容を変更しようとしても
アクセス権が無いのは当然である。
なのにも関わらず、それに気付かずずっとWindows側のアクセス権を弄って見たりと
全く意味の無いことばかりやっていたのである。
ファイルクローズしてからならアクセス権なんて関係なかった。
これでリネームも動くようになったけれど
リネームするとタイムスタンプがリネームされた時間に変わってしまうので
ファイル名自体は2009がついてるのに、2009年のアニメログも2011年最新になってしまう。
というわけで、そこはタイムスタンプをリネーム前のもので上書きする事で解決。
具体的な追加場所は
以前の改造記事 → PCHViewer Assist CGI

#ディレクトリ内ファイルを1つずつ開く
の手前に
$year += 1900;
($atime, $mtime) = (stat(“$pch_file_directory$file_name”))[8, 9];

を追加。
そのSPCH上書き処理下部にある青文字最後の
close(RPFILE); (これは黒いが)
の直下に

rename (“$pch_file_directory$file_name”,”$pch_file_directory$year$file_name”);
utime($atime, $mtime, “$pch_file_directory$year$file_name”);
$file_name = “$year$file_name”;

を追加する。
そしてその下辺りにある
#表示時間修正処理
$year += 1900;

の$yearの行をコメントアウト(先頭に半角#つけるだけ)。
やっつけ仕事だけど、ここコメントアウトしないと一覧に列挙される日付リストがえらい事になる。
この処理で、以前まで1ファイルずつバイナリ調べていたので
普通の一覧列挙より重かったというのに、コピー、削除処理が加わって更に重くなったけど
バイナリ処理を調べる手前に、ファイル名に年数がついている場合は
既にバイナリ追加処理が終わっているので、スルーするように改造すれば
表示が早くなると思われる。
面倒くさいのでその辺は自分で調べてください
因みに今回、この改造した事で上書きされていたファイルが100近く見付かった。
上書きされる前の全ファイルのバックアップをとっておいて正解だった…。
※1:47分追記
スルーする改造はたった2行追加でおkだったので書いておく。
さっきの
#ディレクトリ内ファイルを1つずつ開く
の上に追加した
$year += 1900;
の下に
if($file_name !~ /$year/) {
を追加。
改造部分の一番下
$file_name = “$year$file_name”;
の下に
}
を追加。
ごちゃごちゃしてきたので追記に前回改造部分と今回の追加をまとめて載せる。