カテゴリー
Windows

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

The same article in English

 承前

SSL を有効にする。

  1. cacert.pem,server.crt,server.key を Apache conf ディレクトリにコピーする。

    cacert.pem,server.crt,server.key の作り方については, 本家のお世話-#68。(WordPress SSL ログイン-#1) を参照のこと。

    Windows7 上の cmd.exe では スラッシュ(/) でも大丈夫みたいだったので, openssl.cnf のカスタマイズのときに “” にする必要はないんじゃないかと思う。また, openssl.cnf はちゃんと openssl.conf として見えるようになりました。短縮ダイヤルのアイコンのというわけのわからない表示は,過去のものとなったようですナ。

  2. Apache extra conf ディレクトリ内の httpd-ssl.conf をカスタマイズする。
    カスタマイズ方法については 本家のお世話-#68。(WordPress SSL ログイン-#1) を参照のこと。
  3. httpd.conf をカスタマイズする。
    カスタマイズ方法については 本家のお世話-#68。(WordPress SSL ログイン-#1) を参照のこと。
  4. コントロールパネル >> 管理ツール >> セキュリティが強化された Windows ファイアウォール
    受信の規則の “Apache HTTP Server” に port 443 を追加する。

    ところで, Windows ファイアーウォールからのアラートを受容すると自動的にルールが構築される。しかし,これが甘々なのである。 今回の場合でも,デフォルトだと,すべての IP アドレス&ポート(それも, TCP だけでなく UDP まで)についてオープンしている状態になる。これじゃあんまりなので,”セキュリティが強化された Windows ファイアウォール” の機能を使って,もう少しきっちりと制限しておくべきだと思うのであった。

  5. Apache をリスタートする。

 任務完了!

カテゴリー
Windows

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

The same article in English

 承前

MySQL 5.6 のインストール

  1. mysql-5.6.12-win32.zip をダウンロードする。
  2. Zip を展開する。
  3. Drive_SV (この間サーバソフト用に作ったドライブのこと) に ディレクトリ MySQL を作る。下記のディレクトリとファイルを MySQL にインストールする。我が家の場合,はずしたものはリモートでは使わないから,余計なものはサーバに置かないというポリシーで,こうしているだけなので,展開してできたものをすべてインストールしてもかまわない。
    • ディレクトリ
        bin
        data
        include
        lib  
        share
    • ファイル
        COPYING
        my.ini  <---   my-default.ini のまま,名前を変えただけのもの。
  4. さて, my.ini をカスタマイズする。 (Creating an Option File 参照。)
        # basedir = …..  —>  basedir = Drive_SV:/MySQL   (*) backslash() ではなく slash(/)。
        # datadir = …..  —>  datadir = Drive_SV:/MyDATA
    以下の一行を追加。
        explicit_defaults_for_timestamp = true
  5. data ディレクトリ (この時点では, Drive_SV:MySQLdata となっている。) を Drive_SV: に移動し, MyDATA にリネーム。
  6. cmd.exe を管理者として起動する。
    >Drive_SV:
    >cd Drive_SV:MySQLbin
    >mysqld --console    (Starting the Server for the First Time 参照。)

    2013-07-30 08:22:26 3484 [Note] Plugin ‘FEDERATED’ is disabled.
              ・                 ・
              ・                 ・
    2013-07-30 08:22:27 3484 [Warning] No existing UUID has been found, …………
              ・                 ・
              ・                 ・
    2013-07-30 08:22:27 3484 [Note] mysqld: ready for connections.
    Version: ‘5.6.12’ socket: ” port: 3306 MySQL Community Server (GPL)

    上記以外の error や warning が出るときは, my.ini をもう一度見直す。ここで,多分 Windoes Firewall から 3303 port についての アラートが来ると思うので,しっかり確認の後,許可。

    もうひとつ cmd.exe を管理者として起動し, mysqld を止める。
    >Drive_SV:
    >cd Drive_SV:MySQLbin
    >mysqladmin -u root shutdown

  7. cmd.exe を管理者として起動する。
    >Drive_SV:
    >cd Drive_SV:MySQLbin
    >mysqld.exe --install
  8. コントロールパネル >> 管理ツール >> サービス
    MySQL を選んで開始する。
    ‘スタートアップの種類’ が ‘自動’ になっていないときは, ‘自動’ に変更しておく。
  9. Drive_SV:MySQLbin に Path を通す。

    root のパスワードを変更。

    cmd.exe を管理者として起動する。
    >mysql -u root
    >SET PASSWORD FOR root@localhost=PASSWORD(‘password’);
    > quit

    ログインできるかチェックする。
    >mysql -u root -p
    Enter password: ************
    > quit

phpMyAdmin4 のインストール。

  1. phpMyAdmin-4.0.4.2-english.zip をダウンロードする。
    Zip を展開する。
  2. ディレクトリ phpMyAdmin-4.0.4.2-english を phpMyAdmin にリネーム。
    展開ファイルの中の config.sample.inc.php を削除する。
    doc, examples, setup の 3 ディレクトリを削除する。
    使用中の config.inc.php を phpMyAdmin の中にコピーする。 (まったくの新規導入の場合は, Quick Install を参照。)

    ディレクトリ phpMyAdmin を Drive_SV に移動する。

  3. phpMyAdmin.conf を Drive_SV:Apache24confextra の中に作成する。
    phpMyAdmin.conf の内容:
         Alias /phpMyAdmin “Drive_SV:/phpMyAdmin/”

         <Directory “Drive_SV:/phpMyAdmin”>
              Options None
              AllowOverride None
              Require ip Lan IP range.
         </Directory>
         <Directory “Drive_SV:/phpMyAdmin/libraries”>
              Require all denied
         </Directory>

    httpd.conf をカスタマイズする (場所:Apache24conf)。
    Supplemental configuration 区画の最後に下記の2行を加える。
         # phpMyAdmin settings
         Include conf/extra/phpMyAdmin.conf

  4. Apache をリスタートする。
    http://xxx.xxx.xxx.xxx/phpMyAdmin にアクセスする。

         Username: root
         Password: MySQL root のパスワード

    ここで,画面の下のほうに次のような警告が出る。
         The phpMyAdmin configuration storage is not completely configured,
        some extended features have been deactivated. To find out why click here.

    phpMyAdmin configuration storage の構築を完了するために,使用中の database phpmyadmin をインポートする (まったくの新規導入の場合は, phpMyAdmin configuration storage phpMyAdmin 環境保管領域を参照)。

  5. Log out 後 log in すると,警告は消えている。
  6. root@localhost 以外のユーザは削除する。

    WordPress 用の user(WP-User) と database(WPdatabase) を作っておく。
    WP-user には, Grant 以外のすべての Global privileges を与える。 WP-user には, Grant 以外の WPdatabase privileges は与えるが, Global privileges は一切与えないこと。 collation は utf8_general_ci にする。

  7. Log out。
カテゴリー
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

本家のお世話-#56。(AWStats7.1へのアップデート)

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

 AWStats7.1 が出ているので,アップデートしようと思い立った。いろいろすぐれた解析サイトもただで使える時代なのに,無理して AWStats 使わなくてもという意見もあるだろうけど……。 Win サーバなので,当然ながら awstats-7.1.zip を落としてくる。そういえば, ActivePerl もバージョンがかわっていたよなと思い出し, ActivePerl-5.16.1.1601-MSWin32-x86-296175.msi を落としてきて,これを先にインストール。

 ActivePerl-5.16.1.1601-MSWin32-x86-296175.msi をいつもの通り,いつもの場所に上書きインストールしようとしたら,「互換性がありませんので,別のディレクトリにインストールしてください」が出た。これ変えると, cgi の先頭パスを 全部変えなくてはいけない。最近, LINUX の勉強をしていて,こういうときは SymLink の貼り替えを使うみたいなので, Win だとショートカットを作ればいいのだろうか,それとも,通すパスだけやり替えてやればいいのかななどと考えたが,面倒になって前バージョンをアンインストールしてから,新バージョンをインストールした(爆)。インストールがうまくいったかどうかの確認の仕方は,「本家のお世話-#28。」と同じ。

 さて, AWStats7.1 のほうだが,まず使用中の awstats.myserverdomain.conf と awstats.model.conf を WinMerge で比較。カスタマイズのために変更した以下のところ以外違いはなかったので, awstats.myserverdomain.conf をそのまま使用する。うちのサーバの場合は,以下の6ヵ所を書き換えている。

  • LogFile=”/var/log/httpd/mylog.log”
  • SiteDomain=””
  • HostAliases=”localhost 127.0.0.1 REGEX[myserver.com$]”
  • DNSLookup=2
  • DirIcons=”/icon”
  • AllowAccessFromWebToFollowingIPAddresses=””

DNSLookup=2 や DirIcons=”/icon” については,環境が許せば,特に変えなくてもいいんだけど。

 使用中の httpd-awstats.conf も特に問題がないので,このまま使う。

 うちではいろいろなツールを使っていないので,使っている .pl は実は awstats.pl だけ(キッパリ←そんなとこで威張ってどうすんだ)。というわけで, awstats.pl の1行めを自分のサーバのperlの置き所のパスに直す。
(#!ドライブ文字:/~/~/perl なんちゃらです。)

 あとは,設置。普通に使える。と,思ったら大きな間違いだった。またまた,

  1. OSの参照がすべて不明になる
  2. 検索文字列が一切捕捉されない

になっちゃいまして(泣)。で, http://vouters.dyndns.org/public/awstats-7.0.pl.diff.tar.gz ( <--- これは,AWStats7.0 かつ ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi のパッチ )を参考にして,自前パッチを作っちゃった(もとがさほど変わっていないから,そんな大層なものじゃないが―汗)。使う方は,どうぞ。これです。
 下の追記のように,7.1.1にアップデートしてから,パッチなしでちゃんと動いている。

 ここで, Win 上でのパッチの当て方を書いておく。この間,ドボンしているので,リベンジ。

  1. patch-2.5.9-7-bin.zip を落としてくる。
  2. zip を展開して, patch.exe をゲット。
  3. patch.exe の使い方だが,コマンドプロンプトから使う。今回, Win8 上で使ったが, patch.exe を普通のディレクトリに置いておけば,コマンドプロンプトを管理者として起動する必要はなかった。また,しょっちゅう使うなら,パスを通しておいてもいいが,一番簡単なのは, pachh.exe , awstats.pl , awstats.pl.diff を一つのディレクトリに入れておいて, cd コマンドでそのディレクトリに移動してから,
         patch -u awstats.pl awstats.pl.diff
    を走らせる。瞬時で終わる。ハヤッ。

 この間,沈没した原因は, -u (diffがユニファイドだった)を使わなかったのと,間違って –binary オプションをつけたせいらしい。それから, diff ファイルの改行コードが LF だとうまくいかなかった。また,完成した awstats.pl の改行コードも CR+LF に変わってしまうので,必要ならば,後で直すこと。 ActivPerl , AWStats とも我が家と同じバージョンで,同じ障害が出る場合,上の zip を落として, diff を使ってみてください。うまくいくかどうかは,わかりません(断言―大汗)。

 それから,書き落としましたが, patch.exe を走らせる前に,awstats.pl と awstats.pl.diff の行指定が違っていないか,確認してください。

追記(4/24):
 Mar-08@20:19UTC に Ver.7.1.1 が出たが,これにアップデートしてから,上記のパッチ当てなしで,ちゃんと,動くようになった。