Ich möchte meine ZF2-Anwendung auf einem VPS-Server ohne Unterstützung für Virtual Host installieren. Ich benutze eine einfache Anwendung basierend auf ZendApplicationSkeleton.ZF2 Apache auf VPS installieren, ohne Virtual Host zu erstellen
Ich bin die Standard mit .htaccess
:
RewriteEngine On
# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The
# condition ensures that if you are using Apache aliases to do
# mass virtual hosting, the base path will be prepended to
# allow proper resolution of the index.php file; it will work
# in non-aliased environments as well, providing a safe, one-size
# fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
Alle Lösung Ive in SO gefunden für mich nicht funktioniert. Sie können ZF1 passen, aber nicht ZF2:
Meine Anwendung in einem Ordner /var/www/html/testapp
benannt ist.
Die Hauptseite wird geladen, sobald ich im Browser localhost/testapp/public
eintippe. Auch mein Modul wird geladen, wenn ich localhost/testapp/module
tippe, aber Navigation funktioniert nicht.
Dh: in der Hauptseite erstellt Ive eine Schaltfläche wie:
<a href="/module/index">Go To Module</a>
Aber wenn ich darauf klicke ich navigieren zu localhost/login/index
Not Found
, nicht auf die richtige module/index.phtml
Seite zeigt.
Hilfe damit gewürdigt.
Welchen Hosting-Service verwenden Sie? Ich kann kaum glauben, dass es keine Möglichkeit gibt, den gewünschten Ordner einzurichten. – Wilt
Sieht so aus, als ob Sie eine Art von Anmelde-/Authentifizierungsüberprüfung haben, die zu localhost/login/index umleitet, wenn der Link/module/index zugreift. Überprüfen Sie Ihren Login/Authenticator und stellen Sie sicher, dass die Weiterleitung deaktiviert ist, wenn Sie keine Anmeldung benötigen (Dev-Zweck). – xangxiong
Auch für ZF2-Anwendungen sollte der öffentliche Ordner das Stammverzeichnis Ihrer Webanwendung sein. Daher müssen Sie Ihren VHOST so konfigurieren, dass er/var/www/html/testapp/public als DocumentRoot verwendet. Da sich Ihre App in/var/www/html befindet, versucht die Apache-Standardkonfiguration möglicherweise auch, die Dateien direkt bereitzustellen, was zu URLs führen kann, die keiner Ihrer ZF2-Routendefinitionen entsprechen. Es ist wahrscheinlich am besten, Ihre App außerhalb des Verzeichnisses/var/www/html zu verschieben, sodass alle privaten Konfigurationen/Dateien nicht versehentlich geöffnet werden können, wenn etwas mit Ihrer Serverkonfiguration passiert. – xangxiong