2016-05-25 54 views
1

我有以下代码,该代码在PHP 5.6和Apache 2.2上运行良好。我想我简单地升级了我的apache到2.4,它似乎已停止工作。404在使用silex进行路由时未发现错误

api 
-app 
    -job 
    -jobController.php 
    -jobFacade.php 
    -jobFacadeProvider.php 
    -src 
    -BatchAutoscalingApplication.php 
    -routes.php 
    -app.php 
    -index.php 

routes.php文件

<?php 
    require_once __DIR__ . "/../job/JobController.php"; 
    $app->mount("/job", new JobController()); 
?> 

jobCOntroller.php

<?php 
    require_once __DIR__ ."/JobFacade.php"; 

    class JobController implements ControllerProviderInterface 
    { 
     public function connect(Application $app) 
     { 

      $controllers = $app['controllers_factory']; 
      error_log("isnide cntroller",false); 
      $controllers->get('/isAcceptable', function (Request $request) use ($app) { 

       $id_contents = $request->query->get('id_contents'); 
       $result = $app['job']->isAcceptable($id_contents, $id_host, $id_vhost, $private_ip); 
       return new JsonResponse($result); 
      }); 

      return $controllers; 
     } 

     public function boot(Application $app) 
     { 
      // TODO: Implement boot() method. 
     } 
    } 
?> 

jobFacade.php

class JobFacade 
    { 
     public function isAcceptable($id_contents) 
     { 
      return "something" 
     } 
    } 

JobFacadeProvider.php

class JobFacadeProvider implements ServiceProviderInterface 
    { 
     public function register(Application $app) { 
      $app['job'] = $app->share(function() use ($app) { 
       return new JobFacade(); 
      }); 
     } 
     public function boot(Application $app) {} 
} 

的index.php

$app = require_once __DIR__ . '/app/app.php'; 
    $app->after($app["cors"]); 

    $app->run(); 

?> 

BatchAutoscalingApplication.php

class BatchAutoScalingApplication extends Application 
    { 
     public function __construct(array $values = array()) 
     { 
      parent::__construct($values); 
      $this->register(new CorsServiceProvider(), array(
       "cors.allowOrigin" => "*", 
      )); 

      $this->register(new JobFacadeProvider()); 

     } 

    } 

app.php

$app = new BatchAutoScalingApplication(); 

    require_once __DIR__ . '/src/routes.php'; 

    return $app; 

?> 

当我打的网址http://<host>/job/isAcceptable?id_contents=34,它给了我下面的错误

404 Not Found The requested URL /job/isAcceptable was not found on this server

PS:DocumentRoot的指向了api目录。

回答

1

这是一个愚蠢的错误。我只是在我的httpd.conf中添加了AllowOverride All,现在它似乎可以正常工作。