Bug(バグ) #3603
完了
pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る
kaoru n さんが10年以上前に追加.
ほぼ7年前に更新.
説明
pear.symfony-project.com に接続できない時、下記のエラーが発生しインストールが中断する
>> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com"...
>> sfPearFrontendPlugin Attempting fallback to https instead of http on channel
>> sfPearFrontendPlugin "pear.symfony-project.com"...
Unable to register channel "pear.symfony-project.com"
openpne:install 時、opPluginManager の初期化を行うが、初期化の処理の中で channel 情報取得のため、
pear.symfony-project.com に接続を試みるが、接続できない状態であれば、エラーとなり、例外が投げられ、インストールが中断される。
修正内容¶
openpne:install 時に pear.symfony-project.com や plugins.symfony-project.org に接続を行わないように修正
関連するチケット
3 (0件未完了 — 3件完了)
取り急ぎの回避策→ http://sns.openpne.jp/communityTopic/603
registerChannel('pear.symfony-project.com') してるところを通らないようにする方法を教えてもらいましたので共有します。
※ OpenPNE-3.8.23 インストールと opPlugin:install で opCommunityTopickPlugin インストールして軽く動作確認しかしてないです。
====================
--- a/lib/plugin/opPluginManager.class.php
+++ b/lib/plugin/opPluginManager.class.php
@@ -54,6 +54,13 @@ class opPluginManager extends sfSymfonyPluginManager
catch (sfPluginException $e) {}
}
+ public function configure()
+ {
+ // register callbacks to manage web content
+ $this->dispatcher->connect('plugin.post_install', array($this, 'listenToPluginPostInstall'));
+ $this->dispatcher->connect('plugin.post_uninstall', array($this, 'listenToPluginPostUninstall'));
+ }
+
public function getChannel()
{
return $this->getEnvironment()->getRegistry()->getChannel($this->channel);
====================
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Shinichi Urabe にセット
opPluginManager::configure()
を定義し、 parent::configure()
つまり sfSymfonyPluginManager::configure()
を呼ばない処理としている。
sfSymfonyPluginManager::configure()
においては以下の処理がある
$this->environment->registerChannel('pear.symfony-project.com', true);
$this->environment->registerChannel('plugins.symfony-project.org', true);
$this->registerSymfonyPackage();
$this->dispatcher->connect('plugin.post_install', array($this, 'listenToPluginPostInstall'));
$this->dispatcher->connect('plugin.post_uninstall', array($this, 'listenToPluginPostUninstall'));
- そのうち #3603-2 の修正を行うことで呼び出される処理を以下の 2 つとしている
$this->dispatcher->connect('plugin.post_install', array($this, 'listenToPluginPostInstall'));
$this->dispatcher->connect('plugin.post_uninstall', array($this, 'listenToPluginPostUninstall'));
これらの処理が呼び出されないことで起きる懸念を調査
$this->environment->registerChannel('pear.symfony-project.com', true);
$this->environment->registerChannel('plugins.symfony-project.org', true);
$this->registerSymfonyPackage();
pear.symfony-project.com や plugins.symfony-project.org が落ちた時もだが、設置環境からこれらのドメインの外向けのアクセスを制限しているような環境も当然、インストールできない
symfony の channel サーバ使って、いくつか symfony のプラグインをインストールしようとしたが symfony plugin:install
は動かない
$ php symfony plugin:install sfImageTransformPlugin
>> plugin installing plugin "sfImageTransformPlugin"
No release available for plugin "sfImageTransformPlugin"
$ php symfony plugin:install sfDoctrineGuardPlugin
>> plugin installing plugin "sfDoctrineGuardPlugin"
No release available for plugin "sfDoctrineGuardPlugin"
opPluginManager::configure()
が呼ばれる機能
- openpne:install
- openpne:fast-install
- opPlugin:install
- opPlugin:uninstall
これらの機能において以下が呼び出されなくても、動作は問題ない
$this->environment->registerChannel('pear.symfony-project.com', true);
$this->environment->registerChannel('plugins.symfony-project.org', true);
$this->registerSymfonyPackage();
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
- 説明 を更新 (差分)
- 対象バージョン を OpenPNE 3.9.0 にセット
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
他の形式にエクスポート: Atom
PDF