Domanda

Sto costruendo un'applicazione web con Zend Framework, e ho bisogno di sottolineare la mia app nella cartella "pubblica" dell'applicazione:

Quindi, in pratica quando chiamo http://localhost/myapp dovrebbe visualizzare http://localhost/myapp/public/

Ho creato un file host virtuale chiamata myapp in / etc / apache2 / sites-available /:

    <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>

Ma non funziona. Quando chiamo http: // localhost / myapp , visualizza la struttura delle directory delle app, e quando ho cliccare sul cartella "pubblica", quindi viene visualizzato quello che voglio da visualizzare di default ... Non ho mai configurato vhosts prima e questo è quanto ho ottenuto con il tutorial su di esso.

È stato utile?

Soluzione 2

Ok ho trovato un modo in qualche modo ... non credo sia necessario il diritto / migliore dei modi, ma ...

in httpd.conf (nella cartella 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>

La mia app è ora accessibile tramite localhost: 10089 Dopo aver attivato il mod rewrite in Apache, ho aggiunto il .htaccess necessaria, uno alla radice della mia app, reindirizzando tutto per index.php (Zend supporto quadro accogliente navigazione URL e funziona in questo modo):

RewriteEngine on

RewriteRule .* index.php

e un secondo file .htaccess dentro la mia cartella pubblica per consentire alle persone di accedere .jpg, .ico, ecc file e non essere reindirizzato al indice per tutto:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

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

Spero che questo vi aiuterà un po '!

Altri suggerimenti

Nel tuo primo profilo, si aveva un valore diverso per il tag Directory, lasciando fuori 'pubblico' del tutto. C'era anche una barra finale dopo 'pubblico' nel valore docroot, ma rimosso sul secondo tentativo. Non sono sicuro che ha fatto la differenza, ma credo che si consiglia di non includere slash.

Inoltre, chiedo solo ... stai eseguendo questo su una macchina locale? Ho avuto problemi con Skype che vogliono utilizzare la porta 80 se ho iniziato a correre che prima il mio server apache. Skype userà una porta diversa se 80 è già in uso. In caso contrario Skype, ci può essere un altro app che sta usando la porta 80 e interferendo. Questo potrebbe essere il motivo per cui hai avuto successo su un'altra porta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top