WindowsにApache2.2.14+PHP5.2.12+MySQL5.1.44+CakePHP1.2.6をインストールしてみた
CakePHPの環境を整えようと思った。
必要なもの
- Apache2.2(http://httpd.apache.org): apache_2.2.14-win32-x86-openssl-0.9.8k.msi
- PHP 5.2.12(http://www.php.net/downloads.php): php-5.2.12-Win32.zip
- MySQL 5.1.44(http://www.mysql.com/downloads/mysql/): Windows (x86, 32-bit), MSI Installer(mysql-5.1.44-win32.msi)
- CakePHP 1.2.5(http://www.cakephp.jp/): CakePHP 1.2.6: cakephp-cakephp1x-ef18ab2.zip
インストール
とりあえず上記4つのソフトをインストールする。
Apache 2.2.14のインストール
apache_2.2.14-win32-x86-openssl-0.9.8k.msiを実行してインストールするだけ。
- インストール先
- D:\apps\development\Apache2.2
CakePHP 1.2.6のインストール
cakephp-cakephp1x-ef18ab2.zipを解凍しディレクトリの名前をcake_1.2.6に変更して、Apacheのhtdocs以下に配置。
- インストール先
- D:\apps\development\Apache2.2\htdocs\cake_1.2.6
ちなみにcake_1.2.6はこんな構成になっていること
cake_1.2.6/ +----- app/ +----- cake/ +----- vendors/ +----- .gitignore +----- .htaccess +----- index.php `----- README
PHP 5.2.12のインストール
php-5.2.12-Win32.zipを解凍して適当なディレクトリに配置する。
次に、PHPのインストールディレクトリ直下に「libmysql.dll」というファイルがあるので、これを「C:\WINDOWS\system32」にコピーしておく。これ重要。zip形式のPHPをインストールするときには自分でここまでやる必要があるらしい。
MySQL 5.1.44のインストール
最初の画面、とりあえず「Next」
Setup Type:今回はCustomでいく
Custom Setup:今回はインストール先を「D:\apps\development\MySQL\MySQL Server 5.1」に変更。あとはそのまま。
Ready to install the program:Installを押す
インストールが完了してNextを押していくと以下の画面になる。ここで、最初のチェックボックス(Configure the MySQL Server now)だけにチェックをしてFinishを押す。
ここからサーバの設定を開始。Nextを押す。
MySQL Server instance configuration: Detail configurationを選んでNext
Developer Machineを選んでNext
Transactional Database Onlyを選んでNext
InnoDB Tablespace Settingsは何も変更せずにNext
Online Transactional Processing(OLTP)を選んでNext
Enable TCP/IP, Enable Strict Modeを選んでNext
Best Support〜を選んでNext(日本語って出てるやつね)
Install as Windows Serviceにチェックが入っていることを確認してNext。とくに変更の必要はないかな。
この下の画像でパスワードを入力してNext。ここで、Current root passwordと出ているのは、一度インストールして再インストールしようとしているから。初めてのインストールの場合、パスワード入力エリアは2つしか表示されていないはず。ちなみに、Current root passwordで以前指定したパスワードを指定しても次の画面でエラーになってしまった。なので、今回は1つ目のテキストボックスは空っぽすることでうまくいった(下の画像は3つとも入力しているけど・・)
最後にExecute押す。
全部の作業がうまくいったっぽい。
ここまでできたらインストール完了。
そして、コマンドプロンプトからD:\apps\development\MySQL\MySQL Server 5.1\binに移動して以下のコマンドを実行しログインできることを確認する。パスワードはさっきウィザードで入力したやつね。
D:\apps\development\MySQL\MySQL Server 5.1\bin>mysql.exe -u root -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.44-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
こんな感じでログインできたらOK。
ついでに、CakePHP用のデータベースを作成しておく。今回作成するDBは・・
- データベース名: cake_test_db
- ユーザ名: cake_test
- パスワード: cake_test
mysql> GRANT ALL PRIVILEGES ON cake_test_db.* TO cake_test@localhost IDENTIFIED BY 'cake_test'; mysql> FLUSH PRIVILEGES; mysql> CREATE DATABASE cake_test_db;
と、問題なく終了したらOK
ApacheとPHP、MySQLを連携させる
# 2010.02.24 PHPのモジュールをロード LoadModule php5_module "D:/apps/lang/php/php-5.2.12-Win32/php5apache2_2.dll" <IfModule mod_php5.c> AddType application/x-httpd-php .php PHPIniDir "D:\apps\lang\php\php-5.2.12-Win32" </IfModule> #以下行のコメントを外す LoadModule rewrite_module modules/mod_rewrite.so # 追加 CakePHPの.htaccessがちゃんと動くように設定しておく <Directory D:\apps\development\Apache2.2\htdocs\cake_1.2.6> AllowOverride All </Directory>
PHPの設定
PHPをインストールしたディレクトリ(D:\apps\lang\php\php-5.2.12-Win32)にphp.ini-recommendedというファイルがあるので、これをコピーしてphp.iniと名前を変更しておく。そして、php.iniの以下の部分を変更しておく。
; php_mysql.dllなどの拡張ライブラリの場所を指定 ;extension_dir = "./" extension_dir = "D:\apps\lang\php\php-5.2.12-Win32\ext" ; 下記3つの設定をコメントアウト extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll ; 日本語をあつかるように設定 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8
※ phpの動作確認をするにはhtdocsにtest.phpなどとファイルを作成して以下の内容を記述する。そして、ブラウザからtest.phpにアクセスすると設定内容が表示される。ここで、mbstringやmysql等の文字で検索してphp.iniに記述した内容が反映されていればOK。
※ test.phpの内容(問題がある場合は、このファイルを作って設定内容を確認する)
<?php phpinfo() ?>
参考
http://d.hatena.ne.jp/arakik10/20060611/p1
ここまでできたらApacheを”再起動”してhttp://localhost/cake_1.2.6にアクセスする。すると以下のような画面が出ていれば、ここまでは問題ない。
CakePHPの設定をする
上の画面が表示されたら、後はCakePHPの設定を行うのみ。画面で黄色くなっている部分(上下2箇所)はまだ問題のある箇所なのでこれを直してゆく。
まず、最初の黄色い部分は
Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 549]
となっている、これはSecurity.saltという値をデフォルトから変更してくださいと言っている。cake_1.2.6\app\config\core.phpを下記のように変更。
cake_1.2.5\app\config\core.php
//Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'); // 適当な文字列に変更 Configure::write('Security.salt', 'dkJFDKnfdapfdKFNPEd4fja2VZakdEd2faqeewqf23');
この状態でもう一度http://localhost/cake_1.2.6にアクセスし、1つ目に表示されていた黄色い箇所が消えていることを確認する。
次の黄色い部分。
Your database configuration file is NOT present.
Rename config/database.php.default to config/database.php
database.php.defaultをdatabase.phpに変更しろと言っているので変更する。と、このファイルにはDBの接続情報もあるので一緒に変更しておく。
- 変更ファイル
- D:\apps\development\Apache2.2\htdocs\cake_1.2.6\app\config\database.php
下記のように今回変更する部分はlogin, password, databaseの3か所。
class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'cake_test', 'password' => 'cake_test', 'database' => 'cake_test_db', 'prefix' => '', 'encoding' => 'UTF-8' ); var $test = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'cake_test', 'password' => 'cake_test', 'database' => 'cake_test_db', 'prefix' => '', 'encoding' => 'UTF-8' ); }
変更したらもう一度http://localhost/cake_1.2.6にアクセス。すべてグリーンになればインストール完了!
とりあえず、ここまでできたらいいんだろうか。次はサンプルのアプリを作ってみよう。
あ、今回文字コードはUTF-8で統一したつもりだけど、まだ設定漏れがあるかも知れない。もし、今回の設定で駄目だった場合はまた更新しようと思う。