Project

General

Profile

Bug(バグ) #3603

pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る

Added by kaoru n over 10 years ago. Updated almost 7 years ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Target version:
Start date:
2017-05-26
Due date:
% Done:

100%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)

Description

現象

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 に接続を行わないように修正


Subtasks

Backport(バックポート) #4198: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出るFixed(完了)Shinichi Urabe

Backport(バックポート) #4199: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出るFixed(完了)Shinichi Urabe


Related issues

Related to OpenPNE 3 - Bug(バグ) #1780: php ./symfony openpne:install時にエラーが出る Fixed(完了) 2010-11-11
Copied to OpenPNE 3 - Backport(バックポート) #4198: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る Fixed(完了) 2017-05-26
Copied to OpenPNE 3 - Backport(バックポート) #4199: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る Fixed(完了) 2017-05-26

Associated revisions

Revision f7752c57 (diff)
Added by Shinichi Urabe over 7 years ago

(refs #3603) Fixed so that installation can be done even if it can not connect to channel server "pear.symfony-project.com", "plugins.symfony-project.org".

Revision 5ed32393
Added by kaoru n almost 7 years ago

Merge pull request #463 from ShinichiU/t-3603

(refs #3603) Fixed so that installation can be done even if it can no…

History

#1 Updated by kaoru n over 10 years ago

#2 Updated by kaoru n over 7 years ago

取り急ぎの回避策→ 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);
====================

#3 Updated by Shinichi Urabe over 7 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Shinichi Urabe

#3603-2 の修正が妥当かを含めて調査

#4 Updated by Shinichi Urabe over 7 years ago

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();

#5 Updated by Shinichi Urabe over 7 years ago

pear.symfony-project.com や plugins.symfony-project.org が落ちた時もだが、設置環境からこれらのドメインの外向けのアクセスを制限しているような環境も当然、インストールできない

#6 Updated by Shinichi Urabe over 7 years ago

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"  

#7 Updated by Shinichi Urabe over 7 years ago

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();

#8 Updated by Shinichi Urabe over 7 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

#9 Updated by Shinichi Urabe over 7 years ago

  • Description updated (diff)
  • Target version set to OpenPNE 3.9.0

#10 Updated by Shinichi Urabe over 7 years ago

#11 Updated by Shinichi Urabe over 7 years ago

#12 Updated by Rimpei Ogawa over 7 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#14 Updated by kaoru n almost 7 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

マージしました

Also available in: Atom PDF