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
目录。