カテゴリー
Windows

本家のお世話-#32。(PHP5.4.1へアップデート)

投稿アップデート情報  追記(4/28)  追記2(5/2)  追記3(2013/2/14)

 ここのところ,いろいろやってきたが,何をやってもphp5ts.dllがらみのcrashが解決しない。
 気づかないうちに,PHP5.4.1がリリースされていたので,この際,これに変えてみることにした。

 ≪注意≫ 細かい設定は,5.4.0 と同じ。(本家のお世話-#28。参照)

 php.iniについては,5.4.0のものを流用。ただし,;extension=php_sqlite.dll の1行がなくなっているので,このextensionをアンコメントしている場合は,注意が必要。もっとも,削除された拡張モジュールにPECLに移行という但し書きがあったから,残っていたこと自体が,単なる消し忘れだったのかもしれない。
 あと,忘れずに php5apache2_4.dll を展開してできたファイル群に追加すること。<<---- 自戒を込めて。  さて,今差し替えました。crashがなくなるよう祈ってまーす。(4/27 @0:33) 追記(4/28):  php-5.4.1-Win32-VC9-x86.zip に差し替え後,1度もcrashが起きていない。今までは,1日に少ない日でも4回は crash + restart が起きていたから,もう大丈夫ってことだろう。やはり,PHPのバイナリのほうの問題だったみたいだねえ。  現在のサーバの構成は,以下のとおり。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

追記3(2013/2/14):
 php5apache2_4.dll でググって来られる方がおられるようなので,追記。 PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに同梱されるようになりました。

カテゴリー
Windows

記事にしたほうがよかったかも。(で,Apache 2.4.2)

投稿アップデート情報  追記(4/28)  追記2(5/2)

 今朝,りりさんからコメントをもらって,書いた返事がバカ長くなってしまって,表題のように思った次第。

 Apache Lounge でバージョン 2.4.2 が出たときにステイブル バイナリだということで導入したけど,ちょっと早まったかなと思っていた。Bug #61577の件もあるし,「Apache、セキュリティを修正した最新安定版「Apache HTTP Server 2.4.2」リリース」なんていうのもあるし。

 上のリンクでの 2.4.2 は org での話。この間から,Lounge と org では末尾が一つずれていた。ここで触れられている「Windows版では「AcceptFilter None」の実装が変更されたため、mod_sslとの非互換性が発生している」という件に関しては,Apache 2.4.2 Win32 & Win64 availableの「SSL issue.」の書き込みと,SSL connection error… AcceptFilterを見て,大丈夫だろうと踏んだわけ。実際,その辺に関しては,
     <IfModule mpm_winnt_module>
       AcceptFilter http none
     </IfModule>
を入れて以来,あまり問題なく動いているように見える。

 それで,今日そんなこんなで Lounge の zip を見てたら本家のお世話-#28。で書いたのとリリース日が違うことに気づいた(VC10版も,VC9版も,20 Apr ’12 になっている。UTCで,です。)。
 さっそく落として比べてみたら,ファイルも変わっている。これで, org との枝番のずれは解消されたのかなと思ったが,Changelog Apache 2.4を見る限り,変わったのは,OpenSSL from 1.0.1 to 1.0.1a だけなので,そういうわけでもないみたい。しかし,困るよ。名前は変わらず,こっそりファイルの実体だけが変わってちゃ。

 今日も,crash 4回なので,ちょっと,20日版に差し替えてみます。あまり意味はなさそうだけど。
 org 版 2.4.2 の Lounge版というわけではないみたいだし。(@17:44 入替完了)

追記(4/28):
 結局,上記のApache の差し替えは, crash + restart には無関係だった。
 しかし,PHP 5.4.1 がリリースされたので差し替えたら,その後crashがなくなった。今までは,1日に少ない日でも4回は crash + restart が起きていたから,もう大丈夫ってことだろう。やはり,PHPのバイナリのほうの問題だったみたいだねえ。
 現在のサーバの構成は,以下のとおり。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
Windows

本家のお世話-#29。(Apache2.4.2へアップグレード-#2)

投稿アップデート情報  追記  追記2(4/14)  追記3(4/28)  追記4(5/2)

 続きをすぐにアップしようと思っていたんだが,ホークスの試合があって遅くなってしまった(汗)。近頃,Twitterのタイムライン片手に試合を見るというさみしいことをやっているのだが,今日は久しぶりにTwitterを読まずに済んだ。やっぱり,リアルな同席者のほうがいいな(爆)。

 さて,サーバに関してはここからが本番(汗)。

 現在,自鯖の各ソフトのバージョンは

  • WindowsXP Pro SP3(x86) -
  • Apache2.2.22 ✓
  • MySQL5.5.22 -
  • ActivePerl-5.14.2.1402 -
  • PHP5.3.10 ✓

なので,バージョンアップするのは,✓をつけた Apache と PHP ということになる。

 まずは現状をバックアップ。

  • 万一の場合を考えて,Apache2.2.22 ,PHP5.3.10 のフォルダを丸ごとコピー。
  • 同様に,ドキュメントルート内とcgi-bin内のファイルをを丸ごとコピー。
  • phpMyAdmin で WordPressのデータベースを保存。

 Apache2.2.22 ,PHP5.3.10を完全に削除する。どちらも手動インストールなので,削除も手動で行う。

  • Apacheサーバ停止。
  • フォルダ Apache Software Foundation(Apache2.2.22)とPHP(PHP5.3.10)を完全に削除。
  • 今回は,Apacheサーバの場所が変わるので,サービスとして登録してあるApacheを
    httpd.exe -k uninstall
    で削除。

 Apache2.4.2 ,PHP5.4.0 を導入する。

  • 仮構築で作ったApache24,PHPフォルダを丸ごとC:直下にコピーする。
  • コマンドプロンプトから,Apache24/bin に移動し,httpd.exe[Enter] で一応テストラン。
  • 同様に,httpd.exe -k install[Enter] でサービスとして登録。
  • 使い勝手のために,ApacheMonitor.exe のショートカットを作り,スタートアップフォルダに入れる。ショートカットからサーバを停止する。
  • WordPress でmod_rewriteを使っているので,Apacheのhttpd.conf を開け,
    LoadModule rewrite_module modules/mod_rewrite.so
    をアンコメント。
  • 先ほど保存したlogファイルを Apache24/logs にコピーする。
  • Apacheサーバ起動。

 どうも,動きが遅くときどきエラーが出るので,「プログラムの追加と削除」からMicrosoft Visual C++ 2008 関係をすべて削除し,改めてダウンロードしたMicrosoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)をインストールし,MicroSoft Updateからパッチを当てた。パッケージのバージョンによってエラーが出ることもあるらしいので。

 「案ずるより産むがやすし」とか(笑),なんか無事に構築完了。もっとも,PHP5.4.0が問題なく動くかどうかは,しばらく動かしてみないとわからないので,当面評価は保留だな。

追記:
 errorlogに下記が出ていた。
     (OS 64)指定されたネットワーク名は利用できません。
     : AH00341: winnt_accept: Asynchronous AcceptEx failed.
 この場合,2.2.22までは httpd.conf に
     <IfModule mpm_winnt_module>
       Win32DisableAcceptEx
     </IfModule>
を入れていたところなので,Win32DisableAcceptEx 後継の AcceptFilter を使い,
     <IfModule mpm_winnt_module>
       AcceptFilter http none
     </IfModule>
を入れてみて,様子見。

 Apache2.2.22+PHP5.4.0 のときと比べるとものすごく頻度が減ったが,やはり,
     szAppName : httpd.exe   szAppVer : 2.4.2.0   szModName : php5ts.dll
     szModVer : 5.4.0.0   offset : 000e890f
が起こっている。いろいろググってみた結果,Bug #61577 php5ts.dll crashes when specific extensions are loaded を発見。ドンピシャの記事なんだが,今のところ本当にバグかどうか異論もあるようだし,解決法も見つかっていないみたい。php_mbstring.dll,php_gd2.dll,php_curl.dll が3つそろうとという検証を2人がしているようなので,いよいよのときは,php_curl.dllを無効にしてみるかな。
 ただ,頻度は激減したので,これについてもしばらく様子見の予定。

追記2(4/14):
 php5ts.dllのクラッシュによる再起動があまりに激しいので,Apache2.2+PHP5.3に戻した。しかし,次稿のようなことになって,頭が痛い。

追記3(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記4(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
Windows

本家のお世話-#28。(Apache2.4.2へアップグレード-#1)

投稿アップデート情報  追記3(4/28)  追記4(5/2)  追記5(11/10)  追記6(2013/1/3)

 Apache Loungeで,Apache2.4.x系ステイブルが出た(VC10版は,6 Apr ’12 だけど,VC9版は,7 Apr ’12 になっている。UTCで,です。)ので,早速アップグレードに取り組んでみることにした。ただし,さすがに稼働中のサーバ上では危なすぎるので,ひとまず,ローカルに仮構築。

 完了後は,以下のようになる。

  • WindowsXP Pro SP3(x86)
  • Apache2.4
  • MySQL5.5
  • ActivePerl5
  • PHP5.4

 ≪注意≫ ローカルの構築なので,アップロード作業がすっぽり抜けている。ここを参考に実際のサーバをリモート場所に構築しようと思う方は,ファイルの書き換え後の更新アップロードを忘れないようにしてください。

 さて,Apache2.4.x系のインストールから。

  1. httpd-2.4.2-win32.zip と httpd-2.4.2-win32-VC9.zip のどっちを使うかなと思ったが,後者はMicrosoft Visual C++ 2010 SP1 再頒布可能パッケージ (x86)をインストールしなくていいようなので,こちらを使うことにする。httpd-2.4.2-win32-VC9.zipをダウンロード。
  2. httpd-2.4.2-win32-VC9.zip を展開する。展開ファイル中のReadMe.txtに,「Upgrading to 2.4 from 2.2Overview of new features in Apache HTTP Server 2.4を参照せよ」とあったので,一応見に行った。
    Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)のインストールは必須であるが,今回の環境においては既に済んでいる。
  3. httpd.conf のカスタマイズから行う。
    • ServerRoot は,Program Files下に変更せず,デフォルトのまま(つまり,c:/Apache24)。自鯖は,WindowsXPなので問題ないが,Windows7あたりでは,UAC(User Account Control)の関係でいろいろと不具合を聞くので,この際今後のことを考えて,デフォルトのままの設定で行こうと思う。
    • ServerAdmin <管理者のメールアドレス> に変更。
    • ServerName <DNS name>:80
    • カスタマイズには関係ないが,以下のところに注意。Apacheのインストールが初めてなら何も思わないだろうが,ここはRun-Time Configuration の変更に伴って書き方の変わったところのひとつだ。ただし,旧の書き方をしている場合でもmod_access_compatによって,下位互換が実現されるらしい。モジュールのところを見ると,
      LoadModule access_compat_module modules/mod_access_compat.so
      はデフォルトで有効になっており,モジュール群のうち一番初めにロードされるようになっている。

      新しい書き方は,以下の通り。
           <Directory />
             AllowOverride none
             Require all denied
           </Directory>

      Apache2.2では,以下のようになっていた。
           <Directory />
             Options FollowSymLinks
             AllowOverride None
             Order deny,allow
             Deny from all
           </Directory>

    • DocumentRoot “c:/Apache24/htdocs”  —>>  DocumentRoot “G:/WEB/example”
      <Directory “c:/Apache24/htdocs”>  —>>  <Directory “G:/WEB/example”>
    • Options Indexes FollowSymLinks  —>>  Options FollowSymLinks
    • AllowOverride None  —>>  AllowOverride directive-type
      directive-typeに使えるキーワードについては,AllowOverride ディレクティブを参照のこと。
    • 自鯖の場合は,rotatelogsを使って,ログを取っているので,
      ErrorLog “logs/error.log”  —>>  ErrorLog “|bin/rotatelogs -l -f logs/error.%Y-%m-%d 86400”
      アクセスログに関しては,AWStatsの関係上commonではなくcombinedを使うので,
      CustomLog “logs/access.log” common  —>>  コメントアウト
      CustomLog “logs/access.log” combined  —>>  アンコメント
      し,さらに,
      CustomLog “logs/access.log” combined  —>>  CustomLog “|bin/rotatelogs -l -f logs/access.%Y.%m.%d 86400” combined env=!no_log
      no_logについては,「本家のお世話-#4。」参照。

      ちょっと下に書いてあるが,テストランの結果,|bin/rotatelog は |bin/rotatelog.exe でないと動かないことが判明。使う場合は必ず拡張子をつけてください。

    • これも,カスタマイズとは関係ないが,
      # Configure mod_proxy_html to understand HTML4/XHTML1
      <IfModule proxy_html_module>
      Include conf/extra/proxy-html.conf
      </IfModule>
      が追加されている。
  4. ディレクトリ Apache24 を,そっくり C:直下に移動する。
  5. コマンドプロンプトを起動し,Apache24bin に移動して,テストラン。httpd.exe[Enter]
    (OS 2)指定されたファイルが見つかりません。 : AH00089: Couldn’t start ErrorLog p
    rocess ‘bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M’.
    AH00015: Unable to open logs
    というエラーが出る。パイプがうまく働いていないのかと思って,
    ErrorLog “C:/Apache24/bin/rotatelogs -l -f C:/Apache24/logs/error.%Y-%m-%d 86400”
    にしてみた。今度は,
    AppName: httpd.exe AppVer: 2.4.2.0 ModName: msvcr90.dll
    ModVer: 9.0.30729.6161 Offset: 0003bdbc
    が出る。いろいろ試してみて,正解はなんと rotatelogs.exe だった。つまり,2.2.22 までは拡張子なしで通っていたのだが,2.4.2 では .exe まで書かないとダメってこと。
    つまり,  ErrorLog “|bin/rotatelogs.exe -l -f logs/error.%Y-%m-%d 86400″  でO.K.
    えーーーーーーーーっ。こんなにハマったのに!!(号泣)
  6. 気を取り直して,サービスとして登録。
    httpd.exe -k install
    使い勝手のために,ApacheMonitor.exe のショートカットを作り,スタートアップフォルダに入れておく。
  7. ドキュメントルートに,Apache24/htdocs にある index.html をコピーし,ブラウザから,http://localhost/ を確認,無事「It works!」が表示された。

 MySQL5.5 をインストールする。

  1. MySQL Community Server から,mysql-5.5.22-win32.msi をダウンロード。
    えーっと,今気が付いたんだが,「JavaScript 有効」にしておくと「» No thanks, just take me to the downloads!」というリンクが表示され,これをクリックすると,各ミラーがわかるって形なのねぇー。いつものPCは,「JavaScript 無効」なので知らなんだ。
  2. インストール方法は,mysql-5.5.18-win32.msi と全く同じ。(MySQLの再導入を参照)

 次に,ActivePerl 5 をインストールする。

  1. ActivePerl-5.14.2.1402-MSWin32-x86-295342.msiをダウンロードする。
    途中に,チェックボックスがあるがすべてデフォルトのままでインストール。
  2. コマンドラインから, perl.exe -v[Enter]で,バージョンなどが表示されれば,インストール成功。pathも通っている。
  3. Apache の httpd.conf を開き,
    ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/”  —>>  ScriptAlias /cgi-bin/ “G:/WEB/cgi-bin/”
    <Directory “c:/Apache24/cgi-bin”>  —>>  <Directory “G:/WEB/cgi-bin”>
    この後のところも,Run-Time Configuration の変更に伴い書き方が変わっている。
    cgi-bin 以外のディレクトリで CGI スクリプトを使う気がある場合は, #AddHandler cgi-script .cgi をアンコメントし,場合によっては .pl を追加するなどする必要がある。
    自鯖では,そのつもりがないのでデフォルトのまま。
  4. G:/WEB/cgi-bin に,Apache24/cgi-bin にある printenv.pl をコピーし,テキストエディタで1行目を perl.exe の場所に書き換える。
    #!D:/programs/perl/bin/perl.exe  —>>  #!c:/perl/bin/perl.exe
  5. Apacheを再起動後,ブラウザから,http://localhost/cgi-bin/printenv.pl を確認。環境が表示されれば,成功。 printenv.pl は削除しておく。

 さて,PHP5.4のインストールに入る。Apache2.4.xとの連携はうまくいくだろうか。ここのブログを読んでくれてる方はご存知の通り,アップデートに失敗したまま,放置プレイである。もっとも,うまく動いてくれるかどうかのチェックは,仮構築では無理な気がする。本鯖の場合も,短時間の稼働ではエラーは出なかったし。

  1. http://windows.php.net/ からphp-5.4.0-Win32-VC9-x86.zipをダウンロードし,ファイルを展開する。
  2. 展開ファイル内の php.ini-production を php.ini にリネームし,下表のようにカスタマイズ。
      デフォルト カスタム
    1 ;default_charset = "UTF-8" default_charset = "UTF-8"
    2 ; extension_dir = "ext" extension_dir = "(ドライブ文字):PHPext"
    3 allow_url_fopen = On allow_url_fopen = Off
    4 ;extension=php_curl.dll extension=php_curl.dll
    5 ;extension=php_gd2.dll extension=php_gd2.dll
    6 ;extension=php_mbstring.dll extension=php_mbstring.dll
    7 ;extension=php_mysql.dll extension=php_mysql.dll
    8 ;extension=php_mysqli.dll extension=php_mysqli.dll
    9 ;extension=php_openssl.dll extension=php_openssl.dll
    10 ;date.timezone = date.timezone ="Asia/Tokyo"
    11 ;sendmail_from = me@example.com sendmail_from = 自分のメールアドレス
    12 ;mbstring.language = Japanese mbstring.language = Japanese
    13 ;mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = UTF-8
    14 ;mbstring.http_input = auto mbstring.http_input = pass
    15 ;mbstring.http_output = SJIS mbstring.http_output = pass
    16 ;mbstring.encoding_translation = Off mbstring.encoding_translation = Off
    17 ;mbstring.detect_order = auto mbstring.detect_order = UTF-8,ASCII,SJIS,EUC-JP,JIS
    18 ;mbstring.substitute_character = none mbstring.substitute_character = none

    14-18 に関しては,デフォルトのままでも動くと思う。特に,17に関しては,自鯖の環境でこうしているので,参考にされる場合は各自対処してください。

  3. 展開時のフォルダ名を PHP にリネームし,そっくり C:直下に移動する。
  4. Apacheが2.4.x になったので,php5apache2_x.dll が変更になる。Apache Lounge から php5apache2_4.dll-php-5.4-win32.zip をダウンロードし,展開後,出来たディレクトリ内の php5apache2_4.dll を PHP 直下に移動する。
         PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに
         同梱されるようになった(12/28追記)
  5. php5apache2_4.dll に同梱の ReadMe.txt に従い,Apache の httpd.conf の LoadModule の一番最後に
    LoadModule php5_module “c:/php/php5apache2_4.dll”
    を追加。PHP のインストールディレクトリ名について,大文字,小文字が入り乱れているが,Windowsは大小を区別しないので,無問題。気になる場合は,自分のインストール環境にそろえてください。
    AddHandler application/x-httpd-php .php
    PHPIniDir “C:/PHP”
    については,httpd.conf の末尾に以下の形で追加。
         <IfModule mod_php5.c>
           AddHandler application/x-httpd-php .php
           PHPIniDir “C:/PHP”
         </IfModule>
    AddType application/x-httpd-php .php だったのが, AddHandler application/x-httpd-php .php となっている。今まで,AddType と AddHandler の違いなんて考えたこともなく,どこかで見かけた通りに設定してきたが, AddTypeAddHandler を読んでみると, AddHandler の方が妥当なようだ。
    <IfModule mod_php5.c> と </IfModule> で挟むのは,Apache モジュール mod_so の書き方が変わっていないので,あったほうがいいかなという程度。
  6. Apache の httpd.conf の
    DirectoryIndex index.html  —>>  DirectoryIndex index.php index.html
  7. テキストエディタで,<?php phpinfo() ?> を記入した test.php を作り,ドキュメントルートにコピー。Apacheを再起動後,ブラウザから http://localhost/test.php を確認し,phpinfo() ページが表示されれば,インストール完了。
    ドキュメントルートの test.php は削除し,php.ini の
    ;disable_functions =  —>>  disable_functions =”shell_exec, suexec, passthru, phpinfo”
    に変更後,Apacheを再起動。

 一応,仮構築はできた。あとは,本番ですな。(ドキドキ)

早速の追記:
 書き忘れです。PHPのパスを通していないが,Apacheから使うだけなら通さなくても問題ない。
 と書いたのだが,近頃ググっていて,パスがらみのトラブルを見たので,WinVista・7・8やWinサーバ系だと違うのかもしれない(12/27追記)。

追記(4/12):
 次稿に書いたが,
     (OS 64)指定されたネットワーク名は利用できません。
     : AH00341: winnt_accept: Asynchronous AcceptEx failed.
に対して,
     <IfModule mpm_winnt_module>
       AcceptFilter http none
     </IfModule>
を入れてから,調子がいいように思える。

追記2(4/14):
 php5ts.dllのクラッシュによる再起動があまりに激しいので,Apache2.2+PHP5.3に戻した。しかし,次々稿のようなことになって,頭が痛い。

追記3(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記4(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

追記5(11/10):
 PHPの設定について,extra-confを作る話を「覚え書-#12。」に書いたので,そっちも見てください。

追記6(2013/1/3):
 VC11 でビルドの Apache 2.4.6 win32 binary について新記事を書いた。

カテゴリー
Windows

Let’s note J10 カスタマイズ中。

投稿アップデート情報  追記(3/14)~~追記4(3/27)  追記5(2015/8/2)

 ワハハ,ついに己に負けて買っちゃいました。CF-J10TYAHRスペック <<— こんなの。今日着いた,オホッ。

新iPad,7日発表か。」に書いたように,Docomo以外のキャリアは私的には実用に耐えなさそうなので,iPadはあきらめてLet’s note にした。有線ランコネクターがあるということも決定理由の一つ。光学ドライブとPCカードスロットがないので,その辺の機器も換えなくてはいけなくて,まだちょっとゴリゴリ使うとこまで行っていない。しかし,気分としてはLoox T93Bの後継マシンのつもりだから,サクサク感は言わせません。

Windows7 Sp1 64bitで使っているんだが,UIに慣れるまで,時間かかりそうだよ。

もうちょっと,目鼻がついてからと思ったんだが,しゃべりたくって記事を書いてしまったので,この関係のことは,追記追記で,ここにアップしてきます。(爆)

追記(3/14):
今日,DVSM-PC58U2Vがついたので,リカバリディスクを作っておいた。メディアは太陽誘電のDVD-R2枚。しかし,光メディアって,いざ使うときに読めなくなっていることが多いんだが,イメージを吸いだして別媒体にもリカバリデータのバックアップを取っておくべきかなぁ。しかし,完全な吸出しが難しいのかも……

追記2(3/17):
結局,携帯端末としては,DocomoのL-09Cを購入した。Lっていうのは,LG Electronicsのことらしい。現在キャンペーン中で新規購入だと端末本体は0円ということなのだが,本当は機種変更で行きたかったのに,「定額データプランHIGH-SPEED」がそのまま移行できなくて,ひとまず解約しなければいけなかった。中途解約ということで,9,975円も取られた。これがどうも腑に落ちない。だって,「定額データプランHIGH-SPEED」を使わなくなったら,「Xiデータプラン・フラット・にねん」を使うんだし,解約しなければいけないのは,向こうの都合で「定額データプランHIGH-SPEED」が使えないからだ。ずっと,NTTしか使わないんだから―というより使えないんだから―お得意様として,その辺の解約金はサービスするくらいのことはやってもらっても,罰は当たらないんじゃないだろうか。

現に,Let’s noteに関しては,今,PanaSenseがWiMAXのサービスキャンペーンをやっているのだが,そこで使われているUQコミュニケーションズのサービスエリアも,我が家あたりは見事圏外だった。

ちょっと,補足を。上記の機種変更と新規契約のこと。もともとは電話番号を変えないために,機種変更で行こうと思っていたが,機種変更でも新規契約でも,データプランの契約は,もうXiのものしかないので,「定額データプランHIGH-SPEED」は解約しなければならず,解約金は同じようにかかるという。その上に,機種変更だと,本体代を20,000円+α払わなければいけないらしい。この点に関しては,たまっているポイントを使おうと思っていた。しかし,どっちにしても解約金がかかるなら,本体代を払わないくていい新規契約にしようということになった。
私の場合,「定額データプランHIGH-SPEED」で使っていた番号は,データ通信専用の電話番号なので,電話番号が変わっても音声電話ほどいろいろなところに影響はないが,両方で同じ番号を使って業務を扱っている場合など,困るだろうなぁ。
それと,うかつにして認識していなかったが,データプランにねんとかいう場合は,初めの2年が過ぎたのちの契約が2年ごとの更新になる。したがって,契約後,3年半くらいたっている私の契約の場合も,中途解約になるわけだ。

追記3(3/26):
Windows7には,OSがのっている状態でもパーティションの再構成ができるツールがついた。これを使ってみた。感想としては,初めからGPartedを使ったほうがよかったというのが正直なところ。

「コントロールパネル(表示方法をカテゴリ以外にしておく)」>>「管理ツール」>>「コンピューターの管理」>>「ディスクの管理」と進んで,変更したいドライブを右クリックして,ボリュームの縮小を選ぶと縮小領域の照会という窓が出て,どのくらい縮められるか調べてくれる。

ところが,30GBくらいしか使用していないにもかかわらず,110GBあたりまでしか縮小できない。「Windows7のディスクのボリュームを簡単に縮小する」を読むと,どうやらページングファイルや休止状態の設定やらが邪魔をしているようだ。

「コンピューター」を右クリックしてプロパティを開き,「詳細設定」>>「パフォーマンス」>>「詳細設定」>>「仮想メモリ」と進んで,Cドライブのページングファイルをなしに設定する。ついでに「システムの保護」も全ドライブについて無効にしておいた。どうせ,バックアップは自分でやるし。
休止状態を不使用にしようと思ったら,タブが電源のプロパティからなくなっていてとまどった。Windows を実行しているコンピューター上で休止状態を無効にする方法および再度有効にする方法というのを参考に,休止状態を無効にした。方法は以下の通り。

  1. [スタート] ボタンをクリックし,[検索の開始] ボックスに「cmd」と入力します。
  2. 検索結果の一覧で,[cmd] を右クリックし,[管理者として実行] をクリックします。
  3. ユーザー アカウント制御からメッセージが表示される場合は,[続行] をクリックします。
  4. コマンド プロンプトで,「powercfg.exe /hibernate off」と入力します。
  5. 「exit」と入力し,Enter キーを押して、コマンド プロンプト ウィンドウを閉じます。

元に戻すときは,同じ手順でoffをonにすればよい。
この後,ひとまず,PCを再起動し,Cドライブにデフラグをかけてパーティションの再チャレンジ。ところがまたダメだった。1回目には気づかなかったんだが,縮小領域の照会が終わったときの窓の中に「i」マークがあって,アプリケーション ログの”defrag”イベントを参照しろと書いてあった。というわけで,イベント ビューアーを開いてアプリケーション ログの”defrag”を見てみたら,イベント259というのがあって,どうやら,System Volume Informationのファイルが邪魔している感じ。

これで,手こずった手こずった。

この辺の作業をやるのに,いちいち「管理者として実行」と面倒くさいので,Administratorでログオンしようと思ったら,ものがHome Premiumなので「コンピューターの管理」を開いても「ローカルユーザーとグループ」が触れない。XP HEと同じくレジストリとか何とかになってくるのかと思ったら,Windows7の場合には,休止状態のときと同じくcmd.exeからできるという情報があった。上記と同じ手順を踏むが,4.のところで,
net user administrator /active:yes   [Enter]
net user administrator <Password>    [Enter]
とやって,再起動するとAdministratorでログオンできるようになる。まぁ,ある程度のカスタマイズが終わったら,yesをnoに変えてAdminを使えないように戻しておいた方がいいだろう。

で,XPの感覚だとAdminでやれば,System Volume Information内のファイルも扱えた記憶があるのだが,どうしてもうまくいかない。結局,Windows標準のデフラグツールを使うのはあきらめて,ultradefrag-5.0.3.bin.amd64.exeを落としてきた。UltraDefragは久しぶりに使ったが,相変わらず優れもの。ブートタイムデフラグをかけてやったら,あっさり,ボリュームの縮小に成功。Cドライブはちょっと余裕を見て50GBに変更した。

ページングファイルを最大値に,休止状態を復活させて,Cドライブのパーティションに関するカスタマイズは終了。

追記4(3/27):
J10には,HTS543225A7A384がついている。Travelstar Z5K320,250GB,5400rpm。日立(HGST)製―今は,Western Digital傘下になっちゃってるわけだが―だね。で,Cドライブのカスタマイズが終わった時点で,170GBばかり空きがある。250GB-50GB=200GB,計算が合わない。計算の仕方やなんかで差はあるとはいうものの,そこまで合わないわけはないので,当たり前だが理由がある。HDD内のリカバリ領域がなんと12GBばかりある。びっくり,大きくなったもんだ。ここには,Windows7の32bitと64bitが入っているが,リカバリディスクはそのときインストールされているものしかできない。従って,両方のリカバリディスクを作っておこうと思うと,プレインストールされているものとは違う方の版をインストールしなければいけないことになる。これは不便だ。昔,VistaのXPダウングレード版を買ったときに光メディアがついてきたことがあるのだが,そんな時代ではないということなのだろうか,調べてみたらプロダクトリカバリーDVD-ROM付だと,ほぼ同じ仕様で45kほど値段が違うみたい。まるごと,イメージバックアップするという方が現実的なのだろうか。しかし,……

それはさておき,残っている部分をデータ保存エリアにする。ここのファイル形式は素直にntfsで行こうと思っていたのだが,「Crusoe,TM5800。」の成り行きのせいでちょっと方針変更。
ntfsのマウントは,CentOS6デフォルトではできないらしい。ググった限りでは,変えるのはそれほど大変ではないらしい。が,データをあちこち移動して使う場合,WindowsOS同士ですら,ntfs上のファイルはセキュリティ(主として所有権)の関係で面倒なことになったことが多いので,考えた末,スピードと扱えるファイルの大きさには目をつぶって,FAT32で行くことにした。100GB以上もあるドライブのFAT32フォーマットはWindowsOSでは相変わらずできないみたいなので,結局,GPartedを使う。<<— こういう場合はLiveCDを1枚作っておくと便利ですヨ。まあ,OSが入ったままのパーティション変更というのは,やらないで済めばそれに越したことはないが。

 さて,J10をGPartedのLiveCDで起動する。もちろん,起動デバイス順はBIOSから変更済み。完了後のHDDの状態は,右図の通り。30GBの空き領域は後でCentOSを入れるつもり。今回はうまくいくんだろうか。
書き忘れるところだったが,残りのエリアは,4つ目のパーティションになるので拡張パーティションにする。でないと,残った30GBが使えないことになってしまうので,要注意。

30GBの空き領域は上記の位置でいいのだろうか。Puppyのときに,HDD内の位置の関係でswap領域がうまく取れなかったような記憶があるが……。まぁ,うまくいかなかったときに考えることにしよう。Dドライブに,もうかなりデータがあるので,移動すると結構時間がかかるし。

さて,改めて日常的に使うユーザでログインし,「コントロールパネル」>>「システムとセキュリティ」>>「システム」と進んで,左ペインから「システムの詳細設定」を開く。パフォーマンスの設定で,視覚効果について「パフォーマンスを優先する」を選んで適用。ここの詳細設定タブはもう触っているので,今回は特に何もしない。DEPは今のところデフォルトのまま。視覚効果を切っても,今回のPCあたりでは使用感に特別差が出るわけではない。単に今までの慣れの問題で,個人的に視覚効果がウザイだけの話。

Cドライブを小さくしてしまったから,私的ファイルやマイ ピクチャ,マイ ビデオ,マイ ミュージックなどが,デフォルトのままにCに保存されると困る。C:UsersMyUserIDへ行って,中のフォルダのうちプロパティに「場所」タグがあるものをすべて,Dドライブに移動する。

ところで基本メーラとして,SeaMonkeyを使っている。設定をいちいちするのが面倒で,C:Documents and SettingsMyUserIDApplication DataMozillaSeaMonkeyProfilesxxxxxxxx.defaultの中身をそっくり,新しいSeaMonkeyの該当場所に移動していた。Windows7ではDocuments and Settingsが変更されているので,当然ながら場所が変わっていた。新しい場所はC:UsersMyUserIDAppDataRoamingMozillaSeaMonkeyProfilesxxxxxxxx.default 。直下のすべてをコピーすればSeaMonkeyの個人設定が全部移る。メールの設定だけなら,Mailフォルダの中身だけを移せばO.K. 現在の最新版2.8でもこの方法で問題なく動く。それ用のpluginもあるらしいが,Windows版の対応は遅れがちなようなので,手動の方がいい。メーラ乗り換えのときの方がツールの対応は親切みたいだよね。気のせいだろうか(爆)。

追記5(2015/8/2):
Windows10 x64 を入れて使っている。

カテゴリー
Windows

本家のお世話-#27。(PHP5.4.0へアップデート失敗)

投稿アップデート情報  追記2(3/5)  追記3(3/7)  追記4(4/11)

 前記事の最後に1行書いたが,php-5.4.0-Win32-VC9-x86.zipが出た。

 Version 5.4.0のChangeLogは,こんな感じ。Twitterで「php5.4.0」をキーワードに検索してみたが,現時点(20:20)ではそれほど不具合の報告はないようだ。

 変更点はいろいろだが,バージョンアップで問題になるのは,下位互換性のない変更点かな。PHP 5.4.x で推奨されなくなる機能削除された拡張モジュールあたりも,確認しておいたほうがいいかもしれない。

 というところで,自分が把握できていない変更点について,ちょこちょこと確認してみた。

 PHP5.3.10のiniで,マジッククオート関係を確認してみると,
    ; magic_quotes_gpc
    ; Production Value: Off

    ; http://php.net/magic-quotes-runtime
    magic_quotes_runtime = Off

    ; http://php.net/magic-quotes-sybase
    magic_quotes_sybase = Off
になっている。現時点で,これで動いてるんだから,5.4.0にしても問題ないかもな。
 「set_magic_quotes_runtime() を実行すると E_CORE_ERROR が発生」という記述が少し気がかり。wp-includes/class-phpmailer.phpとwp-admin/includes/class-pclzip.phpでset_magic_quotes_runtime()が使われてるみたい。今までは,多分FALSEが帰ってたんだと思うんだが。

 short_open_tagについては,本家のお世話-#25。で確認済み。

 一応大丈夫そうなので,アップデートしてみたんだけども,うまくいかない。<?php phpinfo() ?>で確認した時点までは問題なく,ブログもちゃんと表示されたんだが,いろんなところで,「PHP Fatal error: Maximum execution time of 30 seconds exceeded in」 が起こり,これに関連して,「エラー発生アプリケーション httpd.exe、バージョン 2.2.22.0、エラー発生モジュール php5ts.dll、バージョン 5.4.0.0、エラー発生アドレス 0x********」が記録されている。しかも,Apacheの再起動が発生する。再起動後,何事もなかったように,直前のリクエストに対するページが表示はされるのだが,どうもどこかで無理が行っている気がするので,5.3.10に戻した。

 何となく,MySQLのデータベースがらみのような気がして,昔を思い出しlibmysql.dllをsystem32に入れてみたりしたが,変化はないようだ。5.4.xはもうちょっと待ってみるかな。

追記:
 「PHP Fatal error: Maximum execution time of 30 seconds exceeded in」に関しては,単純に時間制限を緩めてやればいい気もするけど,PHP5.4のベンチマークが劇的に改善ていう報告があるのに,なんで今まで起きていなかったタイムアウトが起こるのかという疑問がある。私の理解に何か間違いがあるのか。
 誰か,助けてください。あと,何を試してみればいいんだろう。(泣)

追記2(3/5):
 WordPressのconfigのデバッグを有効にしてみたり,php.iniのエラー表示を有効にしてみたが,出てくるエラーは5.3.10のときと変わらない気がする。
 Apacheが死ぬときに,「child process exited with status」が出ているのに気付いた。このキーワードでググったら,PHPで再帰呼び出しの階層があまりに深くなりすぎると、同様のエラーログでApacheが死ぬことがあります。(Apache 2.2.4 + PHP 5.2.2で確認) — Zefard? 2007-06-06 (水) 22:26:47というのがあった。これ関係かな。

追記3(3/7):
 「Parent: child process exited with status 3221225477 — Restarting.」まるごとでググったら,Bug #50215 があって,最後のほうに, [2012-02-25 01:40 UTC] のタイムスタンプで,
   Please try using this snapshot:
    http://snaps.php.net/php5.3-latest.tar.gz
   For Windows:
    http://windows.php.net/snapshots/
   Please try a recent version without xdebug and other additional extensions.
というのがあった。で上のは5.3だけど,似たエラーはちょくちょくあるのかもしれない。現在のsnapshotはVersion: 5.4.1RC1-devだったので試してみたが,トラブルは解消しなかった。残念。

追記4(4/11):
 PHP導入についての新しい記事を,本家のお世話-#28。本家のお世話-#29。に書いた。

カテゴリー
Windows

ActivePerl+ImageMagick

投稿アップデート情報  追記(2014.2.24)

 この間書いたようにLAMP系にも触れていたいということで,XREAのフリースペースを利用している。「Ajax Edit Commentsフリー版(v.5.0.7.0)のLAMP系での使い方。」でも,4つテストしたレンタルサーバの一つとしてここで試してみた。

 で,現在のXREAのフリースペースでの私の主題目は,Perlによるcgiの勉強である。現在,私が使っているXREAのサーバのPerlのバージョンは5.8.8である。自鯖のほうでもPerl5.x.xを使っているので,cgiとしても基本的にはそれに従う方向で書く勉強をしている。そんなわけで,パッケージやモジュールを使った書き方を学ぶことになる。

 昔,齧ったことのあるPerlに比べて,モジュールのありがたさを満喫しているところだ。今まで使ってきたモジュールは,XREAのサーバにはすべて導入されていた。まぁ,標準モジュール以外で使ったのは,Image::SizeとImage::Magickだけだから,XREAあたりでは当然なのかもしれない。
 一方,自鯖のほうには,どちらも入っていなかった。Image::Sizeのほうは,Perl Package Manager(PPM)で簡単にインストールできた。Image::Magickのほうは,実はこの間アンインストールしたばかりだ。早速,再インストールした。
 見た目は似たようなブログCMSであるWordPressMovableTypeだが,大きな違いの一つはWordPressはPHPスクリプトの塊,MovableTypeはPerlスクリプトの塊ということだ。

 インストールが終ったときに,WordPressは「たったこれだけで終わりよ」みたいに簡単さを誇示しているが,WordPressしかインストールしたことがなかったら,あんまり印象に残らないアピールだろう。でも,本当に楽なほうだと思うよ。

 MovableTypeもバージョンが進むにしたがって,どんどん楽になってきていたので,極端に難しい方ではないと思うが,最初に導入したときには本当に苦労した。全く経験がなかったせいもあるが,サーバがWindowsだったので情報が少なかったということもあると思う。そして,何よりハマったのがPerlの追加モジュールのインストールだったのだ。その中でも,Image::Magickについては,いろいろと手こずった。

 ActivePerl上でのImageMagick(=PerlMagick)のインストールで気を付けるポイントは,結局のところ2つなのだ。

  1. ひとつは,使おうとしているActivePerlに対応しているバージョンのImageMagickを使うこと。
  2. もう1つは,インストール後必ずWindowsを再起動すること。

 ほかに,staticを使うかdllを使うかとか,Visual C++ 2010 Redistributable Package (x86) or Visual C++ 2010 Redistributable Package (x64)のインストールとか,x86とx64のどちらを使うかとかあるが,これについてはImageMagick(=PerlMagick)に書いてある。
 しかし,上記の2つは,結構気づかない。
 1.のほうは,ImageMagickをインストールするときに,ActivePerlv5.xx.x build xxxxに対してPerlMagickをインストールするという項目がある。ここで,前もってインストールしてあるActivePerlのバージョンが書かれていれば絶対に間違いないし,わずかにバージョンが違うだけでもダメなのだ。

 2.のほうは,本当に落とし穴で,ImageMagickインストール後にPerl Package Manager(PPM)上ではちゃんとモジュールが見えるのだが,それでもWindowsを再起動しないままで使えたことは一度もない。実際,今回もOSを再起動しないまま使ったら,Image::Magickが見つからないというエラーが出た。

 初めのころは,ほんっと,ハマったよー。おかげで,濡れ衣を着せちゃったことさえあるくらいなのだ(笑)。

追記(2014.2.24):
 ドメインを移管したので, XREA においてあったものは,なくなった。「Perlによるcgiの勉強」の報告は,スタードメインに移した。

カテゴリー
Windows

本家のお世話-#26。(Apache2.2.22へアップデート)

投稿アップデート情報  追記(4/11)

 待っていたApache Lounge版のApache2.2.22が出た。早速ダウンロード。

 News & Hangoutによると,APR 1.4.6 と zlib 1.2.6 待ちだった模様。Changelog Apache 2.2はこんな感じ。

 いろいろ変わっているんだが,httpd.confで変わっているのは,次の部分だけ。
     ***** Apache2.2.21
      427: # MaxRanges: Maximum number of Ranges in a request before
      428: # returning the entire resource, or 0 for unlimited
      429: # Default setting is to accept 200 Ranges
      430: #MaxRanges 0
     ***** Apache2.2.22
      427: # MaxRanges: Maximum number of Ranges in a request before
      428: # returning the entire resource, or one of the special
      429: # values ‘default’, ‘none’ or ‘unlimited’.
      430: # Default setting is to accept 200 Ranges.
      431: #MaxRanges unlimited
     *****

 httpd.exeをちょっと停止。展開したファイルを現在のものと置き換え。いつもログファイルの保存を忘れるので,注意。httpd.exeを再起動。

 初めてインストールする場合は,本家のお世話-#14。(Apacheの再導入)を参照してください。

追記(4/11):
 Apache導入についての新しい記事を,本家のお世話-#28。本家のお世話-#29。に書いた。

カテゴリー
Windows

MS12-004 – 緊急

 ちょっと出遅れたけど,CVE-2012-0003の件です。MicroSoftのページでいうと,MS12-004 – 緊急

 WindowsUpdateの自動更新を有効にしている場合には,疾うにパッチが落ちていると思うが,自動更新にしていない場合は,早急にあてたほうがいいと思う。

 何しろ,Windows Media Playerに関係する脆弱性だから,痛い目を見る可能性もあるかもしれない。(爆)

カテゴリー
Windows

本家のお世話-#22。(COMODO Firewallを使う)

 今日,思い出して,本家のお世話-#14。の追記に,ZoneAlarm10 Free Firewall をサーバのファイアーウォールとして使うのを断念したことを書いた。

 で,サーバのファイアウォールをどうするかということになる。本家のお世話-#13。でも書いたように,「ウイルスバスター・クラウド」+「ファイアウォールチューナー」というのはサーバのファイアウォールとしては使いにくい。まぁ,本家のお世話-#14。に書いた不具合がなくても,インストールしてみた ZoneAlarm10 Free Firewall も決して使いやすくはなかったが。

 ああでもないこうでもないとフリーファイアーウォールソフトをあさってみて,結局,COMODO Firewall Free Versionを使うことにした。

 インストールしてみたところインターフェースは割と分かりやすい。インストーラは少しカスタマイズしてインストールした。手順を画像であげておく。



 「COMODO Firewall #1」で[Agree and Install]をクリックすれば,インストールが始まるのだが,その前にボタンの下にあるリンク[Customize Installer]をクリックして,オプションを適宜設定したのち,「COMODO Firewall #1」に戻ってインストールするという手順を取った。使いだしたばかりで,手探り状態のところもあるので,参考にはならないかもしれません。