Archive for the ‘xampp’ Category
VertrigoServ改め、XAMPP+EclipseにOpenPNEをインストールしてwindowsで動かそう!
今年初めて母の日にカーネーションを息子たちからもらったMakiです。
まあ今までも託児所で作成したプレゼントをもらったりもしてますが、「子供たちの意思で」もらったのは今年が初めてです。
いやあ、成長したものです。
それはさておき、VertrigoServとXAMPPの共存をあきらめ、XAMPP一本に絞ったところで
いよいよOpenPNE3をwindows上で動かしてみたいと思います。
今回は一気に行きますので長いです!がんばっていきましょう!!
※あくまでも「開発環境として」windows上で動かすことを前提に記事を書いています。
以下の状態でWEB公開するのはセキュリティ上危険がありますので、絶対にWEB公開を行わないでください。
本投稿により不具合、不都合等が生じたとしても、責任はもてません。自己責任にてお願いいたします。
ところで前回の記事を読んだ方ですと
「あれ?OpenPNE3はsymfony1.2系で動きます、と書いておきながら、
symfony1.0.20をインストールしてなかったっけ??」
と思われたかもしれません。
そうなんです。OpenPNE3はsymfony1.2系で動くんです・・・が、まずはOpenPNE3をダウンロードします。
OpenPNE3のダウンロード
OpenPNEのダウンロードページからzipファイルをダウンロードしてくることもできますが、
今回はSubversionリポジトリからチェックアウトします。
Eclipseを起動していない場合は、起動します。
※前回Pleiadesをインストールしていますので、Eclipseは日本語化されているものとして進めます。
[ウインドウ]→[パースペクティブを開く]→[その他]とクリックしていきます。
SubversiveとSubclipseの2つ分、SVNリポジトリー・エクスプローラーが表示されています。
下側のSVNリポジトリー・エクスプローラーをクリックします。
私の環境では下がSubclipseのものでした(後からインストールしたから?)、違う人もいるかもしれません。
SVNリポジトリ・ビューの中で右クリック、[新規]→[リポジトリー・ロケーション]とクリックするか
ビューの上部にある、オレンジの電池のようなアイコンにSVNという文字とプラス記号が書いてあるアイコン
「SVNリポジトリーの追加」をクリックします。
SVNリポジトリーの追加ダイアログのロケーションのURL部分に
「https://trac.openpne.jp/svn/OpenPNE3」を指定します。
※OpenPNEのダウンロードページの説明では
「https://trac.openpne.jp/svn/OpenPNE3/tags/OpenPNE-3.0.4」
をチェックアウトしています。
常にtrunkから最新のものを利用したいので、上記からtrunkをチェックアウトします
※現在リリースされているOpenPNE3(3.0系)はDoctrineとPropelを併用していますが、
3.1以降ではDoctrineを採用するということでリポジトリのレイアウトが変更になりました。
(参考: [openpne-dev:516] OpenPNE3 のレポジトリレイアウトを 3.1 に向けて変更します
[openpne-dev:517] 【重要】OpenPNE3レポジトリレイアウト変更のお知らせ
そのため、trunkからチェックアウトしたものは3.1系となりますので
3.0系の開発をしようと考えていらっしゃる方はご注意ください
「完了」ボタンを押すと、(初めて上記URLにアクセスするときのみ)「電子証明の承諾」(SSL証明書を受け入れるかどうかの確認)ダイアログが表示されます。
今後もアクセスすることになりますので、「永久に承諾」ボタンをクリックします。
SVNリポジトリ・ビューにオレンジの電池のようなアイコンができたら、右にある十字をクリックして展開します。
「trunk」からチェックアウトしたいので、右クリックし「チェックアウト」をクリックします。
デフォルトのまま特にいじらず、「完了」を押します。
「新規プロジェクト」ダイアログの「ウィザードの選択」で、
(当然ですが)「PHPプロジェクト」を選択し、「次へ」ボタンを押します。
「PHPプロジェクト」ダイアログの「新規PHPプロジェクト」「PHPプロジェクトの作成」にて
プロジェクト名に入力(お好きな名前をどうぞ)、JavaScriptサポートにチェックを入れて、
「次へ」ボタンを押します。
「PHPインクルード・パス」は今はまだ、指定できないので、このまま「次へ」
「PHPビルド・パス」も(これは良くわかってません。PHPなんでビルドもないだろう・・と思うんですが・・)
そのまま「完了」
「関連付けられたパースペクティブを開きますか?」という確認のダイアログが表示されます。
開かないことでの不都合もありませんので、「はい」をクリック。
「上書きの確認」という確認のダイアログが表示されます。
ここでキャンセルしてしまったら、何も起きませんので「OK」をクリック
ようやくチェックアウトが始まります
・
・
・
チェックアウトが完了しました。
symfony1.2をチェックアウト
※すでにPEARでsymfony1.2を入れたよーという場合、OpenPNEのzip版をダウンロードしてきた場合は、
このステップは不要です。
symfonyをsubversionのリポジトリからチェックアウトしてきます。
本家のドキュメントにもありますが、
svn:externals属性を利用することで、subversion管理下にあるOpenPNEと共存?させることが可能です。
このとき、プロジェクトを丸ごとチェックアウトしてインクルードする結果となると重複エラーになるので、
libとdataのみをチェックアウトしてくると良いと思います
まあ、通常はPEARでsymfony1.2の環境を作っていると思われますので
今回はEclipseの1プロジェクトとしてsymfonyをチェックアウトしてきます。
再度SVNリポジトリー・エクスプローラーを開きます。
SVNリポジトリ・ビューにてSVNリポジトリーを追加します。
SVNリポジトリーの追加ダイアログのロケーションのURL部分に
「http://svn.symfony-project.com/branches/1.2」を指定します。
「完了」ボタンを押します。
SVNリポジトリ・ビューにオレンジの電池のようなアイコンができたら、右にある十字をクリックして展開してみます。
必要なのは「data」と「lib」ですが、1つずつチェックアウトも面倒なので、
電池のようなアイコンを右クリックし「チェックアウト」をクリックします。
デフォルトのまま特にいじらず、「完了」を押します。
「新規プロジェクト」ダイアログの「ウィザードの選択」で、
(当然ですが)「PHPプロジェクト」を選択し、「次へ」ボタンを押します。
「PHPプロジェクト」ダイアログの「新規PHPプロジェクト」「PHPプロジェクトの作成」にて
プロジェクト名に入力(お好きな名前をどうぞ。まあ「symfony1.2」が無難ではないでしょうか)、
JavaScriptサポートにチェックを入れず(必要ないですからね)、「次へ」ボタンを押します。
「PHPインクルード・パス」も特に必要ないので、このまま「次へ」
「PHPビルド・パス」もそのまま「完了」
「関連付けられたパースペクティブを開きますか?」という確認のダイアログで、「はい」をクリック。
「上書きの確認」という確認のダイアログでも「OK」をクリック
symfonyのチェックアウトが始まります。
インクルードパスの指定
symfony本体についてEclipseでインクルードパスを指定しておくとコード補完ができて便利です。
プロジェクトの下のほうにある、「PHP インクルードパス」を右クリックし
「インクルード・パス」→「インクルード・パスの構成」をクリックします。
PEARにてsymfonyをインストールした場合は
「ライブラリー」タブで「外部ソース・フォルダの追加」をクリック
「フォルダの参照」にてPEARライブラリのパス
(このブログの一連の記事通りに環境を作成した場合は「C:/PDT2.0/xampp/php/PEAR」)を指定し
「OK」をクリック
svnでチェックアウトしてきた場合は、
「プロジェクト」タブで「追加」をクリック
さきほどチェックアウトしたsymfonyプロジェクトを指定
「OK」をクリックします。
XAMPP環境を整える
PHP、Apache、MySQLの環境を整えます。
PHP編
php.iniはWEB開発用のもの(このブログの一連の記事通りに環境を作成した場合は「C:\PDT2.0\xampp\apache\bin\php.ini」)とコマンドライン用のもの(同じく「C:\PDT2.0\xampp\php\php.ini」)2つあります。
それぞれを修正していきます。バックアップとして、修正する前にコピーをしておきましょう。
246行目(symfonyはメモリをたくさん食うようなので、多めにしておきます)
memory_limit = 128M
1171(php\php.iniは1176)行目以下(日本語の設定)
[mbstring] ; language for internal character representation. mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) mbstring.internal_encoding = UTF-8 ; http input encoding. mbstring.http_input = pass ; http output encoding. mb_output_handler must be ; registered as output buffer to function mbstring.http_output = pass ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. mbstring.encoding_translation = Off ; automatic encoding detection order. ; auto means mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another mbstring.substitute_character = none; ; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions mbstring.func_overload = 0 mbstring.script_encoding = UTF-8
414行目以下(エスケープ設定)
; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off
さらにeAcceleratorを有効にすることで、PHPの処理速度が改善するのですが
Pleiades All in Oneに同梱されているxampp1.7.0のeAcceleratorはバージョンが違うらしくエラーになるようです。
(参考:http://ms76.jp/tag/php/)
xampp1.7.1では、エラーにならないようなのでアップグレードパッケージ(zip版)を入手して上書きしてあげると良いと思います。
1296(php\php.iniは1391)行目以下
[eAccelerator] extension=eaccelerator.dll eaccelerator.shm_size = "0" eaccelerator.cache_dir = "C:\PDT2.0\xampp\tmp" eaccelerator.enable = "1" eaccelerator.optimizer = "0" eaccelerator.debug = "0" eaccelerator.check_mtime = "1" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.keys = "shm_and_disk" eaccelerator.sessions = "shm_and_disk" eaccelerator.content = "shm_and_disk" eaccelerator.admin.name = eaccelerator.admin.password =
Apache編
Apache(バーチャルホスト)の設定(このブログの一連の記事通りに環境を作成した場合は「C:\PDT2.0\xampp\apache\conf\extra\httpd-vhosts.conf」)も変更します。こちらもオリジナルのファイルはコピーしてバックアップしておきましょう。
19行目(コメントアウトされているので#をとります)
NameVirtualHost *:80
以下を末尾に追加
<VirtualHost *:80>
ServerName openpne3.1.local.win
DocumentRoot "C:/PDT2.0/xampp/htdocs/openpne/web"
DirectoryIndex index.php
Alias /sf C:/PDT2.0/xampp/htdocs/symfony1.2/data/web/sf
<Directory "C:/PDT2.0/xampp/htdocs/symfony1.2/data/web/sf">
AllowOverride All
Allow from All
</Directory>
<Directory "C:/PDT2.0/xampp/htdocs/openpne/web">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
上記は、PDT2.0を(ワークスペースの設定について)デフォルトの状態で起動し、
プロジェクト名に「openpne」と指定してチェックアウト
symfony1.2をプロジェクト名「symfony1.2」と指定してチェックアウトしたものに対して
http://openpne3.1.local.winでOpenPNE3を動かそうとしている場合の設定です。
symfony1.2をPEARでインストールした場合は、
(省略) Alias /sf C:/PDT2.0/xampp/php/data/symfony/web/sf <Directory "C:/PDT2.0/xampp/php/data/symfony/web/sf"> (省略)
のように指定します。
今のところ、OpenPNE3ではSSLの対応をしていないと思いますが、SSLを利用する場合は
httpd-ssl.confも同じように修正(バーチャルホストの設定を追加)します。
さらに、http://openpne3.1.local.winにブラウザでアクセスした際に、上記で設定した内容をみてくれるようにhostsファイルを編集します。
「C:\WINDOWS\system32\drivers\etc\hosts」をメモ帳などテキストエディタで開き
127.0.0.1 localhost openpne3.1.local.win
のようにlocalhostのあとに追記します。
MySQL編
主に文字コードの設定をします。
設定ファイル(このブログの一連の記事通りに環境を作成した場合は「C:\PDT2.0\xampp\mysql\bin\my.cnf」)はおそらく
「短縮ダイヤル」という謎のものになっているかと思いますので、
編集するためにはテキストエディタを先に開いておいて、ドロップします(しつこいようですが、こちらもバックアップしておきましょう)。
18行目
[client] default-character-set = utf8
27行目
[mysqld] default-character-set = utf8 old-passwords skip-character-set-client-handshake
148行目
[mysqldump] default-character-set = utf8 skip-opt create-options set-charset hex-blob single-transaction master-data
159行目
[mysql] default-character-set = utf8
いよいよセットアップ開始!
お待たせしました!!いよいよセットアップ開始です。
OpenPNE3.0 インストール・セットアップガイド にあるとおりなのですが、まずはconfig/ProjectConfiguration.class.php を編集します。
チェックアウトしたプロジェクトの「config/ProjectConfiguration.class.php.sample」をコピーして
同じconfig以下に「ProjectConfiguration.class.php」という名前で貼り付けます。
次にできた「ProjectConfiguration.class.php」を開いて、
3行目の##SYMFONY_LIB_DIR## を symfonyがインストールされているディレクトリのパスに置き換えます。
require_once 'C:/PDT2.0/xampp/htdocs/symfony1.2/lib/autoload/sfCoreAutoload.class.php';
symfony1.2にチェックアウトしてきた場合。PEARでインストールした場合は
require_once 'C:\PDT2.0\xampp\php\PEAR\symfony/autoload/sfCoreAutoload.class.php';
となると思います(ここはPEARのsymfony1.2環境がないので未確認です。間違ってたらごめんなさい)。
次にデータベース設定を行います。
XAMPPを起動して、ApacheとMySQLをスタートします。
XAMPPコントロールパネルのapacheの隣、adminボタンをクリックしても
mod_rewrite効果でsymfonyのエラー画面に飛んでしまうかと思います。
なので、直接phpMyAdminの画面に飛びます
ブラウザでhttp://localhost/phpmyadminにアクセスします。
「新規データベースを作成する」の下のテキストフォームにデータベース名「OpenPNE3.1」(お好きな名前でどうぞ)
「照合順序」に「utf8_general_ci」を選択して「作成」ボタンを押します。
コマンドを実行してセットアップします。
コマンドプロンプトで、プロジェクトルートに移動します。
cd C:\PDT2.0\xampp\htdocs\openpne
openpneインストールコマンドを実行します
symfony openpne:install
画面にしたがって設定を入力していきます。
まずは、DBMSの選択。MySQLなので、「mysql」と入力し、Enter
データベースのユーザネーム。xamppインストール後に何も設定を変えていなければ、「root」と入力しEnter
データベースのパスワード。こちらも特に設定をかえていなければパスワードは設定されていないので、そのままEnter
データベースのホストネーム。「localhost」と入力しEnter
データベースのポート。なにも入力せず、そのままEnter
データベース名。先ほど作成したデータベース名(このブログの場合は「OpenPNE3.1」)を入力しEnter
データベースのソケットパス。なにも入力せず、そのままEnter
確認画面が出ますので、確認して問題なければ「y」を入力しEnter
インストールが始まります。
インストールの途中でDoctrineがデータベースのDrop&Createをしようとしてエラーになっていたようでした。
どうやらデータベース名をOpenPNE3.1とピリオドをつけていたのがエラーの原因のようです。
インストールの処理はとまらずに進むので特に問題はなさそうですが、データベース名を別なものに変更したほうが良いかもしれません
ブラウザからアクセスしてみましょう。
バーチャルホスト設定で指定したURLにアクセスしてみます。
(このブログの例ですとhttp://openpne3.1.local.win/pc_frontend_dev.php)
どうも3.0のソースが混ざってしまっているようで(propelの名残が・・)フッターにエラーが出てしまっていますが、
ログインフォームに sns@example.com / password と入力するとログインできます。
続いて管理画面にアクセスしてみましょう。
このブログの例ですとhttp://openpne3.1.local.win/pc_backend_dev.phpとなります。
ログインフォームに admin / password と入力するとログインできると思います。
ふぅ~お疲れ様でした!!
これでwindowsでOpenPNE3が動くようになりました。
関連する投稿
Pleiades All in Oneの導入・・・そしてVertrigoServとXAMPPの共存の失敗
Makiです。
Windowsでsymfony環境を整えるコーナー第3回「VertrigoServにOpenPNE3をインストールしてwindowsで動かしてみよう!」
のつもりだったんですが・・・どうも、VertrigoServとXamppとでPEARを複数入れるのが難しいことが判明しました。
(やればできそうではあるんですが)MAMPのように、リネームしてぽいっというお手軽な感じではなく
導入までも大変、設定も、運用も大変・・・なのはイマイチですよね。。
と、いうわけでVertrigoServを残すか、XAMPPを残すか・・となるわけですが
OpenSSLとメールサーバがある、ということでXAMPPを残すことにしました。
Pleiades All in Oneのインストール
まずはPHP開発環境であるPDTをインストールします。
Pleiades All in OneにはXAMPPもついてきているので一石二鳥です。
Macの場合は、shimaさんがエントリーを書いてありますので、そちらを参照してくださいね。
で、windowsの場合なんですが、
上記、日本語化の中で触れられているPleiades(プレアデス:Eclipse プラグイン日本語化プラグイン)を配布しているサイトMergedocProjectにて日本語化済みのPDTがPleiades All in Oneとして配布されていますので「PHP」の「Full All in One (JRE あり) 」をダウンロード、展開すればOKです。
詳しい説明については上記のサイトにありますので、あまりしつこく説明はしませんが
解凍するときにpathが長いとエラーになる、ということには注意です。
またパッケージにはsubclipseじゃなくて、subversiveが入っています。
私の好みはsubclipseなので、subclipseを後から入れます。
パースペクティブの「SVNリポジトリ・エクスプローラー」など同じ名前で2つ=subclipseとsubversive=
表示されたりして紛らわしいため、subversiveをアンインストールしたかったのですが
eclipse内からでは無理な様子(直接ファイルを削除すれば大丈夫、なんでしょうけど、依存を考えるとちょっと・・・)
その他、入れているプラグインは以下です。
(リンク先はEclipseでソフトウェア更新の際に入力するアップデートサイトのURLです)
- Mylyn(subclipse、Tracと連携させて使います。subversiveでも使えるようです)
- MylynとTracを連携させるプラグイン
- Clay
- DBViewer
- symfoclipseが配布をやめてしまったようなので、YAMLエディタ
xamppを利用できるようにする
Pleiadesのサイトにもありますが、ダウンロード&解凍した後、xampp\setup-xampp.batを実行します。
go-pear.batの実行
\xampp\php\ にある、go-pear.batを実行・・・なんですが、エラーになります。
\xampp\php\PEARにあるgo-pear.pharが古いのがエラーの原因のようですのでこちらはrenameしておいて
こちらから新しいものをダウンロードしてきます。
※Revision 1.12のものはPEARのライブラリの関係で?うまくいきませんでした。
さらに、\xampp\php\pear.iniがあるとエラーになるので、renameしておきます。
とりあえずlocal copy」でインストールします。
なので、まずは「local」と入力します。
確認されますので「yes」と入力します。

PEARインストールの設定が表示されます。パスを確認して問題なければそのままEnterキーを押します。
・・・インストールが始まります・・・
環境変数の設定
まずはpathを通します。こちらは前回の(使わないことになっちゃいましたけど)VertrigoServeでの例がありますので、こちらを参考に。
私の場合はc:\PDT2.0\xamppにXAMPPがありますので、「C:\PDT2.0\xampp\php;C:\PDT2.0\xampp\mysql\bin」を追加しています。
上記の設定が終わったら、「システム環境変数」の「新規」ボタンをクリック
「新しいシステム変数」ダイアログボックスの「変数名」に「PHP_PEAR_SYSCONF_DIR」、「変数値」にpear.iniのある場所を入力して「OK」ボタンを押します。
そうしないと、pear.iniの場所がデフォルトのc:\WINDOWS\pear.iniとなってしまい
後からインストールするライブラリが使用するdata,docs,testsが(これまたデフォルト?の)c:\php5\以下に入ってしまいます。
(PEARのインストール時の設定が全く無視されてしまいます。なんてこと!!)
コマンドプロンプトを再起動し、
pear config-show
とすると、上記の設定の確認ができます。
(うまくいかない場合は、環境変数の設定を見直してみてください)
symfonyのインストール
いよいよ、symfonyをインストールします。
コマンドプロンプトにて
pear channel-discover pear.symfony-project.com pear install symfony/symfony-1.0.20
symfony/symfony-XXXとバージョンを指定してやる必要があります。
※2009.4.18時点のsymfony1.0系の最新は1.0.20なので、そちらを指定しています。
(OpenPNE3は1.2系で動作しますが、こちらをどうするのか?については後日。)
インストールができたら、確認してみましょう
symrony -V
先ほどインストールしたsymfonyのバージョン(今回の例だと1.0.20)が帰ってくればインストール完了です。



















