2015-01-30 6 views
17

Ho un kernel di Ubuntu 14.04. Stavo installando la mia applicazione Laravel su questo server. Dopo l'installazione, ho provato a rendere pubblica la directory root.laravel l'URL richiesto non è stato trovato su questo server

sudo nano /etc/apache2/sites-available/000-default.conf 

ho solo queste opzioni nel file

<VirtualHost *:80> 
     # The ServerName directive sets the request scheme, hostname and port t$ 
     # the server uses to identify itself. This is used when creating 
     # redirection URLs. In the context of virtual hosts, the ServerName 
     # specifies what hostname must appear in the request's Host: header to 
     # match this virtual host. For the default virtual host (this file) this 
     # value is not decisive as it is used as a last resort host regardless. 
     # However, you must set it for any further virtual host explicitly. 
     #ServerName www.example.com 

     ServerAdmin [email protected] 
     DocumentRoot /var/www/html/public/ 

     # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
     # error, crit, alert, emerg. 
     # It is also possible to configure the loglevel for particular 
     # modules, e.g. 
     #LogLevel info ssl:warn 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

     # For most configuration files from conf-available/, which are 
     # enabled or disabled at a global level, it is possible to 
     # include a line for only one particular virtual host. For example the 
     # following line enables the CGI configuration for this host only 
     # after it has been globally disabled with "a2disconf". 
     #Include conf-available/serve-cgi-bin.conf 
</VirtualHost> 

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

ho cambiato la radice del documento per

DocumentRoot /var/www/html/public/ 

Ora, quando ho provato ad accedere al mio laravel App, attraverso 123.xxx.xxx.xxx/ esso mostra la pagina iniziale e funziona bene. Ottiene anche tutta la variabile GET. Ad esempio: 123.xxx.xxx.xxx?type=wefwef

Ma quando vado ad altri collegamenti, come 123.xxx.xxx.xxx/login mi dà un errore

Not Found 

The requested URL /login/ was not found on this server. 

Apache/2.4.7 (Ubuntu) Server at 104.236.234.85 Port 80 

ho l'routes.php funziona bene su localhost. Ma non su questo server. Mi aiuti per favore.

+0

Il file '123.xxx.xxx.xxx/index.php/login' funziona? – lukasgeiter

+0

Sì, funziona. – user1012181

risposta

52

questo appare come devi abilitare .htaccess aggiungendo questo al vostro vhost:

<Directory /var/www/html/public/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

Se questo non funziona, assicurarsi di aver abilitato mod_rewrite.

Non dimenticare di riavviare apache dopo aver apportato le modifiche! (service apache2 restart)

+1

OK, ha funzionato. Serviva solo un 'riavvio di servizio apache2 '. Grazie mille :) – user1012181

+1

Prego :) – lukasgeiter

+0

dove posso trovare htacces? Scusa per una domanda stupida, ma non riesco a trovarla :) – MilanNz

14

prima abilitare a2enmod rewrite successivo riavvio del apache

/etc/init.d/apache2 restart 

click here for answer these question

+0

Sebbene ciò possa teoricamente rispondere alla domanda, [sarebbe preferibile] (// meta.stackoverflow.com/q/8259) includere qui le parti essenziali della risposta e fornire il link per riferimento. –

+0

@rohit non riesco ad aggiornare la risposta qui, clicca sul link qui sopra troverai la risposta –

0

Nel file httpd.conf è necessario rimuovere #

#LoadModule rewrite_module modules/mod_rewrite.so 

dopo la rimozione # linea guarderà così:

LoadModule rewrite_module modules/mod_rewrite.so 

E Apache riavviare

0

troppo tardi .. ma per il bene è possibile modificare il file di .htaccess commentare questa linea

# RewriteRule^index.php [L] 
0

Assicurarsi di avere mod_rewrite abilitato.

restart apache 

e chiare cookie del tuo browser per leggere di nuovo a .htaccess

2

ho risolto facendo quanto segue: Verificare se esiste un modulo chiamato riscrittura.caricare il tuo apache a:

$ cd /etc/apache2/mods-enabled/ 

Se non esiste eseguire il seguente estratto:

$sudo a2enmod rewrite 

In caso contrario, modificare il file di configurazione di Apache per consolidare l'uso del "URL friendly".

sudo nano /etc/apache2/apache2.conf 

Trova il seguente codice all'interno l'editor:

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
</Directory> 

Passa a:

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

Dopo di che riavviare il server Apache.

sudo /etc/init.d/apache2 restart