Frage

Ich erstelle eine Webanwendung mit Zend Framework und muss meine App in den "öffentlichen" Ordner der Anwendung verweisen:

Also im Grunde genommen, wenn ich anrufe http://localhost/myappEs sollte angezeigt werden http://localhost/myapp/public/

Ich habe eine virtuelle Host-Datei namens MyApp in/etc/apache2/sites-verfügbare erstellt/:

    <VirtualHost *:80>
DocumentRoot /var/www/myapp/public/
 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>
 <Directory /var/www/myapp/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </Directory>

</VirtualHost>

Aber es funktioniert nicht. Wenn ich anrufe http: // localhost/myapp, Es wird die Verzeichnisstruktur der App angezeigt, und wenn ich auf den Ordner "Public" klicke, wird angezeigt, was ich standardmäßig angezeigt werden soll ... Ich habe Vhosts noch nie konfiguriert, und das ist so weit wie ich mit den Tutorials gekommen bin darüber.

War es hilfreich?

Lösung 2

Ok, ich habe irgendwie einen Weg gefunden ... ich denke nicht, dass es den richtigen/besten Weg notwendig ist, aber ...

In httpd.conf (im Ordner apache2):

Listen 10089

<VirtualHost *:10089>

    DocumentRoot "/var/www/myapp/public"

    <Directory "/var/www/myapp/public">

        Order allow,deny

        Allow from all

    AllowOverride all

</Directory>

</VirtualHost>

Meine App ist jetzt über Localhost: 10089 zugänglich, nachdem ich den Umschreiben des Umschreibens in Apache aktiviert habe. Ich habe das notwendige .htaccess, einen an der Wurzel meiner App hinzugefügt, um alles auf index.php umzuleiten (Zend Framework Support Friendly URL -Navigation und funktioniert auf diese Weise) :

RewriteEngine on

RewriteRule .* index.php

und eine zweite .htaccess -Datei in meinem öffentlichen Ordner, mit dem Menschen auf .JPG, .ICO usw. Dateien zugreifen können und nicht zum Index für alles weitergeleitet werden:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ /index.php [NC,L]

Hoffe das wird einigen helfen!

Andere Tipps

In Ihrer ersten Auflistung hatten Sie einen anderen Wert für das Verzeichnis -Tag und ließen 'öffentlich' insgesamt. Es gab auch einen nachfolgenden Schrägstrich nach "Öffentlichkeit" im Docroot -Wert, wurde jedoch bei Ihrem zweiten Versuch entfernt. Ich bin mir nicht sicher, dass das einen Unterschied gemacht hat, aber ich glaube, es wird empfohlen, keine nachfolgenden Schrägstriche einzuschließen.

Ich frage mich auch nur ... laufen Sie auf einer lokalen Maschine? Ich hatte Probleme mit Skype, um Port 80 zu verwenden, wenn ich vor meinem Apache -Server mit dem Ausführen begann. Skype verwendet einen anderen Port, wenn bereits 80 verwendet wird. Wenn nicht Skype, kann es eine andere App geben, die Port 80 verwendet und sich stört. Das könnte der Grund sein, warum Sie Erfolg in einem anderen Hafen hatten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top