Apache / Passenger 中的 Meteor 设置
Meteor Settings in Apache / Passenger
我有一个 apache2 服务器并尝试将它与 passenger 一起使用来启动我的 meteor 应用程序。 Meteor 和一切运行良好,但我希望使用设置文件或至少一个设置对象。所以我用 SetEnv 尝试了它,但它不起作用,因为 apache 转义了对象。
<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:'/var/www/app/upload'}
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
有人知道如何正确处理吗?
回复有点晚,但可能对以后的人有用:)
您必须按正确的方式传递设置 JSON,因此它们必须用双引号引起来。那么适合您的行是:
SetEnv METEOR_SETTINGS '{"uploadPath":"/var/www/app/upload"}'
因为它必须是有效的 JSON 语法,而不是 JavaScript 对象,所有属性和字符串值都必须在此处用双引号引起来。
请注意,提供太长的配置(它发生在我的项目中)会破坏 Nginx,抛出关于配置行太长的错误。
我有一个 apache2 服务器并尝试将它与 passenger 一起使用来启动我的 meteor 应用程序。 Meteor 和一切运行良好,但我希望使用设置文件或至少一个设置对象。所以我用 SetEnv 尝试了它,但它不起作用,因为 apache 转义了对象。
<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:'/var/www/app/upload'}
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
有人知道如何正确处理吗?
回复有点晚,但可能对以后的人有用:) 您必须按正确的方式传递设置 JSON,因此它们必须用双引号引起来。那么适合您的行是:
SetEnv METEOR_SETTINGS '{"uploadPath":"/var/www/app/upload"}'
因为它必须是有效的 JSON 语法,而不是 JavaScript 对象,所有属性和字符串值都必须在此处用双引号引起来。
请注意,提供太长的配置(它发生在我的项目中)会破坏 Nginx,抛出关于配置行太长的错误。