Windows8でDRIVER IRQL NOT LESS OR EQUALのブルースクリーン発生

Windows8のPCが最近ブルースクリーンで落ちるという連絡がありました。

 

どうやらブラウザを開いていると1時間くらいで落ちるという現象のようです。

ブラウザを立ち上げていなければブルースクリーンは表示されないということでした。

 

前に書いた「ブルースクリーンの原因を解析してくれるソフト」でBlueScreenViewをダウンロードしてきて原因を調査したところ、メッセージは「DRIVER IRQL NOT LESS OR EQUAL」で原因は 「tmeevw.sys」らしい。

調査中に目の前でも現象が発生しました。

 

tmeevw.sysはトレンドマイクロのドライバ….またおまえか!!

 

google先生で調べると、どうも同じ目に遭っている方が数人いる模様。

 

一旦ウイルスバスターをアンインストールして、再起動後に再インストールしました。

その後はエラーが発生していないようです。

 

やっぱりウイルスバスターは….

毎年の更新もいらないし、もうmseでもいいじゃないかという気がしてきています。

 

 



親子遠足

幼稚園の親子遠足に行ってきました。

娘の方はこの天候でちょっと具合がわるく、息子だけ参加です。

 

遠足というと、母親が一緒に行くものだと普通は思うのですが、意外にも私以外に父親が3人ほどいらっしゃいました。

これもイクメンの影響か… ってか私もですけど。

 

行き先は自然科学博物館なので、どちらかというと私が楽しみにしてたんですが。

息子はここに来るのは2回目です。

 

自由行動と同時に3階へ移動してまだ誰もいないうちに全力でお遊び。

息子はリニアモーターカーの模型が気に入って、ボタンを押してはあっちに走り、またあっちからこっちに走って楽しんでいました。

残念ながら、屋外にあるソーラーカーはお休み。

彼はロボットや機械にはあまり興味を示さず、動物や化石について質問していました。

 

息子は楽しかったと言っていますが…私が連れ回して、どちらかというと私の方が楽しんでいたのでちょっと反省。

今度はプラネタリウムを家族で見に行こうと思います。

 



さくらVPSのCentOS6にRapidSSLのワイルドカードを導入

ちょっとしたWebのサービスを作成していて、SSLを導入しないとなぁと思っていたのですが、本番稼働に向けてようやく導入することにしました。

 

サブドメインで別サイトも構築中で、そちらでもSSLを使用したいしVPSを使っていてIPアドレスが追加できないのでワイルドカードのSSLを導入しました。

RapidSSLは1万円くらいから選べますが、それ以外のワイルドカードは高すぎて予算的に無理。

というわけでRaipdSSLのワイルドカードを導入した時の記録です。

いや、放置してたら後で絶対忘れちゃうから。

 

参考にしたサイトはいくつかあるのですが、現在見れるサイトを2つ貼っておきます。

http://fuminori14.hatenablog.com/entry/20120930/1348985830

http://gomojp.blog77.fc2.com/blog-entry-148.html

もう一つ非常に参考になったサイトがあったんですが、なぜか見れなくなっていて残念。

 

サーバーはCentOS6、Apache2.2です。

すでにバーチャルホストが動いていて、そこにSSLを追加するという状況です。

手順はSSL証明書を購入した会社によるので同じかどうかは分かりませんが、私の場合はこうでした。

  1. mod_sslを導入
  2. 秘密鍵を作る
  3. CSRを作成  <- Common Nameを *.ドメイン名にする
  4. SSLを申し込みして、作成したCSRを送る
  5. 承認メールが送られてくるので、メールに記載されているURLを開いて、承認ボタンを押す
  6. メールでサーバー証明書と中間証明書が送られてくるので、コピペでサーバーにファイルをそれぞれ作成
  7. ApacheにSSLのバーチャルホストの設定追加
  8. iptableの設定変更
  9. Apache再起動

1. mod_sslの導入はyumを使って一発で終了

 yum install mod_ssl 

 

2. 秘密鍵の作成です

/etc/pki/tls/certs/にあるMakefileを使っても良いのですが、中を見れば同じコマンドって事で


# cd /etc/pki/tls/certs
# openssl genrsa -aes256 2048 > server.key
Generating RSA private key, 2048 bit long modulus
.............................................+++
......+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:  <- ここにパスフレーズを入力

今回はaes256にしましたが、Makefileはaes128になっています。
ここは趣味の問題かと。

 

3. 次に、CSRを作成

ポイントは、ワイルドカードの場合*.ドメイン名にするということです。

出力ファイル名はserver.csrにしました。

# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []: <- 県を入力
Locality Name (eg, city) [Default City]: <- 市を入力
Organization Name (eg, company) [Default Company Ltd]: <- 会社名を入力
Organizational Unit Name (eg, section) []: <- 部署名を入力(例えばSYSTEMとか)
Common Name (eg, your name or your server's hostname) []: *.ドメイン名を入力
Email Address []: <- メールアドレスを入力

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:An optional company name []:

 

4. SSL証明書を購入して、CSRを送信

ここは証明書を購入したサイトによって違うのでやり方は様々です。

要するに作成したCSRをコピペしてあげれば良いので、catで表示してコピペします。

 # cat server.csr 

 

5. RapidSSLから「RapidSSL Wildcard Certificate Request Confirmation」
という件名のメールが送られてきました。
このメールのリンクをクリックすると、注文を承認するかどうかの画面が表示されます。
当然承認すると、6. サーバー証明書と中間証明書 がメールで送られてきます。

 

6. メールに添付されてきた証明書をサーバーに設置

サーバー証明書はserver.crt、中間証明書はserver-chain.crtという名前で保存することにします。

# vi server.crt
# vi server-chain.crt

 

7. Apacheの設定

mod_sslをインストールすると、/etc/httpd/conf.dにssl.confができます。

これをコピーして、vh-ドメイン名_ssl.confという名前にしておきます。

バーチャルホストを使用するので、ssl.confでバーチャルホストの設定を削除します。

ということで、<VirtualHost _default_:443>以下をザックリ削除。

続いてvh-ドメイン名_ssl.confを編集します。

こっちの方は<VirtualHost _default_:443>より前をザックリ削除して

<VirtualHost *:443>
DocumentRoot サブドメインのDocumentRoot
ServerName サブドメイン:443

ErrorLog  SSLエラーログ出力先
TransferLog SSLアクセスーログ出力先
LogLevel warn

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

といった風に一部だけ変更して保存します。

 

8. iptableでポート443に穴を空けます。

/etc/sysconfig/iptables

に1行追加


-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443    -j ACCEPT

そのあと、iptableを再起動


/etc/init.d/iptables restart

 

9. Apache再起動


/etc/init.d/httpd restart

でApacheを再起動します。

秘密鍵のパスフレーズを聞かれるので、入力したら再起動されてきます。

 

 

ここまで設定して何点か問題があったので更に修正。

 

その1

NameVirtualHost *:443

をApacheのSSL設定のどこか1カ所に書いておかないと
[warn] _default_ VirtualHost overlap on port 443, the first has precedence

というログがでます。

ssl.confの一番最後に


NameVirtualHost *:443

を1行追加しました。

 

その2

sslでも.htaccessをoverrideさせるためには、SSLの設定ファイルに


<Directory "ディレクトリ">
AllowOverride All
</Directory>

などの設定を追加する必要があります。

vh-ドメイン名_ssl.confに追加しました。

 

その3

Apacheの起動時にパスフレーズを必ず聞いてきます。

このままだと再起動時にWebサーバーが自動で起動しません。

対処方法としては、

1. 秘密鍵からパスフレーズを抜く

2. パスフレーズをテキストに保存しておいて、起動時に読み込ませる。

の2つがありますが、今回採用したのは2の方です。


vi pp-filter

で/etcかどこかにpp-filterというファイルを作成して


#!/bin/sh
echo "パスフレーズ"

という内容で保存します。


chmod 500 pp-filter

で実行フラグを立てるのを忘れずに。

さらに、ssl.confの設定を1行変更します。


#SSLPassPhraseDialog  builtin
SSLPassPhraseDialog exec:/etc/pp-filter

builtinをコメントにして、execでpp-filterを指定します。

これでもう一度Apacheを再起動してみるとパスフレーズを聞かれずに起動してきます。

 

サイトをIE6、8、Firefox、chrome、iphone5のsafariでhttpsから見ても問題ありません。

作業はさほど大変ではないのですが、文章に起こすとやたら長くなります。

 

自前でSSL証明書を準備すると、割と安くあがるのでがんばってみる価値はあると思います。

 

 



concrete5にAPCとmod_pagespeedとdeflateをONにしてみた

さくらVPS 1Gにconcrete5とAPCを入れたところ、レンタルサーバーよりも大分表示が速くなったという話を書きました

 

これにmod_pagespeedをONにした場合とOFFにした場合で、どの程度表示速度が違うのか試してみました。

そうしたところ、OFFに対してONの方が1~2割弱程度、表示速度が速くなりました。

が、正直体感ではわからん….という結果に。

データの転送量は2割減っています。

 

さて、今度はmod_pagespeedをONにした状態で、Apacheのmod_deflateを使ってみます。

設定はApacheの公式に書いてあった、せっかちの人向けの簡単な設定に書いてあったものそのままです。

 

これは、転送量、表示速度とも変化がありませんでした。

むしろ遅くなったような…

 

結局 APC + mod_pagespeedで運用してみることにしました。

 



concrete5のtinymceに日本語フォント追加

毎度同じ作業をしようとして、いつも忘れるのでメモ書き。

 

Concrete5の記事ブロックの編集にtinyMCEが使えますが、これのフォントに日本語がありません。

WordPressで日本語フォントを表示する方法は検索すれば何件もでてきますので、concrete5でも同じことができるようにします。

方法は簡単で、

concrete\blocks\contentにあるedit_config.phpに

theme_advanced_fonts :

と書いてある場所があるので、これの先頭に

明朝=\'MS P明朝\',\'平成明朝\',\'ヒラギノ明朝 Pro\',serif;ゴシック=\'MS Pゴシック\',\'ヒラギノ角ゴ Pro\',\'Osaka\',sans-serif;

を追加するだけ。

ADVANCEDとOFFICEの2つのモードで有効になるので、直す場所は2カ所あります。

 

これでF5で再読込したら、明朝とゴシックの日本語フォントが使えるようになります。

 

簡単なんですが、いつもjsの中を探したりして思い出せないですわ。

 



プラレール博に行ったら激混みでした

3日のプラレール博 in 新潟に行ってきました。

 

混んでいることなど予想もしていなかったのですが、高速の出口で渋滞。

嫌な予感が….

 

高速を出た後も信号待ちで全然車が動かないので、裏道を通って臨時駐車場に到着。

 

入り口は全然混んでいなかったのですが、中に入ると…なんだこりゃ!! という人だかり。

 

プラレールの巨大なセットが何カ所かあって、子どもたちは大喜び。

というか、釘付けで動かん。

まぁ、肩車したりして大体見て回りました。

初めてプラレールアドバンスをみましたが、これいいですねぇ。

 

アトラクションは60分待ち。

おいおい、新幹線の乗り物で1週するだけでこんなに待つんかい!!

 

一番早いアトラクションでも40分待ち。

こりゃ無理、絶対無理。

ってことで、「アイスを食べよう」と食い物で釣って出口付近まで脱出。

 

ここでは売り場があって、今度はトミカのミニカーに釘付け。

入り口で車両をもらったのですが、これに連結できるドクターイエローの3両編成が販売されていました。

その他東京モノレールやら限定品が盛りだくさんです。

 

ヤバイ、これはヤバイ。

子どもじゃなくて、俺が欲しい!!

 

「Nゲージは絶対ヤメトケ」と妻から釘をさされているのですが、鉄分が多い私としましては…いや、やめとこ。

車両を買っていくとヤバイ気がしたので、レールの量り売りでごまかすことにしました。

 

レールと橋脚を10個ずつくらい購入。

 

子どもたちは、またプラレール行こうねと言っているのですが、それ来年だよ。

 

ちなみに本日、ニュー板レールという高架にできるレールをおもちゃ屋で購入して、もっていたベーシックセットと高架を繋げて走らせてみたら、これまたみんな喜んでました。

電池がないのか、登るときに車両がプルプルしてましたが。

 

こんどは坂曲線レールを買って橋脚2段の高さまで作ってみるか。

アドバンスもいいなぁ。

 

 



中条の白鳥公園に行ってきました。

2週間ほど前の話ですが、中条の白鳥公園に行ってきました。

 

7号線沿いに入り口があり、山の中腹に公園があります。

車で登っていって、駐車場に止めてからちょっと登ると公園になってなっています。

公園から見える景色はこんな感じ(わかりにくいですかね

shiratori

なんでこの公園かというと、ジャンボ滑り台があるから。

ここにページがありました。

 

段ボール持参の家族が何組かいました。

やはり段ボールがないとケツがイテェ。

 

ちょっと風があったのでですが、天気が良かったのでシートを広げてお弁当を食べました。

遊具もあって景色も良いので、かなりお勧めです。

 

駐車できるスペースがそれほど大きくないので、混んだら車が止められないのが、ちょっと残念。

山の下に駐車場がありますが、登るのはちょっと…

 



webで写真共有するのにzenphotoを使う

Webで写真の共有ができるオープンソースでZenphotoというものがあります。

 

ほかにもGallery3coppermineなどがありますが、手ごろ感でzenphotoを使うことにしました。

で、3ヶ月ほど前から暇をみては手を入れています。

 

今年始めまで本家のページが信じがたいほど重かったのですが、2月にサーバーを変えたそうで、今は快適に表示されますし、ダウンロードもすぐにできます。

それまではページが表示されないもんだから情報が取れなくて、結構大変でした。

 

困った事ということもないのですが、1.4.4系になってから毎月バージョンアップされていて追いかけるのが大変…orz

リリースされたらバグがあって、翌日修正バージョンがアップされていたりしていましたが、現時点で1.4.4.4は大丈夫そうです。

 

1.4.4の最初のバージョンのころ、新規アルバムが作成できなくて1.4.3.5を使うしかなかったのですが、それもバグだったようで、今は直っています。

(アルバムが1つもなかった時に、新規アルバムができないというバグだったみたいです。

新規インストールした人は使えませんよね、これ。)

 

ログインユーザー限定のサイトにもできますし、写真の公開、非公開、公開開始・終了日も設定できるので、いろいろな使い方ができます。

 

このzenphoto、当然写真のタイトルやアルバム名に日本語は使えます。

日本語表示で困った事は特段ありません。

もし必要なら、poファイルを書き換えてあげれば対応できます。

 

ところが、アップロードするファイル名やディレクトリ名に半角英数字以外があると、ハイフンに置き換わってしまいます。

ファイル名に日本語が使えない(当たり前ですけど)のは分かりますけど、勝手に変換すんなよ!!

 

ということで、フォルダ名のチェックを入れてみたりしてます。

 

他には、写真の撮影者を入れたいねぇとか、年代やら時代(明治後期とか昭和初期とか)も情報としてあったらよいねぇなどなど、適当に改造して楽しんでます。

 

あと、EXIFを読み取ってくれるのでGPS情報があればグーグルマップも表示できます。

でも、写真に情報が埋め込まれていないと何の役にも立たないので、DBのEXIF情報に経度と緯度を入れられるように管理画面を変えちゃってグーグルマップを表示してみたり。

 

まぁ、ここらへんの変更はボチボチ書いていこうかと思います。

 



さくらVPSにmod_pagespeedを導入してconcrete5を使ってみる

googleがmod_pagespeedというwebサイトを最適化するApache用のモジュールを公開しています。

 

これは何なんだ? という方は、こちらに解説がありますので、読んでみてください。

 

このツールはgoogleのここからダウンロードすることができますし、インストールの方法も書いてあります。

 

CentOSの場合、wgetでリンク先のファイルを取ってきて、rpmでインストールするだけ。

conf.dディレクトリに2つ設定ファイルができるので、httpdを再起動すれば設定ファイルを読み込んでmod_pagespeedが有効になります。

 

mod_pagespeedとconcrete5を使った場合に問題があるのか調べてみると、

ModPagespeedDisableFilters trim_urls

にしなさいというページがいくつはヒットしました。

 

現在のバージョンはtrim_urlsはOFFになっているので、これは設定する必要はないみたいです。

 

ModPagespeedDisallow */concrete/js/*

は入れておいた方がよさそうなので、pagespeed.confの

<IfModule pagespeed_module>

</IfModule pagespeed_module>

の間に1行追加しておきました。

 

全部チェックしわけではないですが、mod_pagespeedを有効にしたあとでconcrete5を使ったサイトを表示してみたところ問題なさそうです。

 

このモジュール、http://xxxxxx/mod_pagespeed_statistics

にアクセスすると、どれくらい最適化されたのか結果が表示されるようです。

 

しかし、pagespeed.confにはAllow from localhostと書いてあるので、外部からは見れません。

この部分を書き換えるという方法もありますが、tertermのポートフォワードを設定して表示させることもできますね。

 

ところが、今度はconcrete5のmod_rewrite設定が有効になっているので表示されません。

 

RewriteRule ^/mod_pagespeed_statistics – [L]

をRewriteBaseの次の行に追加して、/mod_pagespeed_statisticsはリダイレクトさせないようにしたら表示できるようになります。

 

結果として速くなったかというと…気持ち速くなった…かも。

測定してないので、よくわからんです。

 

Nginx用のモジュールもngx_pagespeedAというものがgithubにありますね。

まだアルファー版ですけど。

 

 



さくらVPSにConcrete5を移行してみた

レンタルサーバーで動いているconcrete5のサイトがどうやっても遅いので、さくらVPSで動かしたらどうなるか移行してみました。

ちなみに使っているレンタルサーバーはさくらではありません。

 

公開ディレクトリから一式全部tar.gzでまとめてダウンロードして、mysqlはダンプを取ってあります。

 

VPSはCentOS6.4、phpとmysqlはremiからとってきて

php5.4.14

mysql 5.5.30

です。

 

php.iniとmy.cnfの設定は一通り済んでいますんで、ここは割愛。

php.iniだとtimezoneとerror_logとmbstringの設定をゴニョゴニョやっています。

my.cnfもutf-8を指定しているだけなんで、googleで検索して下さいませ。

 

移行するにあたって、元サーバーで使っていたmysqlのユーザーとDBを作成します。

(ここは設定変更するの面倒なので、そのままにしておきました。)

 

mysql > create database hogehoge

mysql > create user USERNAME@localhost IDENTIFIED BY 'PASSWORD'

mysql > GRANT ALL PRIVILEGES ON hogehoge* to USERNAME@localhost IDENTIFIED BY 'PASSWORD'

 

まぁGRANTの設定はお好みでって感じで。

このまま

mysql > use fogefoge

mysql > source xxxxx.sql

 

でも良いですし、一旦抜けてここに書いてあるようにコマンドでデータをインポートします。

 

tar.gzのファイルをVPSに転送して(SFTPですけど)、Webのディレクトリに展開します。

chown xxxxx:xxxxxx -R * でファイルの所有者を変更してapacheで書込みできるようにしてっと。

 

phpはcgiではなくて、モジュール版で動かすことにします。

 

先程のリンクにあったconfig/site.phpのurlを書き換えて、さっそく表示してみます。

 

ちゃんと表示….されない!!!

なんか記事ブロックから後の表示が出てこない。

ソースを見てみると、記事ブロックから後ろのソースがぶった切れています。

しかもサイト内リンクはことごとく404かよ!!

 

phpinfoで見てみたら、原因はいろいろと入れ忘れていたかららしい。

そもそも、php-mysql入れ忘れてるし。

さらにリンクは”AllowOverride None”になっていたから .htaccessがガン無視されてたわ。

 

php-mysql、php-gd、php-mcryptをインストールして、httpd.confの設定でAllowOverrideを変更したら全く問題なくサイトが表示されるようになりました。

 

今回はAPCも入れていたのですが、表示はレンタルサーバーを使っていた時とは全く違って速くなってます。

ついでにwordpressのDBもインポートして表示させたら、これも全く問題なし。

 

テストして問題なければ、ドメインを移管して移籍してくるかなぁと思ってたりします。