@blog.justoneplanet.info

日々勉強

OpenPNE3で画像がアップロード出来ない

■パーミッションの設定が間違っている

そんなときは、公開ディレクトリの「uploads」以下のパーミッションを、すべて「777」にする。


■公開ディレクトリの設定が間違っている

symfonyの公開ディレクトリの設定はデフォルトでは「web/」である。

しかし、これを理解せずに公開ディレクトリを「httpdocs/」などとしインストールを進めると、アップロードした写真が、「web/」配下に保存され、当然ながら公開ディレクトリとは異なるため、写真が表示されなくなる。

対策:symfonyにおける公開ディレクトリ名の変更

公開ディレクトリ名が「httpdocs」の場合

<?php
# FROZEN_SF_LIB_DIR: /private/tmp/symfony/lib
require_once dirname(__FILE__).'/../lib/symfony/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();
class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->enableAllPluginsExcept(array('sfCompat10Plugin'));
    $this->setIncludePath();
  }
  public function setIncludePath()
  {
    sfToolkit::addIncludePath(array(
      //PEAR
      dirname(__FILE__).'/../lib/vendor/PEAR/',
    ));
  }
}

上述の「config/ProjectConfiguration.class.php」を以下のように変更する。

<?php
# FROZEN_SF_LIB_DIR: /private/tmp/symfony/lib
require_once dirname(__FILE__).'/../lib/symfony/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();
class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->enableAllPluginsExcept(array('sfCompat10Plugin'));
    $this->setIncludePath();
    $this->setWebDir($this->getRootDir() . '/httpdocs');
  }
  public function setIncludePath()
  {
    sfToolkit::addIncludePath(array(
      //PEAR
      dirname(__FILE__).'/../lib/vendor/PEAR/',
    ));
  }
}

追記したのは、11行目部分の以下の記述。

$this->setWebDir($this->getRootDir() . '/httpdocs');

そして以下のコマンドでOpenPNEを再インストールする。

./symfony openpne:migrate
参考

別解:サーバ設定におけるWeb公開ディレクトリ名の変更

どちらかというと美しくない方法ではあるが、サーバ設定で変更する方法も考えられる。

DocumentRoot /var/www/vhosts/「ドメイン」/subdomains/「ドメイン」/httpdocs
<Directory  /var/www/vhosts/「ドメイン」/subdomains/「ドメイン」/httpdocs>

httpd.confやhttpd.include(Plesk)ファイルの上述の部分を以下のように編集

DocumentRoot /var/www/vhosts/「ドメイン」/subdomains/「ドメイン」/web
<Directory  /var/www/vhosts/「ドメイン」/subdomains/「ドメイン」/web>

■その他

symfony側のバグという可能性もある。

2 Comments»

symfonyテ猶HP [LL繝輔Ξ繝シ繝繝ッ繝シ繧ッBooks] (LL繝輔Ξ繝シ繝繝ッ繝シ繧ッBOOKS # 3)

symfonyテ猶HP [LL繝輔Ξ繝シ繝繝ッ繝シ繧ッBooks] (LL繝輔Ξ繝シ繝繝ッ繝シ繧ッBOOKS # 3)
蜀ョケ縺ッ邁。貎斐〒繧医¥縺セ縺ィ縺セ縺」縺ヲ縺k縺後√し繝ウ繝励Ν繧ウ繝シ繝峨繝…

すみません。文字化けしちゃってるのですが…
所要でしたらお手数ですが再度、ご投稿をお願いいたします。。。

RSS feed for comments on this post.TrackBack URL

Leave a comment