操作
Bug(バグ) #1780
完了php ./symfony openpne:install時にエラーが出る
開始日:
2010-11-11
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
No
3.8 で発生するか:
Unknown (未調査)
説明
http://sns.openpne.jp/diary/25547 より転記
サーバ:試験用のWindows XPの普通のノートPC 下記インストール済み、動作確認OK Apacche 2.2.17 MySQL 5.1.52 PHP 5.3.3 OpenPNEは3.4.8をDLして、D:\OpenPNEに展開した。 あとは、セットアップなんだけど php ./symfony openpne:install でエラーが出て先に進めず。エラー内容解析中。
Mutsumi Imamura さんが13年以上前に更新
- 優先度 を Normal(通常) から High(高め) に変更
- 対象バージョン を OpenPNE 3.7.0 にセット
報告元の追加報告を転記します。
pnetanさん、kit.tさん すみません、しばらくこのサイトにこられず放置状態でしたm(_ _)m kit.tさん config以下のファイルのコピーはすませて、base_urlとhttp_proxyの設定は書き換えてあります。 エラーの内容は =============ここから============= The DBMS : mysql The Database Username : xxxxxxxx The Database Password : ****** The Database Hostname : localhost The Database Port Number : The Database Name : openpne The Database Socket : Is it OK to start this task? (Y/n) Y >> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"... >> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com "... Unable to register channel "pear.symfony-project.com" =============ここまで============= なので、pear.symfony-project.comでchannel登録が出来ません。ですね、サーバーはイントラネット内に置いてあるので、PROXYの問題が考えられます。試験的にネット環境を変えて再度トライしてみようと思います。
Shingo Yamada さんが約13年前に更新
- 担当者 を Yuya Watanabe にセット
プラグインチャンネルサーバに繋げない環境でも、何らかの形でインストールが正常に行える様に修正をお願いします。
Yuya Watanabe さんが約13年前に更新
処理の流れ¶
問題であると思われるまでの処理の流れを記述する.
- OpenPNEインストール時にlib/task/opPluginSyncTask.class.phpが実行される.
- opPluginSyncTaskクラスにおいて
- config/OpenPNE.yml内plugin_list_base_urlの値にあるURLからプラグインリストを取得する,
- それぞれのプラグインのlib/task/opPluginInstallTask.class.phpのインスタンスが生成され,実行される.
- opPluginInstallTaskクラスexecute()メソッドにおいて
- チャンネルサーバの設定を確認する.設定はconfig/OpenPNE.yml内default_plugin_channel_serverの値を用いる.
- lib/plugin/opPluginManager.class.phpを生成する.
- opPluginManagerクラス__construct()において
- lib/vendor/symfony/lib/plugin/sfPearEnvironment.class.phpのregisterChannel()を用いてチャンネルサーバを登録しようとする.
- 同クラス内registerOpenPNEPackage()を呼び出す.
原因¶
処理の流れ4-2の部分でチャンネルサーバに接続できないためOpenPNEのパッケージ登録に失敗することで発生しているsfPluginExceptionを拾う部分がないためOpenPNEインストールタスク全体が停止する.
原因の発生源¶
上記問題箇所は以下のような流れで発生している.
- 7c851276 チャンネル登録部分が追加される.
- 7b2d8f45 チャンネル登録時の例外処理を追加される.
- 3c19fa17 OpenPNEのパッケージ登録部分の追加(本チケットにおける問題を発生する例外を投げる部分)
実装方針¶
本チケットの問題を解決するにはOpenPNEインストールタスク全体が停止しないようにする必要がある.ここではプラグインインストールが失敗するという粒度にすることが適切であると思われるため,処理の流れ2-2の呼び出し部分より深い部分で例外処理を行うべきである.
プラグインチャンネルサーバにつながらないという原因の場合,例外の発生源として以下の場所が考えられる.
- 処理の流れ4-2でOpenPNEのパッケージ登録に失敗すること投げられるsfPluginException
- 処理の流れ4-1でチャンネルを登録できないときに投げられるsfPluginException(対処済み)
後者の発生源は例外に対して処理が施されているが 7b2d8f45 において何らかの問題を解決するためにすでに深い階層部分で例外処理を行う修正が行われている.
そのため例外を拾う部分はopPluginManagerクラス__construct()内となる4-2で例外処理を行うことが妥当であると思われる.
wa ta さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 fa42821448ce1ecaef508140fca28463827beee9 で適用されました。
Yuya Watanabe さんが約13年前に更新
note-10適用後では処理の流れ2-2においてsfCommandExceptionが発生し,これを拾う処理がなされるようになる.
これは引数のoptionに--force-licenceを付与することで発生しないようにすることもできるが,適切かどうかの判断はまだ行っていない.
Yuya Watanabe さんが約13年前に更新
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Mutsumi Imamura さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
kaoru n さんが10年以上前に更新
- 関連している Bug(バグ) #3603: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る を追加
操作