2016-05-25 3 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; 

?> 

Когда я ударил URL 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

Это была глупая ошибка. Я просто добавил AllowOverride All в свой httpd.conf, и теперь он работает нормально.

Смежные вопросы