私はsymfonyのチュートリアルに従っていましたが、障害にぶつかりました。
私のセットアップは現在のバージョンの xampp (Windows 上で実行) であるため、Apache と php は比較的最新です。
こちらの「クイックツアー」に従ってください:
http://symfony.com/doc/current/quick_tour/the_big_picture.html
すべてが開発環境でうまく機能しました。ただし、ガイドをもう少し進めて、こちらのガイドを使用して独自のテスト バンドルの作成を開始しました。
http://symfony.com/doc/current/book/page_creation.html
本番環境で正しく動作させることができません。(プリインストールされたデモと同じように、開発環境では問題なく動作します。
php app/console cache:clear --env=prod --no-debug コマンドを使用してキャッシュをクリアしようとしましたが、それは役に立ちませんでした (また、検索時にポップアップする唯一の提案のようです.
ルートを表示すると、「/hello/{name}」ルートがルートのリストに正しく表示されていることがわかります。
私の app/config/routing.yml には次のものがあります。
acme_hello:
resource: "@AcmeHelloBundle/Resources/config/routing.yml"
prefix: /
当然のことですが、私の src/Acme/HelloBundle/Resources/config/routing.yml には
hello:
path: /hello/{name}
defaults: { _controller: AcmeHelloBundle:Hello:index }
問題が何であるかについて誰か提案がありますか? (ルーティング情報を routing_dev.yml ファイルからコピーし、バンドルを appkernel.php ファイルに再割り当てすることで、すぐに使えるデモを本番ルートに変換しようとしましたが、同じ問題がありました)
- -編集 - -
リクエストごとに、ここに私の appkernel.php ファイルがあります
Symfony\Component\HttpKernel\Kernel を使用します。Symfony\Component\Config\Loader\LoaderInterface を使用します。
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new Acme\HelloBundle\AcmeHelloBundle(),
new Acme\DemoBundle\AcmeDemoBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
}
---2回目の編集---
私は問題を見つけました。prod ログに何も表示されないのは奇妙だと思ったので、何かがリダイレクトされて、app.php ファイルが完全に失われたのではないかと考えました。
結局のところ、これが問題でした。Web フォルダー (symfony が事前構成されていたもの) にある .htaccess ファイルの内容を空にすると、すべてが魔法のように機能し始めました。