Bug(バグ) #3603
完了pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る
100%
説明
現象¶
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 に接続を行わないように修正
kaoru n さんが7年以上前に更新
取り急ぎの回避策→ 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); ====================
Shinichi Urabe さんが7年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Shinichi Urabe にセット
#3603-2 の修正が妥当かを含めて調査
Shinichi Urabe さんが7年以上前に更新
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();
Shinichi Urabe さんが7年以上前に更新
pear.symfony-project.com や plugins.symfony-project.org が落ちた時もだが、設置環境からこれらのドメインの外向けのアクセスを制限しているような環境も当然、インストールできない
Shinichi Urabe さんが7年以上前に更新
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"
Shinichi Urabe さんが7年以上前に更新
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();
Shinichi Urabe さんが7年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
Shinichi Urabe さんが7年以上前に更新
- コピー先 Backport(バックポート) #4198: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る を追加
Shinichi Urabe さんが7年以上前に更新
- コピー先 Backport(バックポート) #4199: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る を追加
Rimpei Ogawa さんが7年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更