2016-04-13 10 views
0

Ich habe apache 2.4 auf meinem lokalen und Server-Maschine, lokale Verwendung ubuntu 12.04 Server Verwendung Centos 7. Ich versuche, das alte fuzybox Framework im '/ var/www/html/projectx' Verzeichnis und lavarel 5.2 Framework im Verzeichnis '/ var/www/html/projectx/api' zu kombinieren.Laravel 5.2 500 Fehler auf Apahe 2.4 und Centos 7

Projektverzeichnisse:

Lokale Laravel /var/www/html/api/

Fern Laravel /var/www/html/projectx/api/

Berechtigungen in Server für öffentliche Ordner 777 für Test setted:

[[email protected]]# ls -l /var/www/html/projectx/api/ 
total 184 
... 
drwxrwxrwx 2 root root 4096 2016-04-13 13:22 public 
... 

Meine 'projectx.com' URL öffnen Fuzybox App, wenn ich gehe zur URL projectx.com/api Ich bekomme API-Verzeichnis-Dateien und Ordner-Liste, zeigen, dass http-Server arbeiten und ich kann erreichen Api-Verzeichnis, aber wenn ich gehe zu projectx.com/api/public ich bekomme Fehler 500. Auf meinem lokalen Rechner funktioniert alles gut.

virtuelle Host config:

<VirtualHost *:80> 
     ServerName projectx.com 
     ServerAlias projectx.com 
     DocumentRoot /var/www/html/projectx 
     ErrorLog /var/www/html/projectx/error.log 
     CustomLog /var/www/html/projectx/requests.log combined 
</VirtualHost> 

auch habe ich versucht, Boden virtuelle Konfigurationen aber einige 500-Fehler, wenn gehen zu projectx.com:

<VirtualHost *:80> 
     ServerName projectx.com 
     ServerAlias projectx.com 
     DocumentRoot /var/www/html/projectx/api/public 
     ErrorLog /var/www/html/projectx/error.log 
     CustomLog /var/www/html/projectx/requests.log combined 
</VirtualHost> 
+0

Problem mit PHP-Version war, nach dem Update 5.6 php lavarel Arbeit beginnen. –

Antwort

0

Sie müssen Ihren Web-Server zu einem public Verzeichnis verweisen auf Lass Laravel arbeiten. Wenn Sie beispielsweise Laravel im Verzeichnis /var/www/html/projectx/api/ installiert haben, können Sie diese Apache-Einstellungen verwenden.

DocumentRoot "/var/www/html/projectx/api/public" 
<Directory "/var/www/html/projectx/api/public"> 

Vergessen Sie nicht, Apache nach diesen Änderungen neu zu starten.

Dann nutzen Sie nur einfache Routen für Ihre API:

Route::get('api/getSomething', '[email protected]'); 

Und verwenden URLs ähnlich wie diese:

projectx.com/api/getSomething 
+0

Ich kann DocumentRoot nicht ändern, weil meine Haupt-App fuzybox für Render-HTML ist, möchte ich Laravel verwenden, um Front-End-Ajax-Anfragen zu verarbeiten. siehe editierten Beitrag. –

+0

Die Verwendung von Laravel in einem Unterordner ist eine schlechte Idee, weil Sie viele Kopfschmerzen haben werden, wenn Sie versuchen, alles zum Laufen zu bringen. Bessere Lösung ist Sub-Domain wie 'api.projectx.com' zu verwenden - https://laravel.com/docs/5.1/routing#route-group-sub-domain-routing –

+0

Auch ich habe versucht, DocumentRoot auf Ihre Weise aber zu ändern bekomme denselben 500 Fehler. –