ホームにもどる      「パソコンについて」にもどる

WAMP

 Windows上でApache MySQL PHP を一体として使うのをWAMPと言っています。Linux上でApache MySQL PHP を一体として使うのがLAMPです。WAMPはWindows以外はすべて無料で入手できます。WAMPでかなり強力なデータベースをつくることができます。データベースと言うと、Accessが有名です。実際Accessは強力なデータベースですが、WAMPでつくったデータベースはAccessではできないことができる所もあります。MySQLがデータベースです。ところがMySQLだけでデータの入力をしようとすると、MySQLコマンド画面でしなければなりません。これではかなり入力がしにくいです。Accessにはフォームという強力な入力画面があります。これに比べるとずいぶんと見劣りします。それでPHPの助けを借ります。PHPで入力しやすいような画面をつくります。また各種の操作もMySQLコマンドにコマンドを打ち込むのでなく、画面のコマンドボタンをクリックすればできるようにします。これでAccessのフォームにもあまり見劣りしないものができます。ApacheはURLを指定することでPHPでつくった文書を表示させることができます。
 AccessはCDを入れて画面上の指示に従って次へのボタンをクリックしていけば簡単にインストールできます。しかしWAMPはそれぞれのソフトをダウンロードしてインストールしなければならないし、また設定ファイルを書き換えなければならない所もあり、Accessほど簡単でありません。私のした手順を書きます。OSはWindows XP上です。
 まずコマンドプロンプトのショートカットをデスクトップ上につくります。タスクバーのスタート→すべてのプログラム→アクセサリ→コマンドプロンプトとフォーカスを移し、コマンドプロンプトの上にフォーカスを置いて、右クリックすると、メニューが出るので、送る→デスクトップにショートカットを作成とフォーカスを移し、左クリックすると、デスクトップ上にコマンドプロンプトのショートカットができます。コマンドプロンプトのディフォルトの画面は背景が黒で文字が白です。ワードやテキストエディタで文書をつくる時は背景が白で字が黒ですから、これに慣れているためか、背景が白で字が黒のほうが読みやすいです。それでコマンドプロンプトの画面の設定を変えます。
 コマンドプロンプトを開いて、タイトルバーの上で右クリックし、プロパティを選択することで、"コマンドプロンプト"のプロパティを開くことができます。"コマンドプロンプト"のプロパティで各種設定ができます。画面の色タブをクリックして、画面の背景を選択して、白を選び、画面の文字を選択して、黒を選ぶことで、背景が白、文字が黒に変更できます。 レイアウトタブをクリックして、ウィンドウのサイズを変更することで、ウィンドウの大きさを変えることができます。フォントタブをクリックして、サイズを変更することで、文字の大きさを変えることができます。 オプションタブをクリックし、簡易編集モードにチェックを入れると、コピー、貼りつけができるようになります。コマンドプロンプト上の文字をコピーするには、マウスでコピーしたいものを選択し、右クリックすると、クリップボードにコピーされます。これをテキストファイルに貼りつけるには、テキストエディタを開き、通常のようにCtrlキーとVキーを押すことで貼りつけることができます。テキストエディタ上の文字をコピーしてコマンドプロンプトに貼りつけるには、テキストエディタ上の文字を選択して、通常のようにCtrlキーとCキーを押し、クリップボードにコピーします。コマンドプロンプト画面で、Altキーとスペースキーを押すとメニューが表示されるので、次に、Eキーを押し、次にPキーを押すと、貼りつけることができます。 メニューが表示された後はAltキーとスペースキーを押すのをやめてもメニューは表示されたままですので、Altキーとスペースキーを離してEキー、Pキーを押すことができます。Altキーとスペースキーを同時に押すと、メニューが出てこないことがあり、Altキーを押してからスペースキーを押すほうがよいです。キーボードでの操作がわずらわしいなら、タイトルバー上でアイコンを左クリックして、マウスで選択することもできます。マウスを用いた貼りつけは簡単で。右クリックするだけです。 適用ボタンを押して、OKボタンを押して設定を終了します。
 ユーザーがYamada Taroなら、マンドプロンプトを起動すると、C:\Documents and Settings\Yamada Taro>と書いてあります。ここに例えばecho Hello と入力してEnterキーを押せば、その下にHelloと表示されます。バッチファイルという拡張子が.batで終わるファイルはコマンドファイルとして扱われます。例えば
echo 今日は、山田さん。
echo 今日は、加藤さん。
とテキストエディタで記入します。それをDocuments and Settingsフォルダの中のYamada Taroフォルダにaisatsu.bat というファイル名で保存します。そしてコマンドプロンプトにaisatsu.bat と入力して、Enterキーを押せば、
C:\Documents and Settings\Yamada Taro>echo 今日は、山田さん。
今日は、山田さん。
C:\Documents and Settings\Yamada Taro>echo 今日は、加藤さん。
今日は、加藤さん。
と表示されます。echo 今日は、山田さん。というコマンドまで出てくるのが煩わしいです。それでaisatsu.batを書き換えます。aisatsu.batのアイコン選択して右クリックして出てくるメニュー画面から編集を選びます。今度は最初の行にecho off を足して
echo off
echo 今日は、山田さん。
echo 今日は、加藤さん。
と書いて保存します。
コマンドプロンプト 画面でaisatsu.bat と入力してEnterキーを押すと、今度は
C:\Documents and Settings\Yamada Taro>echo off
今日は、山田さん。
今日は、加藤さん。
と表示されます。echo 今日は、山田さん。 はなくなったのですが、今度はecho off のコマンドが表示されます。これもなくすには、@をつけて、@echo off を最初の行に書きます。つまり
@echo off
echo 今日は、山田さん。
echo 今日は、加藤さん。
と書き直して保存します。コマンドプロンプト 画面でaisatsu.bat と入力すると今度は
今日は、山田さん。
今日は、加藤さん。
と表示され、コマンドは出てきません
C:\Documents and Settings\Yamada Taro> はCドライブのDocuments and SettingsフォルダのYamada Taroフォルダにあるバッチファイルを読みますよということです。後の都合で、Cドライブ直下(C:\ とも書かれます。今後こう書きます。)のバッチファイルを読むようにしたいのです。それで cd C:\ と入力してEnterキーを押せば、C:\> と表示され、C:\のバッチファイルを読むことができるようになります。c を小文字にしてcd c:\ と書いても同じことです。cd は change directory の略で読むべきフォルダ(以前はディレクトリと言っていました)を変えるコマンドです。しかしコマンドを入力する時に毎回 cd C:\ と入力するのは面倒です。それで
@echo off
cd c:\
と書いてこれをhenko.bat と名付けてC:\に保存します。つぎにコマンドプロンプトのショートカットを選択して、右クリックするとメニューが出るので、プロパティを選択します。ショートカットタブをクリックしてリンク先を見ます。%SystemRoot%\system32\cmd.exe と書かれています。この後ろに半角スペースをあけた後/k C:\henko.bat と記入します。つまり
%SystemRoot%\system32\cmd.exe /k C:\henko.bat
に変更します。/k オプションの後ろに書かれたコマンドはコマンドプロンプトを開けた時に自動的に実行してくれます。この場合だとコマンドプロンプトのショートカットをダブルクリックした時コマンドプロンプトが開き、 C:\henko.batファイルに書かれたコマンドを自動的に実行してくれます。だからコマンドプロンプトを開ければすぐに、C:\> と表示されます。これは%SystemRoot%\system32\cmd.exe /k の後ろに直接コマンドを書いても同じことです。つまり
%SystemRoot%\system32\cmd.exe /k cd C:\
と変更しても同じ結果になります。これでコマンドプロンプトの設定は終わりました。
 次に Perl、 Apache、 MySQL、 PHP をダウンロードします。Perlをインストールするのは、PHP、 MySQLの設定にPerlを使うからです。まずC:\にPerl_download、 Apache_download、 MySQL_download、 PHP_download というフォルダをつくります。これは
@echo off
mkdir Perl_download
mkdir Apache_download
mkdir PHP_download
mkdir MySQL_download
echo Perl_download Apache_download PHP_download MySQL_download フォルダを作成しました。
 ダウンロードするURLはそれぞれ次の通りです。
Perl  https://www.activestate.com/activeperl/downloads
 ActivePerl がダウンロードできます。
Apache  https://httpd.apache.org/download.cgi
PHP  https://jp2.php.net/get/php-5.2.14-Win32.zip/from/a/mirror
 zip packageをダウンロードします。
MySQL  https://dev.mysql.com/downloads/
 MySQL Community ServerのInstallerをダウンロードします。
 バージョンが違うとインストールの手順や設定ファイルの書き換えが微妙に違ってきます。私が用いたバージョンを示します。
Perl ActivePerl-5.12.2.1202-MSWin32-x86-293621.msi
Apache httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
PHP php-5.2.14-Win32.zip
MySQL mysql-essential-5.1.53-win32.msi
 まずPerlをインストールします。Perl_download内のアイコンをダブルクリックし画面の指示に従うだけです。ただし英語です。インストールが終わればパソコンを再起動します。コマンドプロンプトを開き、perldoc perlと入力して、Enterキーを押すと、Perlの説明が表示されます。
 次にApacheをインストールします。Apache_downloadフォルダ内のアイコンをダブルクリックして画面の指示に従います。ただしこれも英語です。Network Domain は localhost にし、Server Name もlocalhost にします。Setup Type ではTypical を選びます。終了すればパソコンを再起動します。
 ブラウザを立ち上げ(Internet Explore でも Firefox でも同じです)アドレスの所にhttp://localhost と記入し、Enterキーを押します。正常にインストールできておれば、It works! と表示されます。
 次にPHPをインストールします。PHP_downloadにあるzipファイルをダブルクリックし、左のフォルダの作業の所にある「ファイルをすべて展開」をクリックすると「圧縮フォルダの展開ウィザードの開始」という画面が出ます。次へをクリックして、展開名の選択の画面で「ファイルを下のディレクトリに展開する」の欄にC:\PHP_download\php_originalと入力します。PHPの後はハイフォンでなくアンダーラインを使っていますので注意して下さい。
 次にテキストエディタを開き、次のコードをコピーして貼り付け、php_install.batという名前にして、C:\に保存します。

@echo off
xcopy C:\PHP_download\php_original C:\php /I /S /Y
copy C:\php\php.ini-dist C:\original_php_ini.txt /Y
copy C:\php\php.ini-dist C:\php\php.ini-dist2 /Y
move C:\php\php.ini-dist2 C:\Windows\php.ini
copy C:\php\libmysql.dll C:\WINDOWS\system32 /Y
copy C:\php\ext\php_mysql.dll C:\WINDOWS\system32 /Y
copy C:\Windows\php.ini C:\copy_php_ini.txt /Y
perl php_ini_henko.pl
copy C:\henko_php_ini.txt C:\WINDOWS\php.ini /Y
echo PHPのインストールが終了しました。

move はフォルダのの名前を変えて移動するコマンドです。copy xcopyはコピーするコマンドです。/Yオプションがあると、ファイルを上書きする前に確認のメッセージを表示しません。perlコマンドでPerlコードを実行することができます。
 次に以下のPerlコードをコピーし、貼り付けます。

#!/usr/bin/perl
use strict;
use warnings;

open(FILE,'C:\copy_php_ini.txt') or die "$!";
my @file=<FILE>;
close(FILE);
foreach my $line(@file){ $line=~s|;output_handler =|output_handler=mb_output_handler|;
$line=~s|;default_charset = "iso-8859-1"|default_charset = "UTF-8"|;
$line=~s|extension_dir = "./"|extension_dir = "c:/php/ext"|;
$line=~s|;extension=php_mbstring.dll|extension=php_mbstring.dll|;
$line=~s|;extension=php_mysql.dll|extension=php_mysql.dll|;
$line=~s|;mbstring.language = Japanese|mbstring.language = Japanese|;
$line=~s|;mbstring.internal_encoding = EUC-JP|mbstring.internal_encoding = UTF-8|;
$line=~s|;mbstring.http_input = auto|mbstring.http_input = auto|;
$line=~s|;mbstring.http_output = SJIS|mbstring.http_output = UTF-8|;
$line=~s|;mbstring.encoding_translation = Off|mbstring.encoding_translation = On|;
$line=~s|;mbstring.detect_order = auto|mbstring.detect_order = auto|;
$line=~s|;mbstring.substitute_character = none|mbstring.substitute_character = none|;
}
open(NEWFILE, '>C:\henko_php_ini.txt') or die "$!";
print NEWFILE @file;
close(NEWFILE);

これをphp_ini_henko.pl と名付けてC:\ に保存します。Perlコードは拡張子を.plにします。このコードはC:\copy_php_ini.txtを書き換えて、C:\henko_php_ini.txtをつくっています。
$line=~s|;default_charset = "iso-8859-1"|default_charset = "UTF-8"|;
はディフォルトの文字コードをUTF-8に変更しています。もしEUCコードを使いたいなら、UTF-8の所をEUC-JPに変えて下さい。バージョンが変わればphp.iniの記述が変わる可能性があり、その時はこのコードを書き変える必要があります。
 コマンドプロンプトにphp_install.batと入力してEnterキーを押します。インストールされます。その後パソコンを再起動します。
 次にApacheの設定をします。CドライブのProgram Filesフォルダの中のApache Software Foundationフォルダの中のApache2.2フォルダの中のconfフォルダの中のhttpd.conf(これは簡単にC:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf と書かれます。この方が簡単なので、今後はこのように表示します。)を開きます。CtrlキーとFキーを押すと検索画面が出るので、LoadModule を検索します。かなり出てきますが、#LoadModuleから始まる一番最後の行から1行あけて、
LoadModule php5_module c:/php/php5apache2_2.dll
と書き加えます。PHPを使うので、PHPのモジュールを追加したのです。またCtrlキーとFキーを押して検索画面を出し、AddType を検索します。
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
の下に1行あけて、
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
と書き加えます。PHPで書かれたコードは拡張子を.phpにしますので、これは.php のファイルを認識させるためのものです。この3行を書き加えるとhttpd.conf を保存して閉じます。そしてパソコンを再起動します。Apacheのhttpd.confの設定は必ずPHPをインストールしてからにして下さい。PHPをインストールせずに、httpd.confを書き換えるとまだインストールしていないPHPのModuleをloadすることになり、エラーになります。
 Apacheはディフォルトでは、C:\Program Files\Apache Software Foundation\Apache2.2\htdocsの中にあるPHPファイルを読んでいます。今試しにPHPファイルをつくってちゃんと表示されるかどうか見てみます。テキストエディタを開き、
<?php
phpinfo();
?>
と書き、Shiken.phpというファイル名でC:\Program Files\Apache Software Foundation\Apache2.2\htdocsの中に保存します。<?phpはPHPコードを始めますという意味で、?>はPHPコードを終わりますという意味です。PHPコードは<? と ?>の間に記述されます。phpinfo()は現在のPHPの状態を示すPHP関数です。ブラウザを開き、アドレスの所にhttp://localhost/Shiken.phpと入力しEnterキーを押します。正常にインストールされているのなら、PHPの状態が画面に示されます。
 最後にMySQLをインストールします。MySQL_downloadの中のアイコンをダブルクリックして画面の指示に従います。Setup TypeでTypicalを選択し、Configure the MySQL Server now にチェックをして、Finishをクリックします。MySQL Server Instance Configuration Wizard の configuration typeでStandard Configurationを選択し、Please set the Windows optionsの所で Install As Windows Service と Launch the MySQL server automatically と Include Bin Directory in Windows Pathの3つを選択します。Modify Security Settingsをチェックしパスワードを記入します。
テキストエディタを開き、次のコードをコピーして、my_ini_henko.plと名付けて、C:\に保存します。

#!/usr/bin/perl
use strict;
use warnings;

open(FILE,'C:\copy_my_ini.txt') or die "$!";
my @file=<FILE>;
close(FILE);
foreach my $line(@file){
    $line=~s|default-character-set=latin1|default-character-set = utf8|g;
}
open(NEWFILE, '>C:\henko_my_ini.txt') or die "$!";
print NEWFILE @file;
close(NEWFILE);

$line=~s|default-character-set=latin1|default-character-set = utf8|g;の最後にgがあるために、同じものをすべて置換します。次に次のコードをコピーして、mysql_henko.batと名付けて、C:\に保存します。

@echo off
copy C:\"Program Files"\MySQL\"MySQL Server 5.1"\my.ini C:\original_my_ini.txt /Y
copy C:\"Program Files"\MySQL\"MySQL Server 5.1"\my.ini C:\copy_my_ini.txt /Y
perl my_ini_henko.pl
copy C:\henko_my_ini.txt C:\"Program Files"\MySQL\"MySQL Server 5.1"\my.ini /Y echo MySQLの変更が終了しました。

コマンドプロンプトにmysql_henko.batと入力してEnterキーを押します。終了すればパソコンを再起動します。
 my.iniの変更で「実践マスター PHP+MySQL」はSERVER SECTIONで変更したdefault-character-set = utf8の下に
skip-character-set-client-handshake
を追加するように書いています。これがあれば文字コードを自動変換しません。サイトでもこの1文がなかったために、文字化けして1週間も苦労したという記述があります。私はLAMP環境でつくったデータベースをWAMP環境に移したのですが、この1文を書くと文字化けしました。それでこの1文は入れていません。
 コマンドプロンプトを開いて、mysql -u root -p と入力してEnterキーを押すとパスワードを聞いてきます。パスワードを入力してEnterキーを押すとmysql>が表示されます。これでMySQLコマンドが入力できます。
show databases;
と入力してEnterキーを押すと
information_schema
mysql
test
というディフォルトで入っているデータベースが表示されます。taro という名の新しいデータベースをつくるならcreate database taro;
と入力してEnterキーを押します。ubuntu Linux上のMySQLではデータベース名の大文字、小文字は区別してtaroとTaroは別のデータベースになりますが、Windows上では大文字、小文字の区別をしません。
create database Taro;
と記述してもtaroというデータベースができます。
 これでWinodws XPへのApache PHP MySQLのインストールがすべて終了し、WAMP環境ができました。あとはPHPとMySQLを使ってデータベースをつくる作業になります。  
 pc98-NXシリーズ Mate J では、上記のようにインストールして動かすと、Fatal error: Call to undefined function mysql_connect()と表示が出てPHPとMySQLの接続がうまくいきませんでした。PC/AT互換機とは少し仕様が違うのでしょうか。
 mysqldumpで一度はubuntu Linux側のデータをWindows側に移すことができましたが、後は自由にLinuxとWindowsの間でデータを移すことはできませんでした。またLinuxでつくったデータベースはWindowsでは動かない所があったり、文字の表示が少し変わったりします。WAMPとして使うのならやはりWindowsでデータベースをつくらなければならないようです。

参考文献
小島まさご. 実践マスター PHP + MySQL.ソーテック社,

ホームにもどる      「パソコンについて」にもどる