■パーミッションの設定が間違っている
そんなときは、公開ディレクトリの「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
参考
- http://www.symfony-project.org/cookbook/1_2/ja/directory_structure
- http://symfony.xrea.jp/1.1/book/19-Mastering-Symfony-s-Configuration-Files.html
別解:サーバ設定における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側のバグという可能性もある。
ピンバック: 繧ゅ⊂縺ェ繧ゅ↑譖ク謌ソ
すみません。文字化けしちゃってるのですが…
所要でしたらお手数ですが再度、ご投稿をお願いいたします。。。