カテゴリー
Windows

Windows7上にWamp系WebServerを建てる-#2。

The same article in English
投稿アップデート情報  追記(12/27)  追記2(2014/3/24)

 承前

ActivePerl のインストール。

  1. ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi をダウンロードする。
  2. ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi を Drive_SV (この間サーバソフト用に作ったドライブのこと) にデフォルトでインストールする。
  3. cmd.exe を起動する。
    >perl -v
    バージョン情報が返ってくれば, Perl に Path が通っている。
  4. printenv.pl (場所:Apache24cgi-bin) をの1行目を書き換える。
    #!D:/programs/perl/bin/perl.exe  —>  #!Drive_SV:/Perl/bin/perl.exe

    printenv.pl を Apache24cgi-bin から drive_DC:WEBcgi-bin に移動する。
    ブラウザから http://xxx.xxx.xxx.xxx/cgi-bin/printenv.pl にアクセスする。

    サーバ環境変数のリストが表示されれば,インストールは完了。

  5. printenv.pl を削除する。
  6. (*) エイリアスを切ってある cgi-bin 外で CGI scripts を使いたい場合は, AddHandler の設定が必要である。: (この場合, “Options” directive に “ExecCGI” の追記もいると思う。)

PHP5.5 のインストール。

  1. この間6月20日の日に,ついに PHP5.5 が出たが, 5.5 からは WindowsXP をサポートしないということで,使ってみたくても使えなかった。それは前からわかっていたことで,そのために CentOS の練習をしたりしたいたわけだが,今,目の前には, Windows7 の載った Xw4200 がある。ということで, php-5.5.1-Win32-VC11-x86.zip をダウンロード。相変わらず, Apache+Windows の構成だから, thread safe バージョンである。この辺については, PHP の install.txt に書いてあるので各自読んでいただきたい。
    Zip を展開する。
    ディレクトリ php-5.5.1-Win32-VC11-x86 を PHP にリネーム。
  2. php.ini-production を php.ini としてコピーし,カスタマイズする (場所:PHP)。
      デフォルト カスタム
    1 ;default_charset = "UTF-8" default_charset = "UTF-8"
    2 ; extension_dir = "ext" extension_dir = "Drive_SV: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 = My email address
    12 ;mbstring.language = Japanese mbstring.language = Japanese
    13 ;mbstring.internal_encoding = UTF-8 mbstring.internal_encoding = UTF-8
    14 ;mbstring.http_input = UTF-8 mbstring.http_input = pass
    15 ;mbstring.http_output = pass 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 については,自鯖の環境の関係でこうしてあるので,デフォルトのままでも構わないはず。各自の環境で対処してください。

    セキュリティのため,以下の3つを変更した。 19 と 21 については,環境によっては,不具合が生じることがあるかもしれない(追記:12/27)。

      デフォルト カスタム
    19 output_buffering = 4096 output_buffering = Off
    20 expose_php = On expose_php = Off
    21 mysql.allow_persistent = On mysql.allow_persistent = Off
  3. ディレクトリ PHP を Drive_SV に移動する。
  4. php55.conf を Drive_SV:Apache24confextra に作成する。
    php55.conf の内容:
         LoadModule php5_module “Drive_SV:/PHP/php5apache2_4.dll”
         AddHandler application/x-httpd-php .php
         PHPIniDir “Drive_SV:/PHP”

    httpd.conf をカスタマイズ (場所:Apache24conf)。
         DirectoryIndex index.html  —>  DirectoryIndex index.php index.html
    さらに Supplemental configuration 区画の最後に下記の2行を加える。
         # PHP settings
         Include conf/extra/php55.conf

  5. test.php を drive_DC:WEBhtdocs に作成。
    test.php の内容:
         <?php phpinfo() ?>
  6. Apache をリスタートする。

    ブラウザで http://xxx.xxx.xxx.xxx/test.php にアクセスする。

    phpinfo リストが表示されれば,インストール完了。

  7. test.php を削除する。
  8. php.ini のカスタマイズ (場所:PHP)。
         ;disable_functions =  —>  disable_functions =”shell_exec, suexec, passthru, phpinfo”
  9. Apache をリスタートしておく。

追記2(2014/3/24):
 2013.12.27 から Opcache を使っている。 PHP スクリプト多用のサイト運営の場合は,そちらもどうぞ。「本家のお世話-#90。(Opcacheを使う)

カテゴリー
Windows

Windows7上にWamp系WebServerを建てる-#1。

The same article in English
投稿アップデート情報  追記(8/11)

 昨日書いたように, Windows7HP+SP1(x86) が載ったデスクトップを手にしたわけで,しめしめと,新 Wamp 系 WebServer の構築に取り掛かった。

 手始めに,ハードディスク上にパーティションを2つ切った。サーバ・ウェア用のドライブ (Drive_SV) と他のサイト用のファイルのドライブ (drive_DC) にするためだ。

 ところで,作業の間に何度か Windows ファイアーウォールからアラートが来ると思うが,その場合は,間違いなく必要であることを確認のうえ,「許可」すること。じゃ,始めます。

Apache のインストール。

  1. httpd-2.4.6-win32-VC11.zip (= Apache2.4.6)を落とす。
    この zip の場合, VC11 が必須なので,vcredist_x86.exe をダウンロードしてインストールする。
    zip を展開する。
  2. 展開ファイル内の httpd.conf をカスタマイズする (場所:Apache24conf)。
      デフォルト カスタム
    1 ServerRoot “c:/Apache24” ServerRoot “Drive_SV:/Apache24”
    2 ServerAdmin admin@example.com ServerAdmin 私のメールアドレス
    3 #ServerName www.example.com:80 ServerName local IP アドレス:80
    4 DocumentRoot “c:/Apache24/htdocs” DocumentRoot “drive_DC:/WEB/htdocs”
    5 <Directory “c:/Apache24/htdocs”> <Directory “drive_DC:/WEB/htdocs”>
    6 Options Indexes FollowSymLinks Options FollowSymLinks
    7 ErrorLog “logs/error.log” ErrorLog “|bin/rotatelogs.exe -l -f logs/error.%Y.%m.%d 86400”
    8 CustomLog “logs/access.log” common # CustomLog “logs/access.log” common
    9 #CustomLog “logs/access.log” combined CustomLog “|bin/rotatelogs.exe -l -f logs/access.%Y.%m.%d 86400” combined
    10 ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/” ScriptAlias /cgi-bin/ “drive_DC:/WEB/cgi-bin/”
    11 <Directory “c:/Apache24/cgi-bin”> <Directory “drive_DC:/WEB/cgi-bin”>
    12 Require all granted Require ip Lan IP range (cgi-bin へのアクセス制限として)
    13   ServerTokens Prod
  3. Apache24 フォルダをそっくり Drive_SV に移動する。
  4. cmd.exe を管理者として起動。
    >cd Drive_SV:Apache24bin
    >httpd.exe -t
    この段階でエラーが出るようなら,先に進む前に,もう一度確認すること。

    サービスとして登録する。
    >httpd.exe -k install
    ApacheMonitor.exe ショートカットを Windows スタートアップの中に作り,Apache をスタート。

  5. index.html を Apache24/htdocs から drive_DC:WEBhtdocs に移動する。
    ブラウザから, http://localhost/ にアクセスする。
    “It works!” が帰ってくれば,インストールは完了。
  6. 先ほどの index.html を削除する。

追記(8/11):
 ここのところ, Apache のハングアップに悩まされていた。で,そのときのエラーメッセージが相変わらず,「(OS 64)指定されたネットワーク名は利用できません。 : AH00341: winnt_accept: Asynchronous AcceptEx failed.」。というわけで, httpd.conf に下記の行を加えてみた。(参照:AcceptFilter ディレクティブ)<--- 先に英語版を読んでから,それの日本語版へのリンクを貼ったが,肝心な点ついての情報量が大分違うことに今気づいたので,英語版へのリンクも貼っておきます。

   <IfModule mpm_winnt_module>
      AcceptFilter http none
      AcceptFilter https none
   </IfModule>

カテゴリー
Windows

WinXpPro+SP3(x86) から Win7HP+SP1(x86) にアップグレード。

The same article in English

 2014年4月8日には, Windows XP のサポートが完全に終わることになっている。で,それまでにサーバ OS を CentOS にでも変えようと思っていた。ところがさ,「Microsoft Windows 7 Home Premium アップグレード版 Service Pack 1 適用済み」 DVD を貰っちゃったんですよね。まっ,完全なる移譲だから,ライセンス的にも問題ないと思う。

 そんでもって,さっそく HP xw4200 Workstation にインストールしてみた。これは,この辺にも書いたことのあるマシンで,前にはサーバ用に使っていたヤツね。

 アップグレードするには,ターゲット OS がないといけないので,ひとまず, WinXpPro+SP3(x86) をインストールしたのち,アップグレード。言わずもがなだけど, Win7 はWinXP の環境を引き継げないので,新規インストール(カスタム)しか選べない。要するにクリーン・インストールと同じになる。今回の場合,我が家では,これは願ってもないことでっせ。

 スペック的にも問題ないので,簡単に終わると思ったんだが,下のエラーメッセージが頻発しちゃってさ。(泣)
     ***Hardware Malfunction
     Call your hardware vendor for support
     NMI:Parity Check / Memory Parity Error
     ***The system has halted***

 Memtest86+ を使ったり,メモリ差し替えてみたりといろいろやったんだけど,変化なし。

 ところが,こんな記事見つけた。もー,どんぴしゃり。題名だけじゃなくて, HP のデスクトップで, Intel のボードの場合って書いてあるんだもん。記事は, “***Hardware Malfunction Call your Hardware Vendor for Support NMI: Parity Check/Memory Parity Error *** The system has halted ***” です。 (元が消えるといけないので,PDF file も作っておいた。)

 この解決策をやったら,なんとか Windows7 インストール完了。まだ,上記のエラーは心配なんだが,今のとこ,うまくいってるみたい。

 というわけで,サーバ用のマシンに, Win7 が載ったわけよ。Windows7 だと,サポートは 2020年までだよ,今の時点でもさ。軟弱者としては, CentOS サーバの代わりに Win7 サーバを建てちまおうかと,今考えているとこ。なんちゅっても,Win っ子だからねぇ。 (^^;)

カテゴリー
Windows

本家のお世話-#71。(Apache 2.4.6へアップデート)

The same article in English

 Apache HTTP Server 2.4.6 が出た。 vhost のマッピングを破壊するということで,結局配布が取りやめになった 2.4.5 で終わっていたバグフィクスと, 2.4.5 での不具合の修正が行われているようだ。

 いつも通り, VC9 用の httpd-2.4.6-win32-VC9.zip (16 Jul) を我が家のサーバ用 (WindowsXP SP3 (x86)) に落とす。新 httpd.conf では以下の4行が追加されていた。
————————————————————————————————————————————————
   #LoadModule auth_form_module modules/mod_auth_form.so
   #LoadModule cache_socache_module modules/mod_cache_socache.so
   #LoadModule macro_module modules/mod_macro.so
   #LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

カテゴリー
Windows

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

The same article in English

 Jul-03 @23:29:25UTC に, php-5.4.17-Win32-VC9-x86.zip が出たので,いつもの作業。我が家用 (WindowsXP SP3 (x86)) として,VC9 x86 Thread Safe 版の php-5.4.17-Win32-VC9-x86.zip を落としアップデート。

 まあ,いくつかバグフィックスがあるようだが,それよりも, PHP 5.5.0 が出ちゃいました。前々からアナウンスされてた通り, WindowsXP は,もはや,サポート対象外。近いうちに,というか 2014/Apr/8 までには,サーバの再構築しなくてはなぁ。

 PHP5.4.17へアップデート作業としてはいつも通り。 5.4.10 からは php5apache2_4.dll が同梱されるようになったし,php.ini-production も前バージョンから変更点なしなので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「本家のお世話-#28。」を参考にしてください。

カテゴリー
WordPress

覚え書-#14。

The same article in English

 o6asan’s Web Site のナビバーがキチキチになってきたので,より必要性の少ないものは,削除することにした。

  1. o6asan’s Web Site のテーマの header.php を開けて,
  2. <?php wp_list_pages(‘title_li=&depth=2&sort_column=menu_order’) ?>
    —>
       <?php wp_list_pages(‘exclude=xx,yy&title_li=&depth=2&sort_column=menu_order’) ?>

    xx は “Home” のID。
    yy は “My server’s restoration note” のID。

 これで,空きができた。

カテゴリー
WordPress

覚え書-#13。

The same article in English

 忘れないように。

  1. Apache について
     httpd.conf に “ServerTokens” を入れるのを忘れてたので, “ServerTokens Prod” を追加。
  2. FireFox について
    “network.prefetch-next” という機能があるのだが,これのデフォが true 。なんか悪いものに感染したサイトを前もって,読み込まれるといやなので, false に変更。

    “plugins.click_to_play” についても, true に変更。

    まぁ,どっちも過剰防衛って気もするが,どちらについても, “about:config” から変更できる。 ha-ha。

  3. WordPress について
    WordPress 3.5.2 が出た。セキュリティリリースということらしい。 wordpress-3.5.2-ja.zip を落としてアップデート。前にも書いたが,アップデートページに日本語バージョンが表示されないので,自動でできない。多分,マルチサイトのデフォルト言語が英語になっているせいだと思う。とにかく,いつも手動アップデートになる。

    何事もなかったが, swfupload-all.js がなくなっているのに,気づいた。

    xrea の s370 と @pages の www39 でもアップデートしておいた。こちらも特に問題なし。ただし,いつものことながら, @pages の www39 では相変わらず,自動アップデートはできなかった。

    ついでに, phpMyAdmin も phpMyAdmin4.0.4 にした。

カテゴリー
WordPress

本家のお世話-#69。(WordPress SSL ログイン-#2)

The same article in English

 さて, WordPress のほうの設定。こっちはやったことがないので,どうなることかと思っていたが,「産むが易し」で, Administration Over SSL に書いてある通りで,特に問題なかった。

 ”define(‘FORCE_SSL_LOGIN’, true);” のほうだけ設定した。なんといっても,自鯖はもともと遅いので, “define(‘FORCE_SSL_ADMIN’, true);” はやめといたほうがいいだろうと思ったわけだ。 (^^;)

 ログインページにアクセスしたら,瞬時に「複数サイト機能はポート番号を含まない URL のみで動作します」というメッセージが戻ってきた。仕方がないので, xxxxx にしていたポートをデフォルトに戻した(^^;)。で, SSL 越しにログインできるようになった。

 まあ, rewrite rule なんかももう少し勉強したほうがいいんだろうけど,今のところはここまで(汗)。

カテゴリー
WordPress

本家のお世話-#68。(WordPress SSL ログイン-#1)

The same article in English
投稿アップデート情報  追記(6/19)

 前に書いたが, WordPress のログインを自宅 LAN からのみ可にしていた。しばらく,これでやっていたが,やはり,不便。なので,この際,使っている WiFi 端末からログインできるようにしようと思うのだが, WordPress のパスワードを平文で流すのは日頃のポリシーに反する。で,サーバ (WindowsXP SP3 (x86)) 上で停止していた SSL 対応を復活してやろうと思い立った。もともと, Apache 2.4 win32 binaries は,Build with apr-1.4.6 apr-util-1.4.1 apr-iconv-1.2.1 openssl-1.0.1e zlib-1.2.7 pcre-8.32 libxml2-2.9.0 lua-5.1.5 expat-2.1.0 だし, WordPress のログインに私が使うだけなので,自前認証局を作成して Apache の mod_ssl を使えばいいかと思った。

 まずは,自前認証局のために, cakey.pem と cacert.pem を作る。普通, Windows 上では CA.pl を使うのだが, Apache 2.4 win32 binaries には CA.pl が入っていなかった。というわけで, openssl.exe をコマンドラインで使うことにする。どうやったらいいかは, the document page (魚拓です)にあった。

  1. サーバのどこかに自前認証局用のディレクトリ myCA を作成。 myCA の中には, private と newcerts の2つのディレクトリと,空の index.txt を作成しておく。実のところ, myCA はリムーバル・メディア上に作った。これだと,後で my_ca.crt と clientcert.p12 をクライアント用のパソコンに移動するのも簡単だし,自前認証局保管のためには,パソコンから切り離しておけば安全でもある。
  2. Apache conf ディレクトリに openssl.cnf がある。 WindowsXP だと, openssl.cnf は拡張子なしの openssl になっていて,しかもファイルタイプが “短縮ダイヤル” になっている。昔これで悩んだんだよねぇ。これを開けてカスタマイズする。 WindowsXP 上だと,セパレータを “/” から “” に変える作業をやっとかないと,下記のエラーが出る。 M$ の最近の cmd.exe だと “/” もちゃんと認識してくれるようだが, WinXP 上の cmd.exe ではダメ。さらに, はエスケープしておいてやらないといけないので, “” ということになる。

    Error opening CA private key ./myCA/private/cakey.pem
    3464:error:02001003:system library:fopen:No such process:.cryptobiobss_file.c:398:fopen(‘./myCA/private/cakey.pem’,’rb’)
    3464:error:20074002:BIO routines:FILE_CTRL:system lib:.cryptobiobss_file.c:400:
    unable to load CA private key

    openssl.cnf のカスタマイズ:

         RANDFILE = $ENV::HOME/.rnd —> RANDFILE = $ENV::HOME.rnd
         #oid_file = $ENV::HOME/.oid —> #oid_file = $ENV::HOME.oid

         dir = ./demoCA —> dir = (drive xx):myCA   (絶対パスじゃないとダメみたい)
         certs = $dir/certs —> certs = $dircerts
         crl_dir = $dir/crl —> crl_dir = $dircrl
         database = $dir/index.txt —> database = $dirindex.txt

         new_certs_dir = $dir/newcerts —> new_certs_dir = $dirnewcerts

         certificate = $dir/cacert.pem —> certificate = $dircacert.pem
         serial = $dir/serial —> serial = $dirserial
         crlnumber = $dir/crlnumber —> crlnumber = $dircrlnumber

         crl = $dir/crl.pem —> crl = $dircrl.pem
         private_key = $dir/private/cakey.pem —> private_key = $dirprivatecakey.pem
         RANDFILE = $dir/private/.rand —> RANDFILE = $dirprivate.rand

    もし, TSA (Time Stamping Authority) を使うなら,同じように [ tsa_config1 ] のとこをカスタマイズ。

    RSA private key のデフォルトとして, 2048 ビットを使うので,
         default_bits = 1024 —> default_bits = 2048

    ところで, (drive x):(Apache bin dir) へのパスを通していない。このためにしか使わないので,サーバ上で余計なパスを追加したくないからだが,この辺は私の流儀なので,各自の流儀でやってください。

  3. cmd.exe を起動する。
         >cd (drive xx):myCA
         >copy index.txt+   (UNIX touch コマンドの代わりに使う)
         >echo 01 > serial   (01 が書き込まれた serial ファイルがいるので)
         >(drive x):(Apache bin dir)openssl req -new -keyout privatecakey.pem -out careq.pem -config (drive x):(Apache conf dir)openssl.cnf

         Enter PEM pass phrase: xxxxxxxxxxxxxxxx   (cakey.pem 用の pass phrase)
         Verifying – Enter PEM pass phrase: xxxxxxxxxxxxxxxx   (cakey.pem 用の pass phrase)

         Country Name:JP   (今回作るすべてのキーで同一)
         State or Province Name:FUKUOKA   (今回作るすべてのキーで同一)
         Locality Name:FUKUOKA   (今回作るすべてのキーで同一)
         Organization Name:o6asan’s Web Site
         Organizational Unit Name:myCA
         Common Name:o6asan.com   (ここは省略不可)
         Email Address:私のメールアドレス

         A challenge password: 省略
         An optional company name: 省略

  4. CA extensions を使って, certificate request の自己署名:
         >(drive x):(Apache bin dir)openssl ca -config (drive x):(Apache conf dir)openssl.cnf -selfsign -in careq.pem -extensions v3_ca -out cacert.pem

         Enter pass phrase for (drive xx):myCAprivatecakey.pem: xxxxxxxxxxxxxxxx   (cakey.pem 用の pass phrase)

         Sign the certificate? [y/n]: y
         1 out of 1 certificate requests certified, commit? [y/n] y

         >copy cacert.pem (drive x):(Apache conf dir)   (サーバ用の cacert.pem)
         >copy cacert.pem my_ca.crt   (クライアント用の my_ca.crt)

 server.key と server.crt を作る。

  1.      >(drive x):(Apache bin dir)openssl req -new -keyout server.key -out server.csr -config (drive x):(Apache conf dir)openssl.cnf

         Enter PEM pass phrase: xxxxxxxxxxxxxxxx   (server.key 用の pass phrase)
         Verifying – Enter PEM pass phrase: xxxxxxxxxxxxxxxx   (server.key 用の pass phrase)

         Country Name:JP   (今回作るすべてのキーで同一)
         State or Province Name:FUKUOKA   (今回作るすべてのキーで同一)
         Locality Name:FUKUOKA   (今回作るすべてのキーで同一)
         Organization Name:o6asan’s Web Site
         Organizational Unit Name:WordPress
         Common Name:o6asan.com   (ここは省略不可)
         Email Address:私のメールアドレス

         A challenge password: 省略
         An optional company name: 省略

  2. certificate request の署名:
         >(drive x):(Apache bin dir)openssl ca -in server.csr -out server.crt -config (drive x):(Apache conf dir)openssl.cnf

         Enter pass phrase for (drive xx):myCAprivatecakey.pem: xxxxxxxxxxxxxxxx   (cakey.pem 用の pass phrase)

         Sign the certificate? [y/n]: y
         1 out of 1 certificate requests certified, commit? [y/n] y

         >copy server.crt (drive x):(Apache conf dir)

  3. Win32 は SSLPassPhraseDialog builtin をサポートしていないので, server.key の pass phrase を復号しておかないと, Apache の起動時にエラーが出る。 getting rid of an error at Apache startup time (PDF 版)を参考にして, server.key を作り直す。

         >copy server.key cp_server.key
         >(drive x):(Apache bin dir)openssl rsa <cp_server.key> (drive x):(Apache conf dir)server.key

         Enter pass phrase: xxxxxxxxxxxxxxxx   (server.key 用の pass phrase)

 最後に clientcert.p12 を作る。これは,クライアント認証用である。

  1.      >(drive x):(Apache bin dir)openssl req -new -keyout client.key -out client.csr -config (drive x):(Apache conf dir)openssl.cnf

         Enter PEM pass phrase: xxxxxxxxxxxxxxxx   (client.key 用の pass phrase)
         Verifying – Enter PEM pass phrase: xxxxxxxxxxxxxxxx   (client.key 用の pass phrase)

         Country Name:JP   (今回作るすべてのキーで同一)
         State or Province Name:FUKUOKA   (今回作るすべてのキーで同一)
         Locality Name:FUKUOKA   (今回作るすべてのキーで同一)
         Organization Name:o6asan’s Web Site
         Organizational Unit Name:Administration
         Common Name:o6asan   (ここは省略不可)
         Email Address:私のメールアドレス

         A challenge password: 省略
         An optional company name: 省略

  2.      >(drive x):(Apache bin dir)openssl ca -in client.csr -out client.crt -config (drive x):(Apache conf dir)openssl.cnf

         Enter pass phrase for (drive xx):myCAprivatecakey.pem: xxxxxxxxxxxxxxxx   (cakey.pem 用の pass phrase)

         Sign the certificate? [y/n]: y
         1 out of 1 certificate requests certified, commit? [y/n] y

  3. クライアント用に pkcs12 フォーマットのファイルを作る。
         >(drive x):(Apache bin dir)openssl pkcs12 -export -in client.crt -inkey client.key -out clientcert.p12

         Enter pass phrase for client.key: xxxxxxxxxxxxxxxx   (client.key 用の pass phrase)
         Enter Export Password: xxxxxxxxxxxxxxxx   (クライアント PC 用のパスワード)
         Verifying – Enter Export Password: xxxxxxxxxxxxxxxx   (クライアント PC 用のパスワード)

    cmd.exe を閉じる。

 これで, Apache conf ディレクトリに cacert.pem, server.crt, server.key ができ,リムーバルメディア上の myCA 内には, my_ca.crt と clientcert.p12 がある。この5つがあれば,クライアント認証も使える。

 カレントの httpd.conf の以下の行をアンコメントする。

  • LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
  • LoadModule ssl_module modules/mod_ssl.so
  • Include conf/extra/httpd-ssl.conf

 Apache extra conf ディレクトリにある httpd-ssl.conf をカスタマイズする。
     Listen 443 —> Listen xxxxx   (443のままでも構わない)

     <VirtualHost _default_:443> —> <VirtualHost _default_:xxxxx>
     DocumentRoot “c:/Apache24/htdocs” —> DocumentRoot “自鯖のドキュメントルート”
     ServerName www.example.com:443 —> ServerName o6asan.com:xxxxx
     ServerAdmin admin@example.com —> ServerAdmin 私のメールアドレス
     ErrorLog “c:/Apache24/logs/error.log”
     —> ErrorLog “|bin/rotatelogs.exe -l -f logs/error.%Y.%m.%d 86400″ (自鯖のフォーマットで)
     TransferLog “c:/Apache24/logs/access.log”
     —> TransferLog “|bin/rotatelogs.exe -l -f logs/access.%Y.%m.%d 86400″ (自鯖のフォーマットで)

     #SSLCACertificateFile “c:/Apache24/conf/ssl.crt/ca-bundle.crt”
     —> SSLCACertificateFile “C:/Apache24/conf/cacert.pem”

     #SSLVerifyClient require —> SSLVerifyClient require
     #SSLVerifyDepth 10 —> SSLVerifyDepth 10 SSLVerifyDepth 1

     <Directory “c:/Apache24/cgi-bin”> —> <Directory “自鯖の cgi-bin ディレクトリ”>

 Apache を再起動。
 my_ca.crt と clientcert.p12 を WiFi 端末 のブラウザにインポート。

 あとは, WordPress のセッティングだが,こっちの方がやったことないので,大変そうだ。

追記(6/19):
 この後, SSL で WordPress にログインしようとしたら,即座に「複数サイト機能はポート番号を含まない URL のみで動作します」というメッセージが戻ってきた。仕方がないので, xxxxx にしていたポートをデフォルトに戻した。(^^;)

カテゴリー
Windows

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

 まあ,よくアップデートのでる PHP だけど, Jun-05 @22:49:25UTC に PHP5.4.16 が出たので,いつもの作業。我が家用 (WindowsXP SP3 (x86)) として,VC9 x86 Thread Safe 版の php-5.4.16-Win32-VC9-x86.zip を落としアップデート。

 ChangeLog によれば, CVE-2013-2110 へのパッチも入っている模様。

 5.4.10 からは php5apache2_4.dll が同梱されるようになったし,php.ini-production も前バージョンから変更点なしなので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「本家のお世話-#28。」を参考にしてください。

 ついでに, phpMyAdmin4.0.3 もやっておいた。