passenger 4.0.42 → 4.0.43
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/CHANGELOG +13 -0
- data/CONTRIBUTING.md +2 -19
- data/build/agents.rb +4 -1
- data/build/cxx_tests.rb +7 -2
- data/build/debian.rb +1 -1
- data/debian.template/control.template +0 -2
- data/doc/CodingTipsAndPitfalls.md +56 -0
- data/doc/Users guide Apache.idmap.txt +16 -14
- data/doc/Users guide Nginx.idmap.txt +8 -6
- data/doc/Users guide Standalone.idmap.txt +3 -1
- data/doc/Users guide Standalone.txt +1 -1
- data/doc/users_guide_snippets/environment_variables.txt +1 -0
- data/doc/users_guide_snippets/installation.txt +5 -5
- data/doc/users_guide_snippets/support_information.txt +42 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +42 -0
- data/ext/common/ApplicationPool2/Common.h +1 -0
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -7
- data/ext/common/ApplicationPool2/DummySpawner.h +1 -1
- data/ext/common/ApplicationPool2/Group.h +4 -2
- data/ext/common/ApplicationPool2/Options.h +9 -7
- data/ext/common/ApplicationPool2/Pool.h +83 -40
- data/ext/common/ApplicationPool2/Process.h +2 -6
- data/ext/common/ApplicationPool2/README.md +0 -40
- data/ext/common/ApplicationPool2/SmartSpawner.h +2 -9
- data/ext/common/ApplicationPool2/Spawner.h +1 -4
- data/ext/common/ApplicationPool2/SpawnerFactory.h +6 -9
- data/ext/common/ApplicationPool2/SuperGroup.h +3 -3
- data/ext/common/Constants.h +1 -1
- data/ext/common/UnionStation/Connection.h +227 -0
- data/ext/common/UnionStation/Core.h +497 -0
- data/ext/common/UnionStation/ScopeLog.h +172 -0
- data/ext/common/UnionStation/Transaction.h +276 -0
- data/ext/common/Utils.cpp +83 -8
- data/ext/common/Utils.h +25 -4
- data/ext/common/Utils/AnsiColorConstants.h +1 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +6 -170
- data/ext/common/Utils/SpeedMeter.h +258 -0
- data/ext/common/Utils/StrIntUtils.cpp +6 -0
- data/ext/common/Utils/StringScanning.h +277 -0
- data/ext/common/Utils/SystemMetricsCollector.h +1460 -0
- data/ext/common/agents/Base.cpp +8 -8
- data/ext/common/agents/HelperAgent/Main.cpp +12 -6
- data/ext/common/agents/HelperAgent/RequestHandler.h +15 -16
- data/ext/common/agents/HelperAgent/SystemMetricsTool.cpp +199 -0
- data/ext/common/agents/LoggingAgent/LoggingServer.h +2 -1
- data/ext/common/agents/SpawnPreparer.cpp +20 -32
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/config/list_instances_command.rb +118 -0
- data/lib/phusion_passenger/config/main.rb +22 -4
- data/lib/phusion_passenger/config/system_metrics_command.rb +37 -0
- data/lib/phusion_passenger/config/utils.rb +1 -1
- data/lib/phusion_passenger/loader_shared_helpers.rb +8 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/resources/templates/error_layout.html.template +3 -3
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -5
- data/test/cxx/ApplicationPool2/PoolTest.cpp +1 -3
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -7
- data/test/cxx/RequestHandlerTest.cpp +9 -3
- data/test/cxx/UnionStationTest.cpp +61 -64
- metadata +13 -4
- metadata.gz.asc +7 -7
- data/ext/common/UnionStation.h +0 -968
- data/helper-scripts/system-memory-stats.py +0 -207
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YWY0MDg5NjYxOTVmODI3N2RhNTFlZjlhMTc0NWFhN2U4N2FjYWUwOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDVkZTY5YmIzZWEwZDk5Y2E1ODlhNTQ1YWVlZWE5NDI4ZDJmN2EzNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
M2FiMWE4OWRmZTJjZmY2YmMwZmE1ZjFkYzk2YTM4ZDhiOGFmNzlhNmI5YzAx
|
10
|
+
MGU1YWVlY2IwYmFhNGE0MzQ1Y2ExMWIzOWQ1NzFkZDc5MTQ0NzE4NzQ0ZjY0
|
11
|
+
Y2U2ZmFiOTVlOWIwYzUyZDU2NzFiMGU0MGQ2MmIwOGRmNTY0NWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGQ4OTUwZjA1MGU4OWU3YjU4YmZjYjYwZmZhNDlmMmE2YzRhNzk0OWRkOTlj
|
14
|
+
NjlkZjU1MTBkNGFmNzc1NTdmNmU0MTQxODFmMzU4ZmRkNDAyNzQ3NDNiZGZk
|
15
|
+
ZjZhNjQ1Mjk2NzFkN2UwZDBlNjM3ZmJmM2Q1MWYzYjE5NGM2NTM=
|
checksums.yaml.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=
|
5
|
+
iQEcBAABAgAGBQJThfVWAAoJECrHRaUKISqM6JcIAItnZwCnNA1rlB+ok8htu4bv
|
6
|
+
ZihNlJWmnzihxH7ZAD7qt02XegS63gcjGQ/Y2hxDBbKXaQ6WnqBtmAcOxT3T7YYy
|
7
|
+
MeaeLTLcXn7LJvGrrJm1CNWnUpce3zPVecRvuyGBD2yYEpdmtnBS1Mb9j8unZ5cs
|
8
|
+
S/WGpIw9rkntrisM8g/dFMJgsJ51LPTkZzb9QkpWG8GfBG7b/Rpzyz3W7f92YSnZ
|
9
|
+
feWN3tvFo8UB+CeUCN6XOS0VcGCsKdVJSb5D837AGtymrRhSJ9nJvcz1uQZJX48U
|
10
|
+
WEW76te2BwzDchBn1RgvJirLVjx5t2jfC9UWNcLcnopxlzjniRozySdrNDDLQWc=
|
11
|
+
=I4xQ
|
12
12
|
-----END PGP SIGNATURE-----
|
data.tar.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
iQEcBAABAgAGBQJThfVWAAoJECrHRaUKISqMAJsIAKvyWvcg58WQGdss/ZSDAFw5
|
6
|
+
fgb4b8YAZyCJuwhOya+Rb4cR5QJ2Yz8o/PqJ4yfqU+hkRJcBCsvW/OPkFr/IDIDW
|
7
|
+
ep74AyiQcL7gXxoyZtK1vSKefuCN0RTguXY9sYzZB7VwJ1UDykMB+fqcO8kTQy48
|
8
|
+
e9mBiwNHY+GHFLULyJN3hsNiwgzxx9yNMSHtt2TE8I9aK5aFSXOOG7boyI8jseRr
|
9
|
+
kI3NXj4HI6hH6c4klf0nPj+9BLVUI77MGQ/0OiOjrdkTxNdM7fJkgy1b/+p5gT+P
|
10
|
+
gjsHpxdGR76ppHnW6LpyiBfMLEPpniq/Dx/I037cwqLltw+qJeBawgbXE8Yr9iM=
|
11
|
+
=/Ohk
|
12
12
|
-----END PGP SIGNATURE-----
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
Release 4.0.43
|
2
|
+
--------------
|
3
|
+
|
4
|
+
* Introduced a new command `passenger-config list-instances`, which prints all
|
5
|
+
running Phusion Passenger instances.
|
6
|
+
* Introduced a new command `passenger-config system-metrics, which displays
|
7
|
+
metrics about the system such as the total CPU and memory usage.
|
8
|
+
* Fixed some compilation problems caused by the compiler capability autodetector.
|
9
|
+
* System metrics such as total CPU usage and memory usage, are now sent to
|
10
|
+
[Union Station](https://www.unionstationapp.com) in preparation for future
|
11
|
+
features.
|
12
|
+
|
13
|
+
|
1
14
|
Release 4.0.42
|
2
15
|
--------------
|
3
16
|
|
data/CONTRIBUTING.md
CHANGED
@@ -280,23 +280,6 @@ The usual Ruby coding style applies, with some exceptions:
|
|
280
280
|
* Use 4-space tabs for indentation.
|
281
281
|
* Return values explicitly with `return`.
|
282
282
|
|
283
|
-
|
283
|
+
## Further reading
|
284
284
|
|
285
|
-
|
286
|
-
|
287
|
-
### Event loop callbacks
|
288
|
-
|
289
|
-
Be careful with event loop callbacks, they are more tricky than one would expect.
|
290
|
-
|
291
|
-
* If your event loop callback ever calls user-defined functions, either explicitly or implicitly, you should obtain a `shared_ptr` to your `this` object. This is because the user-defined function could call something that would free your object. Your class should derive from `boost::enable_shared_from_this` to make it easy for you to obtain a `shared_ptr` to yourself.
|
292
|
-
|
293
|
-
void callback(ev::io &io, int revents) {
|
294
|
-
shared_ptr<Foo> self = shared_from_this();
|
295
|
-
...
|
296
|
-
}
|
297
|
-
|
298
|
-
* Event loop callbacks should catch expected exceptions. Letting an exception pass will crash the program. When system call failure simulation is turned on, the code can throw arbitrary SystemExceptions, so beware of those.
|
299
|
-
|
300
|
-
### Thread interruption and RAII destructors
|
301
|
-
|
302
|
-
When using thread interruption, make sure that RAII destructors are non-interruptable. If your code is interrupted and then a `thread_interrupted` is thrown, make sure that RAII destructors don't check for the interruption flag and then throw `thread_interrupted` again. This not only fails to clean things up properly, but also confuses the exception system, resulting in strange errors such as "terminate called without an active exception".
|
285
|
+
Please read "doc/CodingTipsAndPitfalls.md".
|
data/build/agents.rb
CHANGED
@@ -60,6 +60,7 @@ dependencies = [
|
|
60
60
|
'ext/common/agents/HelperAgent/RequestHandler.h',
|
61
61
|
'ext/common/agents/HelperAgent/RequestHandler.cpp',
|
62
62
|
'ext/common/agents/HelperAgent/ScgiRequestParser.h',
|
63
|
+
'ext/common/agents/HelperAgent/SystemMetricsTool.cpp',
|
63
64
|
'ext/common/Constants.h',
|
64
65
|
'ext/common/StaticString.h',
|
65
66
|
'ext/common/Account.h',
|
@@ -69,6 +70,7 @@ dependencies = [
|
|
69
70
|
'ext/common/Logging.h',
|
70
71
|
'ext/common/ResourceLocator.h',
|
71
72
|
'ext/common/Utils/ProcessMetricsCollector.h',
|
73
|
+
'ext/common/Utils/SystemMetricsCollector.h',
|
72
74
|
'ext/common/Utils/VariantMap.h',
|
73
75
|
'ext/common/ApplicationPool2/Pool.h',
|
74
76
|
'ext/common/ApplicationPool2/Common.h',
|
@@ -150,7 +152,8 @@ file AGENT_OUTPUT_DIR + 'PassengerLoggingAgent' => dependencies do
|
|
150
152
|
"#{EXTRA_CXX_LDFLAGS}")
|
151
153
|
end
|
152
154
|
|
153
|
-
spawn_preparer_libs = COMMON_LIBRARY.only('Utils/Base64.o'
|
155
|
+
spawn_preparer_libs = COMMON_LIBRARY.only('Utils/Base64.o', 'Utils/SystemTime.o',
|
156
|
+
'Utils/StrIntUtils.o', 'Utils/IOUtils.o')
|
154
157
|
dependencies = [
|
155
158
|
'ext/common/agents/SpawnPreparer.cpp',
|
156
159
|
spawn_preparer_libs.link_objects,
|
data/build/cxx_tests.rb
CHANGED
@@ -115,7 +115,9 @@ TEST_CXX_OBJECTS = {
|
|
115
115
|
ext/common/agents/LoggingAgent/RemoteSender.h
|
116
116
|
ext/common/agents/LoggingAgent/DataStoreId.h
|
117
117
|
ext/common/agents/LoggingAgent/FilterSupport.h
|
118
|
-
ext/common/UnionStation.h
|
118
|
+
ext/common/UnionStation/Connection.h
|
119
|
+
ext/common/UnionStation/Core.h
|
120
|
+
ext/common/UnionStation/Transaction.h
|
119
121
|
ext/common/Utils.h
|
120
122
|
ext/common/EventedServer.h
|
121
123
|
ext/common/EventedClient.h
|
@@ -144,7 +146,10 @@ TEST_CXX_OBJECTS = {
|
|
144
146
|
ext/common/agents/HelperAgent/FileBackedPipe.h
|
145
147
|
ext/common/agents/HelperAgent/ScgiRequestParser.h
|
146
148
|
ext/common/agents/HelperAgent/AgentOptions.h
|
147
|
-
ext/common/UnionStation.h
|
149
|
+
ext/common/UnionStation/Connection.h
|
150
|
+
ext/common/UnionStation/Core.h
|
151
|
+
ext/common/UnionStation/Transaction.h
|
152
|
+
ext/common/UnionStation/ScopeLog.h
|
148
153
|
ext/common/ApplicationPool2/Pool.h
|
149
154
|
ext/common/ApplicationPool2/SuperGroup.h
|
150
155
|
ext/common/ApplicationPool2/Group.h
|
data/build/debian.rb
CHANGED
@@ -166,7 +166,7 @@ def create_debian_binary_package_task(distribution, arch)
|
|
166
166
|
command = "cd #{PKG_DIR}/official && " +
|
167
167
|
"pbuilder-dist #{distribution} #{arch} build #{base_name}.dsc " +
|
168
168
|
"2>&1 | awk '{ print strftime(\"%Y-%m-%d %H:%M:%S -- \"), $0; fflush(); }'" +
|
169
|
-
" | tee #{logfile}"
|
169
|
+
" | tee #{logfile}; test ${PIPESTATUS[0]} -eq 0"
|
170
170
|
sh "bash -c #{Shellwords.escape(command)}"
|
171
171
|
sh "echo Done >> #{logfile}"
|
172
172
|
end
|
@@ -38,7 +38,6 @@ Depends: ${shlibs:Depends}, ${misc:Depends},
|
|
38
38
|
ruby-daemon-controller (>= 1.2.0)
|
39
39
|
Recommends: passenger-doc (= ${binary:Version}), passenger-dev (= ${binary:Version}),
|
40
40
|
crash-watch
|
41
|
-
Suggests: python
|
42
41
|
Breaks: libapache2-mod-passenger (<< <%= DEBIAN_EPOCH %>:<%= PACKAGE_VERSION %>), passenger-common,
|
43
42
|
passenger-common1.8, passenger-common1.9.1, ruby-passenger
|
44
43
|
Replaces: libapache2-mod-passenger (<< <%= DEBIAN_EPOCH %>:<%= PACKAGE_VERSION %>), passenger-common,
|
@@ -54,7 +53,6 @@ Architecture: any
|
|
54
53
|
Depends: ${shlibs:Depends}, ${misc:Depends},
|
55
54
|
ruby2.2 | ruby2.1 | ruby2.0 | ruby1.9.1 | ruby1.8 | ruby-interpreter,
|
56
55
|
passenger (= ${binary:Version})
|
57
|
-
Suggests: python
|
58
56
|
Replaces: ruby-passenger-dev
|
59
57
|
Conflicts: ruby-passenger-dev
|
60
58
|
Provides: ruby-passenger-dev
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Coding tips and common coding pitfalls
|
2
|
+
|
3
|
+
## Prefer shared_ptrs
|
4
|
+
|
5
|
+
You should prefer `shared_ptr`s over raw pointers because they make memory leaks and memory errors less likely. There are only very limited cases in which raw pointers are justified, e.g. optimizations in very hot code paths.
|
6
|
+
|
7
|
+
### Unexpected shared_ptr invalidation
|
8
|
+
|
9
|
+
Suppose you have a function which takes a reference to a shared_ptr, like this:
|
10
|
+
|
11
|
+
void foo(const shared_ptr<Client> &client) {
|
12
|
+
performNetworking();
|
13
|
+
log(client->getAddress());
|
14
|
+
}
|
15
|
+
|
16
|
+
You might think that `client` is never going to be destroyed during the scope of the function, right? Wrong. If `client` came from a non-local variable, and your function calls another function (perhaps indirectly) which resets that variable, then `client` is going to be invalidated. Consider a contrived example like this:
|
17
|
+
|
18
|
+
static shared_ptr<Client> client;
|
19
|
+
|
20
|
+
void performNetworking() {
|
21
|
+
if (write(...) == -1) {
|
22
|
+
// An error occurred, disconnect client.
|
23
|
+
client.reset();
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
More realistically, this kind of bug is likely to occur if `foo()` calls some function which invokes a user-defined callback, which unreferences the original object under some conditions. Thus, if your code might call an arbitrary user-defined function, you should increase the reference count locally:
|
28
|
+
|
29
|
+
void foo(const shared_ptr<Client> &client) {
|
30
|
+
shared_ptr<Client> extraReference = client;
|
31
|
+
performNetworking();
|
32
|
+
log(client->getAddress());
|
33
|
+
}
|
34
|
+
|
35
|
+
A variant of this pitfall is documented under "Event loop callbacks".
|
36
|
+
|
37
|
+
## Event loop callbacks
|
38
|
+
|
39
|
+
### Obtain extra shared_ptr reference on `this`
|
40
|
+
|
41
|
+
If your event loop callback ever calls user-defined functions, either explicitly or implicitly, you should obtain a `shared_ptr` to your `this` object. This is because the user-defined function could call something that would free your object. The problem is documented in detail in "Unexpected shared_ptr invalidation".
|
42
|
+
|
43
|
+
Your class should derive from `boost::enable_shared_from_this` to make it easy for you to obtain a `shared_ptr` to yourself.
|
44
|
+
|
45
|
+
void callback(ev::io &io, int revents) {
|
46
|
+
shared_ptr<Foo> extraReference = shared_from_this();
|
47
|
+
...
|
48
|
+
}
|
49
|
+
|
50
|
+
### Exceptions
|
51
|
+
|
52
|
+
Event loop callbacks should catch expected exceptions. Letting an exception pass will crash the program. When system call failure simulation is turned on, the code can throw arbitrary SystemExceptions, so beware of those.
|
53
|
+
|
54
|
+
## Thread interruption and RAII destructors
|
55
|
+
|
56
|
+
When using thread interruption, make sure that RAII destructors are non-interruptable. If your code is interrupted and then a `thread_interrupted` is thrown, make sure that RAII destructors don't check for the interruption flag and then throw `thread_interrupted` again. This not only fails to clean things up properly, but also confuses the exception system, resulting in strange errors such as "terminate called without an active exception".
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
1. Support information => support-information-zkewk3
|
16
16
|
|
17
|
-
1.1. Supported operating systems => supported-operating-systems-rhbg35
|
17
|
+
1.1. Supported operating systems and languages => supported-operating-systems-rhbg35
|
18
18
|
|
19
19
|
1.2. Where to get support => where-to-get-support-f3pbrb
|
20
20
|
|
@@ -264,31 +264,33 @@
|
|
264
264
|
|
265
265
|
9.2. Why does the first request take a long time? => why-does-the-first-request-take-a-long-time--12mg452
|
266
266
|
|
267
|
-
9.3.
|
267
|
+
9.3. I get "command not found" when running a Phusion Passenger command through sudo => i-get-command-not-found-when-running-a-phusion-passenger-command-through-sudo-v9z223
|
268
268
|
|
269
|
-
9.4.
|
269
|
+
9.4. OS X: The installer cannot locate MAMP’s Apache => macos-x-the-installer-cannot-locate-mamp-s-apache-or908n
|
270
270
|
|
271
|
-
9.5.
|
271
|
+
9.5. Apache reports a "403 Forbidden" error => apache-reports-a-403-forbidden-error-140tb4p
|
272
272
|
|
273
|
-
9.6.
|
273
|
+
9.6. Static assets such as images and stylesheets aren’t being displayed => static-assets-such-as-images-and-stylesheets-aren-t-being-displayed-uaptpi
|
274
274
|
|
275
|
-
9.7. The
|
275
|
+
9.7. The Apache error log says that the spawn manager script does not exist, or that it does not have permission to execute it => the-apache-error-log-says-that-the-spawn-manager-script-does-not-exist-or-that-it-does-not-have-permission-to-execute-it-1fmoozk
|
276
276
|
|
277
|
-
9.8.
|
277
|
+
9.8. The application thinks its not on SSL even though it is => the-application-thinks-its-not-on-ssl-even-though-it-is-u9fcp1
|
278
278
|
|
279
|
-
9.
|
279
|
+
9.9. Ruby on Rails-specific troubleshooting => ruby-on-rails-specific-problems-6umss5
|
280
280
|
|
281
|
-
9.
|
281
|
+
9.9.1. The "About your application’s environment" link does not work => the-about-your-application-s-environment-link-does-not-work-7k4tlm
|
282
282
|
|
283
|
-
9.
|
283
|
+
9.9.2. The Rails application reports that it’s unable to start because of a permission error => the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-v53i6s
|
284
284
|
|
285
|
-
9.9.
|
285
|
+
9.9.3. The Rails application’s log file is not being written to => my-rails-application-s-log-file-is-not-being-written-to-3i747l
|
286
286
|
|
287
|
-
9.
|
287
|
+
9.10. Conflicting Apache modules => conflicting-apache-modules-1uwpixk
|
288
288
|
|
289
|
-
9.
|
289
|
+
9.10.1. mod_userdir => mod-userdir-x5e2te
|
290
290
|
|
291
|
-
9.
|
291
|
+
9.10.2. MultiViews (mod_negotiation) => multiviews-mod-negotiation--zchfg0
|
292
|
+
|
293
|
+
9.10.3. VirtualDocumentRoot => virtualdocumentroot-14cwd7l
|
292
294
|
|
293
295
|
10. Analysis and system maintenance => analysis-and-system-maintenance-qvkwzr
|
294
296
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
1. Support information => support-information-nl5gdn
|
16
16
|
|
17
|
-
1.1. Supported operating systems => supported-operating-systems-a5n2x4
|
17
|
+
1.1. Supported operating systems and languages => supported-operating-systems-a5n2x4
|
18
18
|
|
19
19
|
1.2. Where to get support => where-to-get-support-2s9na5
|
20
20
|
|
@@ -250,15 +250,17 @@
|
|
250
250
|
|
251
251
|
9.3. Upon accessing the web app, Nginx reports a "Permission denied" error => upon-accessing-the-web-app-nginx-reports-a-permission-denied-error-1wgatlk
|
252
252
|
|
253
|
-
9.4.
|
253
|
+
9.4. I get "command not found" when running a Phusion Passenger command through sudo => i-get-command-not-found-when-running-a-phusion-passenger-command-through-sudo-10fzwno
|
254
254
|
|
255
|
-
9.5.
|
255
|
+
9.5. The application thinks its not on SSL even though it is => the-application-thinks-its-not-on-ssl-even-though-it-is-1e2m21h
|
256
256
|
|
257
|
-
9.
|
257
|
+
9.6. Ruby on Rails-specific troubleshooting => ruby-on-rails-specific-troubleshooting-n8u5u1
|
258
258
|
|
259
|
-
9.
|
259
|
+
9.6.1. The "About your application’s environment" link does not work => the-about-your-application-s-environment-link-does-not-work-9p7b2g
|
260
260
|
|
261
|
-
9.
|
261
|
+
9.6.2. The Rails application reports that it’s unable to start because of a permission error => the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-58ww8s
|
262
|
+
|
263
|
+
9.6.3. The Rails application’s log file is not being written to => the-rails-application-s-log-file-is-not-being-written-to-9m2i5h
|
262
264
|
|
263
265
|
10. Analysis and system maintenance => analysis-and-system-maintenance-1nnlnj8
|
264
266
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
1. Support information => support-information-1x8e9ee
|
16
16
|
|
17
|
-
1.1. Supported operating systems => supported-operating-systems-1387080
|
17
|
+
1.1. Supported operating systems and languages => supported-operating-systems-1387080
|
18
18
|
|
19
19
|
1.2. Where to get support => where-to-get-support-xkx7rx
|
20
20
|
|
@@ -92,6 +92,8 @@
|
|
92
92
|
|
93
93
|
7.2. Upon uploading a file, Phusion Passenger reports "client_body_temp/00000000xx failed (2: No such file or directory)" => upon-uploading-a-file-phusion-passenger-reports-client-body-temp-00000000xx-failed-2-no-such-file-or-directory--d01goe
|
94
94
|
|
95
|
+
7.3. I get "command not found" when running a Phusion Passenger command through sudo => i-get-command-not-found-when-running-a-phusion-passenger-command-through-sudo-14k8kde
|
96
|
+
|
95
97
|
8. Appendix: About environment variables => appendix-about-environment-variables-1ct91x3
|
96
98
|
|
97
99
|
8.1. Working with environment variables => working-with-environment-variables-11cmwlv
|
@@ -130,7 +130,7 @@ Every time you start Standalone, you must pass the `--nginx-config-template` par
|
|
130
130
|
|
131
131
|
[source,sh]
|
132
132
|
------------------------------------------
|
133
|
-
passenger start --nginx-config-template nginx.
|
133
|
+
passenger start --nginx-config-template nginx.conf.erb
|
134
134
|
------------------------------------------
|
135
135
|
|
136
136
|
Alternatively, if you don't want to pass this parameter every time, you can also set the `nginx_config_template` option in <<config_file,passenger-standalone.json>>.
|
@@ -69,6 +69,7 @@ export PATH=/opt/local/bin:$PATH
|
|
69
69
|
export PATH=$PATH:/usr/local/bin
|
70
70
|
---------------------------------
|
71
71
|
|
72
|
+
[[the_path_env_var]]
|
72
73
|
=== The PATH environment variable
|
73
74
|
|
74
75
|
The `PATH` environment variable dictates where the system looks for command. It is a colon-separated list of directories. If you get a "command not found" error while you know that the command is installed, then setting `PATH` will help. For example suppose that the command `frobnicator` is in `/opt/local/bin`:
|
@@ -61,7 +61,7 @@ We provide an official Phusion Passenger APT repository. This APT repository con
|
|
61
61
|
|
62
62
|
If you use these packages to install Phusion Passenger then you do not need to run `passenger-install-apache2-module` or `passenger-install-nginx-module`. These packages contain all the binaries that you need.
|
63
63
|
|
64
|
-
Packages are available for the x86 and x86_64 architectures. Our policy is to support all Ubuntu LTS releases that are still supported by Canonical, plus the latest
|
64
|
+
Packages are available for the x86 and x86_64 architectures. Our policy is to support all Ubuntu LTS releases that are still supported by Canonical, plus the latest Ubuntu release, plus all Debian releases that are still supported by Debian.
|
65
65
|
|
66
66
|
[[install_add_apt_repo]]
|
67
67
|
==== Adding our APT repository
|
@@ -85,8 +85,8 @@ sudo apt-get install apt-transport-https ca-certificates
|
|
85
85
|
[source,sh]
|
86
86
|
--------------------------------------------------------------
|
87
87
|
##### !!!! Only add ONE of these lines, not all of them !!!! #####
|
88
|
-
# Ubuntu
|
89
|
-
deb https://oss-binaries.phusionpassenger.com/apt/passenger
|
88
|
+
# Ubuntu 14.04
|
89
|
+
deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main
|
90
90
|
# Ubuntu 12.04
|
91
91
|
deb https://oss-binaries.phusionpassenger.com/apt/passenger precise main
|
92
92
|
# Ubuntu 10.04
|
@@ -102,8 +102,8 @@ deb https://oss-binaries.phusionpassenger.com/apt/passenger squeeze main
|
|
102
102
|
[source,sh]
|
103
103
|
--------------------------------------------------------------
|
104
104
|
##### !!!! Only add ONE of these lines, not all of them !!!! #####
|
105
|
-
# Ubuntu
|
106
|
-
deb https://download:YOUR_DOWNLOAD_TOKEN@www.phusionpassenger.com/enterprise_apt
|
105
|
+
# Ubuntu 14.04
|
106
|
+
deb https://download:YOUR_DOWNLOAD_TOKEN@www.phusionpassenger.com/enterprise_apt trusty main
|
107
107
|
# Ubuntu 12.04
|
108
108
|
deb https://download:YOUR_DOWNLOAD_TOKEN@www.phusionpassenger.com/enterprise_apt precise main
|
109
109
|
# Ubuntu 10.04
|
@@ -1,18 +1,51 @@
|
|
1
|
-
=== Supported operating systems ===
|
1
|
+
=== Supported operating systems and languages ===
|
2
2
|
|
3
|
-
Phusion Passenger works on any POSIX-compliant operating system. In other
|
3
|
+
Phusion Passenger works on almost any POSIX-compliant operating system. In other
|
4
4
|
words: practically any operating system on earth, except Microsoft Windows.
|
5
5
|
|
6
|
-
|
7
|
-
distributions, including, but not limited to, Ubuntu, Debian, CentOS/Fedora/RHEL,
|
8
|
-
Gentoo, Mac OS X, FreeBSD and Solaris. OpenBSD is supported since version 5.2.
|
9
|
-
Both 32-bit and 64-bit platforms are supported.
|
6
|
+
Supported operating systems:
|
10
7
|
|
11
|
-
|
8
|
+
[options="header"]
|
9
|
+
|==================================================
|
10
|
+
| OS | Minimum version
|
11
|
+
| Ubuntu | 10.04
|
12
|
+
| Debian | 6
|
13
|
+
| Mac OS X | 10.8 Mountain Lion
|
14
|
+
| FreeBSD | 8
|
15
|
+
| OpenBSD | 5.2
|
16
|
+
| Other Unix | -
|
17
|
+
|==================================================
|
18
|
+
|
19
|
+
"Other Unix" is supported on a "best-effort" basis. We do not regularly check whether Phusion Passenger still works on other Unices, but if users report issues then we'll try to address them.
|
20
|
+
|
21
|
+
Supported architectures:
|
22
|
+
|
23
|
+
[options="header"]
|
24
|
+
|==================================================
|
25
|
+
| Architecture | Notes
|
26
|
+
| x86 (32-bit) | -
|
27
|
+
| x86_64 (64-bit) | -
|
28
|
+
| Other | Supported on a "best-effort" basis.
|
29
|
+
|==================================================
|
30
|
+
|
31
|
+
Supported languages and frameworks:
|
32
|
+
|
33
|
+
[options="header"]
|
34
|
+
|==================================================
|
35
|
+
| Language/framework | Minimum version
|
36
|
+
| Ruby (MRI) | 1.8.5
|
37
|
+
| JRuby | 1.7.0
|
38
|
+
| Rubinius | 2.2.0
|
39
|
+
| Ruby on Rails | 1.2
|
40
|
+
| Python | 2.6
|
41
|
+
| Node.js | 0.10
|
42
|
+
| Meteor | 0.6
|
43
|
+
|==================================================
|
44
|
+
|
45
|
+
If you run into any issues, please
|
12
46
|
link:http://code.google.com/p/phusion-passenger/issues/list[report a bug]
|
13
47
|
or
|
14
|
-
link:http://groups.google.com/group/phusion-passenger[join our discussion forum]
|
15
|
-
if it doesn't work on your POSIX-compliant operating system.
|
48
|
+
link:http://groups.google.com/group/phusion-passenger[join our discussion forum].
|
16
49
|
|
17
50
|
[[where_to_get_support]]
|
18
51
|
=== Where to get support ===
|