カテゴリー
Windows

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

The same article in English

 Apache HTTP Server 2.4.7 が出たので,アップデート。チェンジログ,いっぱい。 Steffen のところの「 Apache 2.4.7 available 」を見ると, Windows 関連でもいい話もあるみたいだ。

 VC11 用の httpd-2.4.7-win32-VC11.zip (22 Nov) を我が家用 ( Windows7 x86 ) にダウンロード。 Apache 2.4.x conf 情報が必要な方は,「Windows7上にWamp系WebServerを建てる-#1。」を見てください。

カテゴリー
Windows

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

The same article in English

 Nov-13 20:57:44UTC に PHP5.5.6 が出た。

 ChangeLog によれば,バグフィックスがいくつかと,若干のパフォーマンス改善があるらしい。

 いつもどおり,我が家用 (Windows7HP+SP1(x86)) として,VC11 x86 Thread Safe 版の php-5.5.6-Win32-VC11-x86.zip を落としアップデート。 VC11 がいるので,インストールがまだの場合は PHP のコンフィグの前に vcredist_x__.exe を入れておく必要がある。

 php.ini-production は PHP の コメント文のシンボル ; の前に半角スペースが入っていたとかで,一ヶ所変わっていた。 bug #65939 ( —> [; size of the optimized code.])。で,自分とこの php.ini の中も訂正しておいた。自鯖には無関係のとこだったが,いつか関係するようになるかもしれんし。

 php5apache2_4.dll はオフィシャルバイナリに含まれているので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「Windows7上にWamp系WebServerを建てる-#2。」を参考にしてください。

カテゴリー
Windows

本家のお世話-#82。(Apache で mod_deflate を使う)

The same article in English

 昨日, Apache の設定をいくつか変えた。

 httpd.conf を開けて

  1. HTTP 圧縮を使うために,モジュール mod_deflate の行をアンコメントする。
       LoadModule deflate_module modules/mod_deflate.so
  2. ディレクティブ AddOutputFilterByType (リンク先には,今のところ日本語なし) を使うために,以下の行をアンコメントする。
       LoadModule filter_module modules/mod_filter.so
  3. ディレクティブ Header を使うために,以下の行をアンコメントする。
       LoadModule headers_module modules/mod_headers.so
  4. モジュール mod_expires の行をアンコメントする。
       LoadModule expires_module modules/mod_expires.so

 次の行を httpd.conf に付け加える。この件では,まだよくわからないことがいろいろあるんだが,まあ。
  # Enables generation of Expires headers
  ExpiresActive On
  # expire images and some applications after a month in the client’s cache
  ExpiresByType image/gif A2592000
  ExpiresByType image/jpeg A2592000
  ExpiresByType image/png A2592000
  ExpiresByType text/javascript A2592000
  ExpiresByType text/css A2592000
  ExpiresByType application/javascript A2592000
  ExpiresByType application/x-font-woff A2592000
  # HTML documents are good for a week from the time they were changed
  ExpiresByType text/html M604800
  ExpiresByType text/plain M604800
  ExpiresByType text/xml M604800
  # Enabling Compression
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/javascript
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4.0[678] no-gzip
  BrowserMatch bMSIEs(7|8) !no-gzip !gzip-only-text/html
  # Make sure proxies don’t deliver the wrong content
  SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ dont-vary
  Header append Vary User-Agent env=!dont-vary

カテゴリー
Windows

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

The same article in English

 Oct-17 00:30:06UTC に PHP5.5.5 が出た。

 ChangeLog によれば,20程度のバグフィックスがあり,そのうちのいくつかはビルド関係らしい。

 いつもどおり,我が家用 (Windows7HP+SP1(x86)) として,VC11 x86 Thread Safe 版の php-5.5.5-Win32-VC11-x86.zip を落としアップデート。 VC11 がいるので,インストールがまだの場合は PHP のコンフィグの前に vcredist_x__.exe を入れておく必要がある。

 php.ini-production には実質的な変更はないが,”; This is php.ini-production INI file.” というコメント行が1行増えていた。

 php5apache2_4.dll はオフィシャルバイナリに含まれているので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「Windows7上にWamp系WebServerを建てる-#2。」を参考にしてください。

カテゴリー
Windows

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

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

 Sep-18 23:44:17UTC に PHP5.5.4 が出た。

 PHP 5.5.3 のバグ・フィックスだけらしい。 ( ChangeLog )

 といいながら, php.ini-production の中身は,下記のように,若干変わっていた。

 short_open_tag について
———————————————————————————————————————————————
PHP5.5.3 では —
; このディレクティブは, <? と ?> に挟まれた部分を PHP ソースとして扱うかどうかを判断します。
; ここ何年か,ショートタグ <? ?> の代わりに,フルタグ <?php ?> を使うことが推奨されてきました。
; XML などのように, PHP 以外でこのタグを使うものが増えたため,サーバ上で混乱が起き,間違った解釈が
; 起こることが多くなっています。長い間使われてきた機能であるため,ショートタグは今も以前のバージョンとの
; 互換性を保つために残されています。
; しかし,できる限りこの機能を使わないようお願いいたします。
———————————————————————————————————————————————
PHP5.5.4 では —
; このディレクティブは, <? と ?> に挟まれた部分を PHP ソースとして扱うかどうかを判断します。
; 以前のバージョンとの互換性を保つために,いまだにサポートが続いている機能ですが, XML との併用時の
; 不具合を回避するために,通常はこの機能を使わず,フルタグ <?php ?> を使用してください。
; (注)このディレクティブは shorthand タグ <?= とは関係ないことに注意してください。
;   <?= はここの設定にかかわりなく,使用できます。
———————————————————————————————————————————————

ということなんだが,面白い話を mail-archive.com で見つけた。新しいショートタグが生まれちゃったりして!!

 やっと,session.use_strict_mode についても出現
———————————————————————————————————————————————
PHP5.5.3 では —
 当然ながら,記述なし。
———————————————————————————————————————————————
PHP5.5.4 では —
; Strict session mode を使用するかどうかを設定します。
; On の場合は,未初期化 ID は受容しませんので,ブラウザが未初期化 ID を送ってきた場合に,セッション ID が
; 再生成されることはありません。
; Strict session mode はセッションアダプション脆弱性を使ったセッション固定化攻撃からアプリケーションを
; 保護します。互換性を考慮して,デフォルトでは Off になっていますが, On にされることを推奨いたします。
; https://wiki.php.net/rfc/strict_sessions
session.use_strict_mode = 0
———————————————————————————————————————————————

 まっ,とにかく,我が家用 (Windows7HP+SP1(x86)) として,VC11 x86 Thread Safe 版の php-5.5.4-Win32-VC11-x86.zip を落としアップデート。 VC11 がいるので,インストールがまだの場合は PHP のコンフィグの前に vcredist_x__.exe を入れておく必要がある。

 php5apache2_4.dll はオフィシャルバイナリに含まれているので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「Windows7上にWamp系WebServerを建てる-#2。」を参考にしてください。

追記(9/21):
 徳丸さんが,「PHP5.5.4にてstrict sessionsのバグ(bug65475)が修正されたがテストがないことに気づいた」という記事を書いていた。

 別件。上記の「(注)このディレクティブは shorthand タグ <?= とは関係ないことに注意してください。<?= はここの設定にかかわりなく,使用できます。」について確認してみた。
———————————————
  <? echo “1.使えますか?”; ?>
  <br>
  <?php echo “2.使えますか?”; ?>
  <br>
  <?= “3.使えますか?”; ?>
———————————————
というスクリプトを走らせてみたら,
———————————————

  2.使えますか?
  3.使えますか?
———————————————
になった。自鯖の場合, short_open_tag は off だが,確かに,ショートハンドも使えている。 PHP のマニュアルによれば,

注意:

PHP 5.4.0 より前のバージョンでは、 このディレクティブは、<? echoと同じ形式の ショートカット<?=も影響を受けます。 このショートカットを使用するには、 short_open_tagをonとする 必要があります。 PHP 5.4.0 以降では、<?= は常に有効となります。

ということらしい。

カテゴリー
Windows

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

The same article in English

 Aug-21 17:44:24UTC に PHP5.5.3 が出た。

 ChangeLog によれば, CVE-2013-4248 へのパッチの中にあった UMR(unInitialized Memory Read) を直したとある。ふーん。

 まっ,とにかく,我が家用 (Windows7HP+SP1(x86)) として,VC11 x86 Thread Safe 版の php-5.5.3-Win32-VC11-x86.zip を落としアップデート。 VC11 がいるので,インストールがまだの場合は PHP のコンフィグの前に vcredist_x__.exe を入れておく必要がある。

 php5apache2_4.dll はオフィシャルバイナリに含まれているので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「Windows7上にWamp系WebServerを建てる-#2。」を参考にしてください。

カテゴリー
Windows

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

The same article in English

 Aug-16 02:13:06UTC に PHP5.5.2 が出たので,いつもの作業。我が家用 (Windows7HP+SP1(x86)) として,VC11 x86 Thread Safe 版の php-5.5.2-Win32-VC11-x86.zip を落としアップデート。 VC11 がいるので,インストールがまだの場合は PHP のコンフィグの前に vcredist_x__.exe を入れておく必要がある。

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

 新 php.ini-production には以下の変更があった。
   ”;extension=php_zip.dll” がなくなっている。
   mssql.compatability_mode = Off —> mssql.compatibility_mode = Off に誤字訂正。

 徳丸さんによれば,「【速報】PHP-5.5.2にて大垣さんのstrict sessionsが実装されました」ということらしい。確かに,phpinfo() によれば,session.use_strict_mode = Off が入っている。ただし,Windows 版のデフォルト php.ini-production には,この行は見当たらなかった。

 php5apache2_4.dll は入っているので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「Windows7上にWamp系WebServerを建てる-#2。」を参考にしてください。

カテゴリー
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を使う)