2016-04-25 10 views
0

Ich habe einen Apache2-Server und versuchte es mit Passagier zu verwenden, um meine Meteor-Anwendung zu starten. Meteor und alles läuft gut, aber ich wollte eine Einstellungsdatei oder zumindest ein Einstellungsobjekt verwenden. Also habe ich es mit SetEnv versucht, aber es funktioniert nicht, weil Apache das Objekt entkommt.Meteor Einstellungen in Apache/Passagier

<VirtualHost *:80> 
ServerName sub.site.de 

# Tell Apache and Passenger where your app's code directory is 
DocumentRoot /var/www/app/bundle/programs/web.browser 
PassengerAppRoot /var/www/app/bundle 

# Tell Passenger that your app is a bundled Meteor app 
PassengerAppType node 
PassengerStartupFile main.js 
# PassengerMeteorAppSettings /var/www/app/settings.json < doesn't work also 
# Tell your app where MongoDB is 
SetEnv MONGO_URL mongodb://localhost:27017/app 
# Tell your app what its root URL is 
SetEnv ROOT_URL http://sub.site.de 
SetEnv METEOR_SETTINGS "{uploadPath:'/var/www/app/upload'}" 
# Relax Apache security settings 
<Directory /var/www/app/bundle/programs/web.browser> 
    Allow from all 
    Options -MultiViews 
    # Uncomment this if you're on Apache > 2.4: 
    Require all granted 
</Directory> 

Der Meteor-Einstellungen entkommen lassen. Wenn ich die Seite anrufe stürzt es ab:

/var/www/app/bundle/programs/server/boot.js:324 
}).run(); 
^
Error: METEOR_SETTINGS are not valid JSON: {uploadPath:&apos;/var/www/app/upload&apos;} 
    at packages/meteor.js:59:11 
    at packages/meteor.js:80:4 
    at packages/meteor.js:1358:3 
    at /var/www/app/bundle/programs/server/boot.js:283:10 
    at Array.forEach (native) 
    at Function._.each._.forEach (/var/www/app/bundle/programs/server/node_modules/underscore/underscore.js:79:11) 
    at /var/www/app/bundle/programs/server/boot.js:133:5 

Jemand weiß, wie man richtig damit umgeht?

Antwort

1

Ein bisschen späte Antwort, aber könnte sich in Zukunft als nützlich erweisen :) Sie müssen Einstellungen als richtig JSON übergeben, so dass sie doppelt zitiert werden müssen. Die richtige Linie für Sie dann sein wird:

SetEnv METEOR_SETTINGS '{"uploadPath":"/var/www/app/upload"}' 

Wie es gültige JSON-Syntax sein muss, nicht JavaScript-Objekt und alle Eigenschaften und String-Werte müssen das Doppelte sein, hier zitiert.

Bitte beachten Sie, dass die Bereitstellung von zu langer Konfiguration (es trat bei meinem Projekt auf) Nginx unterbricht, was zu einem Fehler führt, weil die Konfigurationszeile zu lang ist.

+0

Arbeitete für mich auf Apache, danke! – Andy