せっかくのSurface Pro 2なので、いろいろな開発環境を入れておこうと思います。いずれも、セットアップと、Hello,Worldまでね。
最初はXAMPP。
X(クロスプラットフォーム)でA(Apache)/M(MySQL)/P(PHP)/P(Perl)を一括してインストールしてくれるパッケージです。
インストールするだけで、Webサーバとプログラムの連携設定までしてくれます。サーバ起動停止管理ツールもあってこりゃあ楽だ。
日本語版ページはこちら。
Windows版のページはこちら。
XMAPP for Windows
http://www.apachefriends.org/jp/xampp-windows.html
今回はzip版でインストールしました。ダウンロードした後、zip内の「xampp」フォルダをそのまま「C:\xampp」に展開すれば完了です。フォルダ内のxampp-control.exeを起動します。

これでもうローカルでApache動いてるわけですね。簡単。リンクから、Phpinfo()とPerlInfo()も確認しておきましょう。
MySQLも起動してみます。XAMPPコントロールパネルのServicesからMySQLを起動。
mysqld.exeの起動で、Windowsからセキュリティの重要な警告が出ると思いますのでプライベートネットワーク上の通信を許可します。
インストール時点ではrootパスワードが未設定なので、設定しておいてください。
こちらがくわしいです。
AdminWeb 管理者アカウントのパスワード設定
http://www.adminweb.jp/xampp/mysql/index2.html
MySQL Admin起動。rootパスワード設定した場合は、ログイン画面が出ると思いますので
ID:root / PW:設定したパスワード でログインしてください。
MySQLまでこんな簡単に起動完了しました。
適当にテーブル作ってみます。最初から用意されているtestデータベースに作ってもいいですが、せっかくなのでデータベースも新しいのを作成しましょう。
DBOnlineサイトに、良い解説があります。
DBOnline データベースの作成
http://www.dbonline.jp/phpmyadmin/database/index1.html
<IfModule alias_module>
:
Alias /xamppWork "D:/xamppWork/"
<Directory "D:/xamppWork">
Require all granted
</Directory>
<IfModule alias_module>
<html>
<head>
<title>Hello,Pokemon</title>
</head>
<body>
<?php
$connect = mysql_connect('localhost','root','password');
if (!$connect) {
die('データベースサーバ接続失敗'.mysql_error());
}
$database = mysql_select_db('personal',$connect);
if (!$database) {
die('データベース選択失敗'.mysql_error());
}
mysql_set_charset('utf8');
$result = mysql_query("SELECT name,voice FROM pokemon order by name");
if (!$result) {
die('SELECT失敗'.mysql_error());
}
while ($record = mysql_fetch_assoc($result)) {
print('<p>');
print('「こんにちは、'.$record['name'].'!」');
print('「'.$record['voice'].'!」');
print('</p>');
}
$close = mysql_close($connect);
?>
</body>
</html>
<html>
<head>
<title>Hello,Pokemon</title>
</head>
<body>
<?php
$dsn = 'mysql:dbname=personal;host=localhost';
try{
$dbh= new PDO($dsn,'root','password');
$dbh->query('SET NAMES utf8');
$sql = 'SELECT name,voice FROM pokemon order by name';
foreach ($dbh->query($sql) as $record ){
print('<p>');
print('「こんにちは、'.$record['name'].'!」');
print('「'.$record['voice'].'!」');
print('</p>');
}
} catch (PDOException $e) {
die('データベースエラー'.$e->getMessage());
}
$connect = null;
?>
</body>
</html>
Alias /xamppWork "D:/xamppWork/" <Directory "D:/xamppWork"> Options ExecCGI Require all granted </Directory>
#!C:/xampp/perl/bin/perl
use DBI;
print <<END;
Content-type: text/html
<html>
<head>
<title>Hello,PerlPokemon!</title>
</head>
<body>
END
$database = "personal";
$host = "localhost";
$dsn = "DBI:mysql:database=$database;host=$host";
$dbh = DBI->connect($dsn,"root","password");
$dbh->do("set names utf8");
$sth = $dbh->prepare('SELECT name,voice FROM pokemon ORDER BY name');
$sth->execute;
$num_rows = $sth->rows;
for($i = 0;$i < $num_rows; $i++) {
@record = $sth->fetchrow_array;
print "<p>";
print "「こんにちは、$record[0]!」";
print "「$record[1]!」";
print "</p>";
}
$sth->finish;
$dbh->disconnect;
print <<END;
</body>
</html>
END
install_driver(mysql) failed: Can't load 'C:/xampp/perl/vendor/lib/auto/DBD/mysq
l/mysql.dll' for module DBD::mysql: load_file:指定されたモジュールが見つかりませ
ん。 at C:/xampp/perl/lib/DynaLoader.pm line 190.
at (eval 4) line 3.
Compilation failed in require at (eval 4) line 3.
Perhaps a required shared library or dll isn't installed where expected
at d:\xamppWork\hello.cgi line 14.
うーん、めんどくさそうだな。libMySQL.dllで検索すると、ダウンロードできるサイトがあったので、ダウンロードして、libMySQL.dll を libMySQL_.dllにリネームして、XAMPPのPerlのMySQL関連のフォルダ(C:\xampp\perl\vendor\lib\auto\DBD\mysql)にコピー。












