2016-04-25 9 views
0

私はapache2サーバーを持っていて、それを乗客と一緒に使って流星のアプリケーションを開始しようとしました。流星とすべてが正常に実行されますが、私は設定ファイルまたは少なくとも設定オブジェクトを使いたいと思っていました。だから、SetEnvで試してみましたが、apacheがオブジェクトをエスケープするため、動作しません。Apache/Passengerでの流星の設定

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

流星の設定がエスケープされます。私はページを呼び出すとき、それはでクラッシュ:

/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 

誰かがそれを正しく処理する方法を知っていますか?

答えて

1

少し遅れて返信しますが、将来誰かに役立つかもしれません:) 設定を適切なJSONとして渡す必要があるため、二重引用符で囲む必要があります。あなたは、その後になりますのために適切な行:

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

それが有効なJSONの構文ではなく、JavaScriptのオブジェクトとすべてのプロパティと文字列値である必要がありますとしては、ここでは二重引用符で囲む必要があります。

設定が長すぎると(私のプロジェクトで発生した)Nginxが壊れて、設定行が長すぎるというエラーが表示されるので注意してください。

+0

Apacheで働いてくれてありがとう! – Andy