ちょっとやりたいことがありSNSエンジンの「OpenPNE」をインストールしました。
以下、環境設定とインストール、ハマッたエラーについて記します。ちなみに、OSはWindowsXPです。
【環境設定】
1.すでにインストール済みのモノ
以前に中途半端にCakePHPをいじったことがあり、すでにPHP5とApache、MySQLはインストール済みであったりしました。
- PHP: 5.2.5
- Apache: 2.2.8
- MySQL: 5.0.45
もし横着しないのであれば、まっさらな環境からインストールし直すのが結果的に早いかもしれません。
XAMPPを使えば必要な環境がサクッと揃っちゃいますので。これから始まるエラーの気苦労から逃れられるでしょう・・・。
≫
XAMPP for Windows – Apache friends
2.PEARインストール
次にPEARをインストール。これは下のサイトを参照すればすごく簡単です。コマンドプロンプトを開き「go-pear.bat」を実行して指示に従うだけ。同様に、その後もコマンド画面で、
- pear list: インストールされたPEARのバージョン確認
- pear list-upgrades: Web上にある最新版のバージョンを確認
- pear upgrade PEAR: PEARを最新版にアップグレード
- pear list: もう一度PEARのバージョン確認
と、PEARを最新版にアップデートしました。
≫
PHPスクリプト講座:PEARのインストール – そふぃのphp入門
3.Symfonyインストール
PHPのフレームワーク「Symfony」。これもPEARがインストール出来ていれば簡単です。コマンドプロンプトに戻りコマンド入力します。
- pear channel-discover pear.symfony-project.com: チャネル?の登録
- pear install symfony/symfony: Symfonyのインストール
- pear -v: Symfonyのバージョン確認
で、インストール完了です。
【インストール】
1.MySQLにスキーマ作成
普段「MySQL Administrator」を使用しているので、スキーマを新規作成して終わりです。簡単。
2.OpenPNEインストール
ここからが困難の始まり。例によってコマンドプロンプトで、まずは1回目のインストールコマンド発令、
出ました、エラー!
Warning:
sfSimpleAutoload::require(/tmp/OpenPNE-3.1.0/lib/vendor/doctrine/Doctrine/Manager.php):
failed to open stream: No such file or directory in
/virtual/redcomets/OpenPNE-3.1.0/lib/symfony/autoload/sfSimpleAutoload.class.php on line 118
エラーメッセージ:
Fatal error: sfSimpleAutoload::require(): Failed opening required
‘/tmp/OpenPNE-3.1.0/lib/vendor/doctrine/Doctrine/Manager.php’
(include_path=’/virtual/redcomets/OpenPNE-3.1.0/config/../lib/vendor/PEAR/:.:/usr/local/lib/php’)
in /virtual/redcomets/OpenPNE-3.1.0/lib/symfony/autoload/sfSimpleAutoload.class.php on line 118
<解決方法>
C:\・・・\openpne\cache にある「project_autoload.cahe」を削除。
気を取り直して2回目のインストールコマンド発令、そしてエラー!
The execution of task “doctrine:build-all-reload” failed.
– Too many arguments (”Files\・・・\openpne\data/fixtures_tmp” given).
どうやら、3.1からORMとして採用された「Doctrine」が全体的にうまくいっていない気がします。。。
DBを見てもテーブルが作成されていない。このタスクが実行されればインストール完了しそうなのですが・・・。
全く解決方法が見つからないので、テーブル削除・作成するDoctrineのコマンドを探して実行してみました。
- symfony doctrine-build-all-reload
エラーメッセージが変わった!
Fatal error: Class ‘PDO’ not found in C:\・・・\openpne\lib\vendor\doctrine\Doctrine\Connection.php on line 1530
そこで、Connection.php の1530行目を確認。
return $this->getManager()->openConnection(new PDO($pdoDsn, $username, $password), ‘doctrine_tmp_connection’, false);
<解決方法>
「PDO」って何・・・?とWebで検索すること数十分。php.iniファイルを開き、
- extension=php_pdo.dll
- extension=php_pdo_mysql.dll
のコメントアウトを外し、再度Doctrineのコマンド実行・・・・・・おー!!DBのDROP&CREATEに成功!!
恐る恐る、http://localhost/ にアクセスすると・・・
来ました、ログイン画面!インストール完了です!
(しかし、未だに「symfony openpne:install」のコマンドではエラーが出ることは秘密です・・・)