せっかくの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)にコピー。