「先生!じゃ、環境をもう一度つくってみよう」
って事で、他人によって用意された環境にOpenPNEを入れるのではなくて、再度自分でOpenPNEの環境をつくってみようと思う。とりあえず、OSのインストールから。
サーバOSが必要なんだが、あいにくライセンスがないのでWindows Server 2003 Enterpirse Eition 180日限定評価版を昔のサーバに入れてみる。まぁ・・・スペック的には足りないけど、イケるだろ。
あと、ハードウェア的には一台しかないが、Web/DBサーバの2台構成なので、VM Ware Serverのライセンスを取得し、ダウンロードしておくこととしよう。
さて、時間はかかったがWindows Server 2003がインストールできたので、まずはApacheからインストールすることにする。
- Apacheインストール
- apache_2.0.58-win32-x86-no_ssl.msiをダウンロードしてくる。
- 同ファイルをダブルクリックし、実行。
- 画面の指示に従い、画面の指示に従いインストール。
- インストールドライブをDドライブに変更する以外はTypicalインストールで進める。
- ・・・あっと言う間にApacheの予想外ページ(あなたの予想に反して、このページが見えているでしょうか?)が表示される。なんて、楽なんだこれ。
- Apacheのサービス開始ユーザーを変更するために、コンパネからコンピュータの管理を開き、Usersグループに属するApacheuserをつくる。
- 次に、コンパネからサービス管理を開き、Apache2のサービスのプロパティを開く。
- ログオンタブを選択し、アカウントを指定する。
- このままだと、D:\Program Files\Apache Group\Apache2\logsフォルダ配下にApacheuserの書き込み権限がないので、サービスがスタートできない事となってしまう。なので、同フォルダのプロパティにおいて書き込み変更権限を与える。
- これにより、Apacheの起動が可能となった。他のマシンから見ても、問題なく予想外ページが確認できた。
- PHPのインストール
- D:\PHPフォルダにインストールすることとし、同フォルダを作成
- D:\PHPにphp-5.1.6-Win32.zipを解凍し、解凍したファイルを全てD:\PHPフォルダ配下にコピーする。
- PHPコアモジュールphp5ts.dllをC:\Windows\system32フォルダ配下にコピーする。
- PHPからmysqlを利用するために必要なlibmysql.dllが必要なため、D:\PHPから同ファイルを探し、同じようにC:\Windows\system32フォルダ配下にコピーする。
- D:\PHPからC:\Windowsフォルダ配下へphp.ini-distをコピーし、ファイル名をphp.iniに変更。以後、php.iniの内容を変更していきます。
- doc_root = の行を編集し、doc_root = "d:/Program Files/Apache Group/Apache2/htdocs"とします。
- PHP拡張モジュールの設定を行うためにextention_dir = の行を編集し、extension_dir = "D:/php/ext"とします。
- mysqlを利用できるようにするため、extension=php_mysql.dllのコメントアウトをしている「;」を消します。
- PHPで2バイト文字の処理を行うためにextension=php_mbstring.dllのコメントアウトをしている「;」を消します。
- さらにmbstring.language = Japaneseのコメントアウトをしている「;」を消す。
- 文字コード指定をするためにmbstring.internal_encoding = UTF-8とする。
- そしてmbstring.http_input = autoのコメントアウトをしている「;」を消す。
- mbstring.http_output = UTF-8とし
- mbstring.encoding_translation = Onとする。
- mbstring.detect_order = autoのコメントアウトをしている「;」を消す。
- mbstring.substitute_character = noneのコメントアウトをしている「;」を消す。
- Apacheに読み込ませるためにhttpd.confを書き換えていく。
- httpd.confの134行目付近にLoadModule php5_module d:/php/php5apache2.dllの行を追記する。
- 324行目*1付近にDirectoryIndex index.phpとDirectoryIndex index.htmを追記する。
- LanguagePriorityの順番としてjaを優先させるために685行目をコメントアウトし、jaを優先させたモノをコピペしておく。
- 760行目付近にAddType application/x-httpd-php .phpとAddType application/x-httpd-php-source .phpsを追記する。
- で、動作確認
<?php phpinfo(); ?>
PHP Version 5.1.6うんぬん・・・って出れば成功!やったね。とりあえず一段落。
んでは次。
- PEARのインストール
- D:\PHP\go-pear.batを実行。画面に表示されるメッセージに従って進めていく。
- D:\PHP\PEAR_ENV.regが生成されるので、ダブルクリック実行
- コマンドプロンプトでD:\PHPフォルダへ移動
- pear listコマンドで問題なく動作することを確認
- pear config-set http_proxy xxx.xxx.xxx.xxx:8080コマンドでProxyのセット
- pear install Text_Wikiを実行し、TextWikiをインストール
- pear install pear_infoを実行し、Pearinfoをインストール
- pear listコマンドでインストールされたことを確認
- 以下のPHPファイルを作成し、問題なくpear infoが表示され問題なく動作することを確認する。
<html> <head> <title>PEAR info</title> </head> <body> <?php require_once("PEAR/Info.php"); $info = new PEAR_Info(); $info->show(); ?> </body> </html>
PEARに関する情報が表示されたら問題なし。
ここまでイケたら次はmysqlのインストール
- mysqlのインストール
- mysql-4.1.21-win32.zipをダウンロードし、解凍する。
- Setup.exeを実行し、セットアップを開始する。
- インストール先を指定したいので、TypicalではなくCustomを選択する。
- Install toのChangeボタンを押下し、インストール先をD:\Program Files\MySQL\MySQL Server 4.1\とする。
- インストール完了したらサインアップを求められますが、「Skip-Sign-Up」を選択し、Skipします。
- Confiture the MySQL Server nowにチェックを入れたまま、Finishをクリックします。
- Configure MySQL Serverの画面でとりあえずNextを押します。
- Standard Configurationでも良いんですが、設定していく事としましょう。なのでDetailed Configurationを選択し、Next
- Server Machineを選択し、Next
- Multifunctional Databaseを選択し、Next
- DB領域については、Installパスでいいので、D:のInstallation PathでNext
- 接続数についてですが、まぁ、500でいーだろ?って事で、Online Transaction Processing(OLTP)を選択してNext
- 接続ポート番号は3306のままでNext
- Windows Serviceとしてインストールするので、Install As Windows Serviceにちぇっッ区を入れて、Service NameをMySQLとし、Launch th MySQL Server automaticallyにチェックを入れ、さらにはWindowsのPATHに設定すべくInclude Bin Directory in Windows PATHにチェックを入れて、Next
- で、Execute!
- んだば、PHPからMySQLへの接続確認
- Apacheのhtdocs配下に以下のソースを配置して、アクセス。挙動を確認。
<?php $DBSERVER = "localhost"; $DBUSER = "root"; $DBPASSWORD = "hogehoge"; $DBNAME = "mysql"; $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); mysql_query("set names utf-8"); $selectdb = mysql_select_db($DBNAME); $sql = "SELECT * from help_keyword"; $rst = mysql_query($sql); $body = mysql_num_rows($rst) . "件のデータがあります。<br><br>"; $body .= "<TABLE border='1'> <tr> <TH>ID</TH> <TH>NAME</TH> </tr>"; while ($col = mysql_fetch_array($rst)) { $body .= "<TR>". "<td>$col[help_keyword_id]</td>". "<td>$col[name]</td>". "</tr>"; } $body .= "</TABLE>"; mysql_free_result($rst); $con = mysql_close($con); ?> <html> <head></head> <body> <?=$body?> </body> </html>
*1:これは上記の追記を行ったあとの行数である。以後もその前の手順を完了している事を前提とした行数を述べていく。