Jac*_*jna 8 production-environment fatal-error classnotfoundexception symfony
我正在Symfony 2.1中创建新项目.我想检查我的应用程序是否在我的服务器上正确运行,因此我复制了所有文件,清除了缓存并设置了权限.在开发环境本地一切都很好,但当我在我的服务器上请求"online - prod"版本时,我收到一个错误:
Fatal error: Class 'Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle' not found in /www/gastlich_www/www/livescore.gastlich.iq.pl/app/AppKernel.php on line 25
Run Code Online (Sandbox Code Playgroud)
我找到了一些关于这个问题的信息,但是所有这些都与从Symfony\Bundle到Doctrine\Bundle和Symfony 2.0的命名空间有关.
所以我检查了我的AppKernel.php文件,我的捆绑路径是正确的.
我的composer.json看起来像:
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"stof/doctrine-extensions-bundle": "dev-master",
"doctrine/doctrine-fixtures-bundle": "dev-master"
},
"scripts": {
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"minimum-stability": "dev",
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web"
}
Run Code Online (Sandbox Code Playgroud)
}
和AppKernel.php配置:
<?php
use Symfony\Component\HttpKernel\Kernel;
use 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\StoreBundle\AcmeStoreBundle(),
new Livescore\StatsBundle\LivescoreStatsBundle(),
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle()
);
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');
}
}
Run Code Online (Sandbox Code Playgroud)
我试图找出问题所在,所以我在AppKernel.php中删除了这个包,然后我得到了下一个致命错误:
Fatal error: Class 'Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle' not found in /www/gastlich_www/www/livescore.gastlich.iq.pl/app/AppKernel.php on line 24
Run Code Online (Sandbox Code Playgroud)
所以我假设,我只有最后2个包的问题:StofDoctrineExtensionsBundle和DoctrineFixturesBundle,它们在composer.json中有dev-master版本.在这一点上,我还没有进一步的想法.我试图谷歌这个问题,但90%的问题是关于Symfony 2.0和移动git存储库; /
本地开发环境:PHP 5.4.6 Mysql 5.5.27 Apache 2.2.22(Fedora)
我的服务器环境:PHP 5.4.6 MySql 5.0.32
任何帮助将不胜感激.
谢谢!
在更新/安装composer之前,您还需要将命令行的环境设置为生产环境.
这里来自官方的Symfony文档:
如果在此步骤中出现"未找到类"错误,则可能需要
export SYMFONY_ENV=prod
在运行此命令之前运行,以便在prod环境中运行post-install-cmd脚本.
小智 -2
应用程序/自动加载.php
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/../vendor/autoload.php';
// intl
if (!function_exists('intl_get_error_code')) {
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}
$loader->add('Stof\DoctrineExtensionsBundle', __DIR__.'/../vendor/stof/doctrine-extensions-bundle');
$loader->add('Gedmo' , __DIR__.'/../vendor/gedmo/doctrine-extensions/lib');
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5236 次 |
最近记录: |