Zend Framework: The requested URL /mein/Pfad nicht gefunden wurde auf diesem server

Ich bin total neu in Zend Framework.

Schrieb ich ein einfaches web-service, zurück mock XML-Daten mit dem Zend-Framework, mit Modul-Struktur wie diese:

AppName
    application
        configs
            application.ini
        modules
            default
                .....
            api
                controller
                    CatalogController.php
                view
        library
        public
            .htaccess
            index.php
        tests

Localhost (windows 7), diese arbeiten sind :

http://localhost

http://localhost/api/catalog

http://localhost/default

in meiner Produktion-server (linux), bekomme ich die Meldung '404 Datei nicht gefunden" von:

http://107.22.255.126/api/catalog

http://107.22.255.126/default

aber das ist eine Arbeit

http://107.22.255.126

Ich es in Amazon Web Services.

Hier ist meine .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Hier ist meine Bewerbung.ini

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
//resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = "default"
resources.modules[] = "api"
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.layout.layout = master

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Hier ist meine Bootstrap.php

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

    protected function _initRoutes()
    {
        $front = Zend_Controller_Front::getInstance();
        $router = $front->getRouter();
        $restRoute = new Zend_Rest_Route($front, array(), array('api'));
        $router->addRoute('api', $restRoute);
    }

}

?>

Hatte ich laufen aus der Idee. Ich vermute, das ist etwas im Zusammenhang mit router in bootstraper, aber finde keine Lösung.

  • Wird der Apache-error-log etwas sagen? Bei der Ausführung in der Entwicklung Modus funktioniert Zend zeigt keine Fehler?
  • Dies ist das access-log: 113.210.125.93 - - [04/Dec/2011:08:59:44 +0000] "GET /api/Katalog HTTP/1.1" 404 289 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2" das ist der error log: [Sun Dec 04 09:16:35 2011] [error] [client 113.210.125.93] die Datei ist nicht vorhanden: /var/www/html/TestMVC/public/Api
  • Kann Sie hier posten specifiaction der Produktion hosting? PHP version, Webserver etd. Wenn Nutztiere server nginx die .htaccess-Datei wird nicht funktionieren. Access log zeigt, dass gab es eine Anfrage für ..öffentliche/Api, aber das sollte public/index.php
  • Ah, sieht aus wie die rewrite-Regel ist nicht passiert, dann. Apache ist auf der Suche für die eigentliche Datei, und es ist nicht übermittelt, aus dem router. Versuchen Sie entweder sicherstellen .htaccess aktiviert sind, in diesem Verzeichnis, oder legen Sie einfach die rewrite-Regel in der virtuellen host (oder irgendwo in der apache-config).
  • Sie können meine phpInfo() auf 107.22.255.126
  • Hatte ich aktiviert .htaccess auf meine httpd.conf ein, und starten Sie den Apache. Immer noch das gleiche.

InformationsquelleAutor VHanded | 2011-12-04
Schreibe einen Kommentar