passenger 4.0.20 → 4.0.21
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/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/NEWS +15 -0
- data/README.md +5 -3
- data/Rakefile +1 -0
- data/bin/passenger-config +1 -5
- data/bin/passenger-install-apache2-module +53 -5
- data/bin/passenger-install-nginx-module +19 -6
- data/bin/passenger-memory-stats +3 -3
- data/build/agents.rb +11 -8
- data/build/apache2.rb +9 -5
- data/build/basics.rb +15 -21
- data/build/common_library.rb +16 -6
- data/build/cplusplus_support.rb +5 -5
- data/build/cxx_tests.rb +3 -3
- data/build/documentation.rb +1 -1
- data/build/misc.rb +4 -37
- data/build/node_tests.rb +29 -0
- data/build/oxt_tests.rb +1 -1
- data/build/packaging.rb +29 -10
- data/build/preprocessor.rb +2 -1
- data/build/test_basics.rb +15 -6
- data/debian.template/locations.ini.template +1 -0
- data/debian.template/passenger.install.template +1 -0
- data/dev/copy_boost_headers.rb +7 -3
- data/dev/run_travis.sh +32 -16
- data/doc/Users guide Apache.idmap.txt +22 -34
- data/doc/Users guide Apache.txt +20 -234
- data/doc/Users guide Nginx.idmap.txt +84 -66
- data/doc/Users guide Nginx.txt +50 -1
- data/doc/Users guide Standalone.idmap.txt +74 -0
- data/doc/Users guide Standalone.txt +22 -9
- data/doc/Users guide.txt +51 -0
- data/doc/users_guide_snippets/environment_variables.txt +0 -3
- data/doc/users_guide_snippets/installation.txt +337 -380
- data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
- data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
- data/doc/users_guide_snippets/support_information.txt +2 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
- data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
- data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
- data/ext/apache2/Bucket.h +1 -1
- data/ext/apache2/Configuration.hpp +0 -44
- data/ext/apache2/CreateDirConfig.cpp +1 -1
- data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
- data/ext/apache2/Hooks.cpp +28 -21
- data/ext/apache2/MergeDirConfig.cpp +1 -0
- data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
- data/ext/apache2/SetHeaders.cpp +73 -0
- data/ext/apache2/SetHeaders.cpp.erb +88 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
- data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
- data/ext/boost/algorithm/string/formatter.hpp +2 -2
- data/ext/boost/assert.hpp +6 -1
- data/ext/boost/atomic.hpp +18 -0
- data/ext/boost/atomic/atomic.hpp +241 -0
- data/ext/boost/atomic/detail/base.hpp +585 -0
- data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
- data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
- data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
- data/ext/boost/atomic/detail/config.hpp +54 -0
- data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
- data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
- data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
- data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
- data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
- data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
- data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
- data/ext/boost/atomic/detail/interlocked.hpp +200 -0
- data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
- data/ext/boost/atomic/detail/lockpool.hpp +97 -0
- data/ext/boost/atomic/detail/platform.hpp +62 -0
- data/ext/boost/atomic/detail/type-classification.hpp +45 -0
- data/ext/boost/chrono/config.hpp +8 -3
- data/ext/boost/chrono/duration.hpp +9 -10
- data/ext/boost/chrono/system_clocks.hpp +1 -1
- data/ext/boost/chrono/time_point.hpp +4 -3
- data/ext/boost/config/auto_link.hpp +53 -52
- data/ext/boost/config/compiler/borland.hpp +1 -0
- data/ext/boost/config/compiler/clang.hpp +24 -1
- data/ext/boost/config/compiler/codegear.hpp +1 -0
- data/ext/boost/config/compiler/common_edg.hpp +1 -0
- data/ext/boost/config/compiler/cray.hpp +1 -0
- data/ext/boost/config/compiler/digitalmars.hpp +1 -0
- data/ext/boost/config/compiler/gcc.hpp +29 -3
- data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
- data/ext/boost/config/compiler/hp_acc.hpp +1 -0
- data/ext/boost/config/compiler/intel.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -0
- data/ext/boost/config/compiler/mpw.hpp +1 -0
- data/ext/boost/config/compiler/pathscale.hpp +1 -0
- data/ext/boost/config/compiler/pgi.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
- data/ext/boost/config/compiler/vacpp.hpp +3 -2
- data/ext/boost/config/compiler/visualc.hpp +25 -11
- data/ext/boost/config/platform/vxworks.hpp +353 -15
- data/ext/boost/config/select_compiler_config.hpp +4 -4
- data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
- data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
- data/ext/boost/config/suffix.hpp +45 -19
- data/ext/boost/date_time/format_date_parser.hpp +1 -11
- data/ext/boost/date_time/strings_from_facet.hpp +5 -3
- data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
- data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
- data/ext/boost/detail/endian.hpp +52 -4
- data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
- data/ext/boost/detail/select_type.hpp +36 -0
- data/ext/boost/exception/current_exception_cast.hpp +1 -1
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
- data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
- data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/ext/boost/exception/detail/type_info.hpp +1 -1
- data/ext/boost/exception/diagnostic_information.hpp +15 -14
- data/ext/boost/exception/exception.hpp +1 -1
- data/ext/boost/exception/get_error_info.hpp +1 -1
- data/ext/boost/exception/info.hpp +12 -13
- data/ext/boost/exception/to_string.hpp +6 -1
- data/ext/boost/exception/to_string_stub.hpp +9 -1
- data/ext/boost/foreach.hpp +5 -5
- data/ext/boost/function/function_template.hpp +6 -6
- data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
- data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
- data/ext/boost/functional/hash/extensions.hpp +14 -2
- data/ext/boost/functional/hash/hash.hpp +26 -5
- data/ext/boost/get_pointer.hpp +17 -2
- data/ext/boost/integer_traits.hpp +1 -1
- data/ext/boost/lexical_cast.hpp +615 -395
- data/ext/boost/libs/atomic/lockpool.cpp +24 -0
- data/ext/boost/libs/system/src/error_code.cpp +25 -18
- data/ext/boost/libs/thread/src/future.cpp +7 -5
- data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
- data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
- data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/math/policies/policy.hpp +10 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
- data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
- data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
- data/ext/boost/math/special_functions/sign.hpp +13 -8
- data/ext/boost/math/tools/config.hpp +38 -16
- data/ext/boost/move/algorithm.hpp +275 -0
- data/ext/boost/move/core.hpp +332 -0
- data/ext/boost/move/detail/config_begin.hpp +23 -0
- data/ext/boost/move/detail/config_end.hpp +20 -0
- data/ext/boost/move/detail/meta_utils.hpp +158 -0
- data/ext/boost/move/iterator.hpp +298 -0
- data/ext/boost/move/move.hpp +10 -1256
- data/ext/boost/move/traits.hpp +142 -0
- data/ext/boost/move/utility.hpp +194 -0
- data/ext/boost/mpl/assert.hpp +72 -4
- data/ext/boost/noncopyable.hpp +15 -3
- data/ext/boost/pointer_to_other.hpp +55 -0
- data/ext/boost/range/concepts.hpp +4 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
- data/ext/boost/range/empty.hpp +1 -1
- data/ext/boost/range/iterator_range_core.hpp +4 -1
- data/ext/boost/range/iterator_range_io.hpp +2 -2
- data/ext/boost/ratio/config.hpp +6 -0
- data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
- data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
- data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
- data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
- data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
- data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
- data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
- data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
- data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
- data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
- data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
- data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
- data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
- data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
- data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
- data/ext/boost/smart_ptr/shared_array.hpp +135 -20
- data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
- data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
- data/ext/boost/static_assert.hpp +74 -17
- data/ext/boost/system/error_code.hpp +76 -68
- data/ext/boost/system/system_error.hpp +5 -1
- data/ext/boost/thread/barrier.hpp +6 -2
- data/ext/boost/thread/completion_latch.hpp +233 -0
- data/ext/boost/thread/condition.hpp +6 -1
- data/ext/boost/thread/detail/async_func.hpp +571 -0
- data/ext/boost/thread/detail/config.hpp +248 -40
- data/ext/boost/thread/detail/counter.hpp +93 -0
- data/ext/boost/thread/detail/delete.hpp +12 -0
- data/ext/boost/thread/detail/invoke.hpp +1351 -0
- data/ext/boost/thread/detail/is_convertible.hpp +48 -0
- data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
- data/ext/boost/thread/detail/log.hpp +83 -0
- data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
- data/ext/boost/thread/detail/move.hpp +32 -16
- data/ext/boost/thread/detail/thread.hpp +236 -41
- data/ext/boost/thread/detail/thread_group.hpp +55 -9
- data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
- data/ext/boost/thread/exceptions.hpp +2 -0
- data/ext/boost/thread/externally_locked.hpp +351 -0
- data/ext/boost/thread/externally_locked_stream.hpp +170 -0
- data/ext/boost/thread/future.hpp +2517 -455
- data/ext/boost/thread/future_error_code.hpp +61 -0
- data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
- data/ext/boost/thread/latch.hpp +142 -0
- data/ext/boost/thread/lock_algorithms.hpp +468 -0
- data/ext/boost/thread/lock_concepts.hpp +197 -0
- data/ext/boost/thread/lock_factories.hpp +78 -0
- data/ext/boost/thread/lock_guard.hpp +88 -0
- data/ext/boost/thread/lock_options.hpp +31 -0
- data/ext/boost/thread/lock_traits.hpp +45 -0
- data/ext/boost/thread/lock_types.hpp +1226 -0
- data/ext/boost/thread/lockable_adapter.hpp +226 -0
- data/ext/boost/thread/lockable_concepts.hpp +157 -0
- data/ext/boost/thread/lockable_traits.hpp +207 -0
- data/ext/boost/thread/locks.hpp +5 -1816
- data/ext/boost/thread/mutex.hpp +33 -1
- data/ext/boost/thread/null_mutex.hpp +243 -0
- data/ext/boost/thread/once.hpp +10 -1
- data/ext/boost/thread/poly_lockable.hpp +68 -0
- data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
- data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
- data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
- data/ext/boost/thread/pthread/mutex.hpp +101 -38
- data/ext/boost/thread/pthread/once.hpp +459 -44
- data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
- data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
- data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
- data/ext/boost/thread/pthread/thread_data.hpp +53 -50
- data/ext/boost/thread/pthread/timespec.hpp +96 -12
- data/ext/boost/thread/recursive_mutex.hpp +44 -1
- data/ext/boost/thread/reverse_lock.hpp +3 -2
- data/ext/boost/thread/scoped_thread.hpp +285 -0
- data/ext/boost/thread/shared_lock_guard.hpp +2 -1
- data/ext/boost/thread/shared_mutex.hpp +23 -0
- data/ext/boost/thread/strict_lock.hpp +235 -0
- data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
- data/ext/boost/thread/sync_queue.hpp +516 -0
- data/ext/boost/thread/synchronized_value.hpp +1001 -0
- data/ext/boost/thread/testable_mutex.hpp +148 -0
- data/ext/boost/thread/thread.hpp +1 -13
- data/ext/boost/thread/thread_functors.hpp +57 -0
- data/ext/boost/thread/thread_guard.hpp +46 -0
- data/ext/boost/thread/thread_only.hpp +29 -0
- data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
- data/ext/boost/thread/v2/thread.hpp +37 -10
- data/ext/boost/thread/xtime.hpp +2 -1
- data/ext/boost/token_functions.hpp +16 -16
- data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
- data/ext/boost/type_traits/add_reference.hpp +1 -1
- data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
- data/ext/boost/type_traits/aligned_storage.hpp +13 -0
- data/ext/boost/type_traits/common_type.hpp +11 -12
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
- data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
- data/ext/boost/type_traits/has_left_shift.hpp +49 -0
- data/ext/boost/type_traits/has_right_shift.hpp +49 -0
- data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
- data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
- data/ext/boost/type_traits/intrinsics.hpp +18 -2
- data/ext/boost/type_traits/is_abstract.hpp +1 -1
- data/ext/boost/type_traits/is_array.hpp +1 -1
- data/ext/boost/type_traits/is_const.hpp +1 -1
- data/ext/boost/type_traits/is_convertible.hpp +78 -17
- data/ext/boost/type_traits/is_function.hpp +6 -1
- data/ext/boost/type_traits/is_integral.hpp +6 -1
- data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
- data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
- data/ext/boost/type_traits/is_pod.hpp +3 -1
- data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/ext/boost/type_traits/is_volatile.hpp +1 -1
- data/ext/boost/type_traits/make_signed.hpp +153 -0
- data/ext/boost/type_traits/make_unsigned.hpp +16 -0
- data/ext/boost/type_traits/remove_const.hpp +1 -1
- data/ext/boost/type_traits/remove_cv.hpp +1 -1
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/remove_volatile.hpp +1 -1
- data/ext/boost/unordered/detail/allocate.hpp +1120 -0
- data/ext/boost/unordered/detail/buckets.hpp +876 -0
- data/ext/boost/unordered/detail/equivalent.hpp +680 -0
- data/ext/boost/unordered/detail/extract_key.hpp +183 -0
- data/ext/boost/unordered/detail/fwd.hpp +23 -0
- data/ext/boost/unordered/detail/table.hpp +861 -0
- data/ext/boost/unordered/detail/unique.hpp +622 -0
- data/ext/boost/unordered/detail/util.hpp +260 -0
- data/ext/boost/unordered/unordered_map.hpp +1652 -0
- data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
- data/ext/boost/unordered/unordered_set.hpp +1549 -0
- data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
- data/ext/boost/unordered_map.hpp +18 -0
- data/ext/boost/unordered_set.hpp +18 -0
- data/ext/boost/utility/addressof.hpp +2 -2
- data/ext/boost/utility/result_of.hpp +8 -1
- data/ext/boost/version.hpp +2 -2
- data/ext/common/Account.h +1 -1
- data/ext/common/AccountsDatabase.h +1 -1
- data/ext/common/AgentsStarter.cpp +3 -1
- data/ext/common/AgentsStarter.h +2 -2
- data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
- data/ext/common/ApplicationPool2/AppTypes.h +17 -8
- data/ext/common/ApplicationPool2/Common.h +12 -12
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
- data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +6 -6
- data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
- data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
- data/ext/common/ApplicationPool2/Pool.h +21 -21
- data/ext/common/ApplicationPool2/Process.h +6 -6
- data/ext/common/ApplicationPool2/Session.h +1 -1
- data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
- data/ext/common/ApplicationPool2/Socket.h +2 -2
- data/ext/common/ApplicationPool2/Spawner.h +64 -14
- data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
- data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
- data/ext/common/BackgroundEventLoop.cpp +4 -4
- data/ext/common/BackgroundEventLoop.h +1 -1
- data/ext/common/Constants.h +13 -1
- data/ext/common/EventedBufferedInput.h +8 -8
- data/ext/common/Exceptions.cpp +71 -0
- data/ext/common/Exceptions.h +60 -7
- data/ext/common/FileDescriptor.h +4 -4
- data/ext/common/MessageClient.h +1 -1
- data/ext/common/MessageServer.h +5 -5
- data/ext/common/MultiLibeio.cpp +3 -3
- data/ext/common/MultiLibeio.h +2 -2
- data/ext/common/RandomGenerator.h +11 -11
- data/ext/common/ResourceLocator.h +8 -1
- data/ext/common/SafeLibev.h +12 -12
- data/ext/common/ServerInstanceDir.h +11 -3
- data/ext/common/UnionStation.h +10 -10
- data/ext/common/Utils.cpp +11 -13
- data/ext/common/Utils.h +9 -9
- data/ext/common/Utils/BlockingQueue.h +10 -10
- data/ext/common/Utils/BufferedIO.h +1 -1
- data/ext/common/Utils/CachedFileStat.hpp +2 -2
- data/ext/common/Utils/FileChangeChecker.h +1 -1
- data/ext/common/Utils/HashMap.h +13 -4
- data/ext/common/Utils/IOUtils.cpp +33 -10
- data/ext/common/Utils/IniFile.h +3 -3
- data/ext/common/Utils/Lock.h +2 -2
- data/ext/common/Utils/MessagePassing.h +10 -10
- data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
- data/ext/common/Utils/ScopeGuard.h +5 -5
- data/ext/common/Utils/jsoncpp.cpp +2 -0
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
- data/ext/common/agents/HelperAgent/Main.cpp +18 -18
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
- data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
- data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
- data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
- data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
- data/ext/common/agents/SpawnPreparer.cpp +1 -0
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
- data/ext/common/agents/Watchdog/Main.cpp +81 -73
- data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
- data/ext/libev/Changes +57 -0
- data/ext/libev/LICENSE +2 -1
- data/ext/libev/Makefile.in +110 -50
- data/ext/libev/README +8 -8
- data/ext/libev/aclocal.m4 +1503 -861
- data/ext/libev/config.guess +290 -304
- data/ext/libev/config.sub +77 -198
- data/ext/libev/configure +1735 -890
- data/ext/libev/configure.ac +3 -2
- data/ext/libev/ev++.h +6 -6
- data/ext/libev/ev.c +541 -214
- data/ext/libev/ev.h +106 -100
- data/ext/libev/ev_epoll.c +1 -1
- data/ext/libev/ev_kqueue.c +20 -4
- data/ext/libev/ev_vars.h +15 -16
- data/ext/libev/ev_win32.c +12 -2
- data/ext/libev/ev_wrap.h +162 -160
- data/ext/libev/event.c +29 -6
- data/ext/libev/event.h +9 -2
- data/ext/libev/ltmain.sh +2632 -1384
- data/ext/nginx/ConfigurationCommands.c +1 -1
- data/ext/nginx/ConfigurationCommands.c.erb +3 -1
- data/ext/nginx/ContentHandler.c +25 -2
- data/ext/nginx/CreateLocationConfig.c +1 -0
- data/ext/nginx/CreateLocationConfig.c.erb +1 -1
- data/ext/nginx/MergeLocationConfig.c +1 -0
- data/ext/nginx/MergeLocationConfig.c.erb +1 -1
- data/ext/nginx/config +12 -0
- data/ext/oxt/dynamic_thread_group.hpp +7 -4
- data/ext/oxt/system_calls.cpp +5 -1
- data/ext/oxt/system_calls.hpp +3 -0
- data/helper-scripts/node-loader.js +117 -249
- data/lib/phusion_passenger.rb +27 -5
- data/lib/phusion_passenger/abstract_installer.rb +104 -9
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
- data/lib/phusion_passenger/apache2/config_options.rb +6 -3
- data/lib/phusion_passenger/common_library.rb +7 -1
- data/lib/phusion_passenger/constants.rb +6 -0
- data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
- data/lib/phusion_passenger/nginx/config_options.rb +2 -1
- data/lib/phusion_passenger/packaging.rb +3 -0
- data/lib/phusion_passenger/platform_info/apache.rb +43 -6
- data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
- data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
- data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
- data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
- data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
- data/lib/phusion_passenger/platform_info/linux.rb +2 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
- data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
- data/lib/phusion_passenger/standalone/start_command.rb +8 -2
- data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
- data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
- data/node_lib/phusion_passenger/line_reader.js +154 -0
- data/node_lib/phusion_passenger/request_handler.js +65 -0
- data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -1
- data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
- data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
- data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/general_error_with_html.html.template +1 -1
- data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
- data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
- data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
- data/resources/templates/nginx/deployment_example.txt.erb +2 -1
- data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/standalone/config.erb +1 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
- data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
- data/test/cxx/EventedBufferedInputTest.cpp +6 -6
- data/test/cxx/FileBackedPipeTest.cpp +1 -1
- data/test/cxx/MessagePassingTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +4 -4
- data/test/cxx/RequestHandlerTest.cpp +7 -7
- data/test/cxx/UnionStationTest.cpp +2 -2
- data/test/node/line_reader_spec.js +338 -0
- data/test/node/spec_helper.js +27 -0
- data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
- metadata +131 -22
- metadata.gz.asc +7 -7
- data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
- data/ext/boost/lambda/core.hpp +0 -79
- data/ext/boost/lambda/detail/actions.hpp +0 -174
- data/ext/boost/lambda/detail/arity_code.hpp +0 -110
- data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
- data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
- data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
- data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
- data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
- data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
- data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
- data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
- data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
- data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
- data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
- data/ext/boost/lambda/detail/operators.hpp +0 -370
- data/ext/boost/lambda/detail/ret.hpp +0 -325
- data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
- data/ext/boost/lambda/detail/select_functions.hpp +0 -74
- data/ext/boost/lambda/lambda.hpp +0 -34
data/doc/Users guide Nginx.txt
CHANGED
@@ -21,6 +21,7 @@ using the command line.
|
|
21
21
|
|
22
22
|
include::users_guide_snippets/support_information.txt[]
|
23
23
|
|
24
|
+
[[installation]]
|
24
25
|
== Installation
|
25
26
|
|
26
27
|
include::users_guide_snippets/installation.txt[]
|
@@ -806,6 +807,9 @@ passenger_set_cgi_param APP_NAME "my super blog";
|
|
806
807
|
passenger_set_cgi_param EXTRA_REQUEST_METHOD method=$request_method;
|
807
808
|
------------------------------
|
808
809
|
|
810
|
+
.Use CGI environment names
|
811
|
+
[NOTE]
|
812
|
+
===============================================
|
809
813
|
If you want to set an HTTP header, then you must set it in the CGI environment name
|
810
814
|
format, i.e. 'HTTP_*':
|
811
815
|
|
@@ -816,10 +820,38 @@ passenger_set_cgi_param X-Forwarded-For 127.0.0.2;
|
|
816
820
|
# Instead, write it like this:
|
817
821
|
passenger_set_cgi_param HTTP_X_FORWARDED_FOR 127.0.0.2;
|
818
822
|
------------------------------
|
823
|
+
===============================================
|
824
|
+
|
825
|
+
.This configuration option is NOT inherited across contexts
|
826
|
+
[WARNING]
|
827
|
+
===============================================
|
828
|
+
In each new context (e.g. in each new 'location' block), you must re-specify `passenger_set_cgi_param`. Values set in parent contexts have no effect on subcontexts. For example:
|
829
|
+
|
830
|
+
------------------------------
|
831
|
+
server {
|
832
|
+
...
|
833
|
+
passenger_set_cgi_param FOO foo;
|
834
|
+
|
835
|
+
location /users {
|
836
|
+
passenger_enabled_on;
|
837
|
+
# !!!THIS IS WRONG!!! The 'FOO' CGI variable will not
|
838
|
+
# be passed URLs beginning with /users because you didn't
|
839
|
+
# re-specify passenger_set_cgi_param.
|
840
|
+
}
|
841
|
+
|
842
|
+
location /apps {
|
843
|
+
passenger_enabled on;
|
844
|
+
# This is correct. Here we re-specify passenger_set_cgi_param,
|
845
|
+
# so the 'FOO' CGI variable will be correctly passed to URLs
|
846
|
+
# starting with /apps.
|
847
|
+
passenger_set_cgi_param FOO foo;
|
848
|
+
}
|
849
|
+
}
|
850
|
+
------------------------------
|
851
|
+
===============================================
|
819
852
|
|
820
853
|
This option may occur in the following places:
|
821
854
|
|
822
|
-
* In the 'http' configuration block.
|
823
855
|
* In a 'server' configuration block.
|
824
856
|
* In a 'location' configuration block.
|
825
857
|
* In an 'if' configuration scope.
|
@@ -1733,6 +1765,20 @@ compatibility reasons.
|
|
1733
1765
|
Deprecated in favor of <<PassengerSpawnMethod,passenger_spawn_method>>.
|
1734
1766
|
|
1735
1767
|
|
1768
|
+
[[troubleshooting]]
|
1769
|
+
== Troubleshooting ==
|
1770
|
+
|
1771
|
+
include::users_guide_snippets/troubleshooting/default.txt[]
|
1772
|
+
|
1773
|
+
=== The application thinks its not on SSL even though it is
|
1774
|
+
|
1775
|
+
Rails and many other frameworks infers whether it's running on SSL through the CGI
|
1776
|
+
environment variable `HTTPS`. This variable is *only* set if you set `ssl on`.
|
1777
|
+
Setting just `listen 443 ssl` is not enough.
|
1778
|
+
|
1779
|
+
include::users_guide_snippets/troubleshooting/rails.txt[]
|
1780
|
+
|
1781
|
+
|
1736
1782
|
== Analysis and system maintenance ==
|
1737
1783
|
|
1738
1784
|
include::users_guide_snippets/analysis_and_system_maintenance.txt[]
|
@@ -1792,4 +1838,7 @@ include::users_guide_snippets/appendix_b_terminology.txt[]
|
|
1792
1838
|
|
1793
1839
|
include::users_guide_snippets/appendix_c_spawning_methods.txt[]
|
1794
1840
|
|
1841
|
+
[[about_environment_variables]]
|
1842
|
+
== Appendix D: About environment variables
|
1843
|
+
|
1795
1844
|
include::users_guide_snippets/environment_variables.txt[]
|
@@ -20,5 +20,79 @@
|
|
20
20
|
|
21
21
|
2. Installation => installation-2vrmef
|
22
22
|
|
23
|
+
2.1. Synopsis => synopsis-92sr34
|
24
|
+
|
25
|
+
2.2. Installing or upgrading on Mac OS X with Homebrew => installing-or-upgrading-on-mac-os-x-with-homebrew-fxjdi1
|
26
|
+
|
27
|
+
2.3. Installing or upgrading on Debian or Ubuntu => installing-or-upgrading-on-debian-or-ubuntu-gme2a9
|
28
|
+
|
29
|
+
2.3.1. Adding our APT repository => adding-our-apt-repository-1qu2se8
|
30
|
+
|
31
|
+
2.3.2. Installing packages => installing-packages-k1zxbg
|
32
|
+
|
33
|
+
2.4. Installing or upgrading on Red Hat, Fedora, CentOS or ScientificLinux => installing-or-upgrading-on-red-hat-fedora-centos-or-scientificlinux-16cek45
|
34
|
+
|
35
|
+
2.5. Generic installation, upgrade and downgrade method: via RubyGems => generic-installation-upgrade-and-downgrade-method-via-rubygems-1229ugi
|
36
|
+
|
37
|
+
2.6. Generic installation, upgrade and downgrade method: via tarball => generic-installation-upgrade-and-downgrade-method-via-tarball-1rwvasy
|
38
|
+
|
39
|
+
2.7. Upgrading from open source to Enterprise => upgrading-from-open-source-to-enterprise-1kezors
|
40
|
+
|
41
|
+
2.8. Cryptographic verification of installation files => cryptographic-verification-of-installation-files-85nwoi
|
42
|
+
|
43
|
+
2.8.1. Synopsis => synopsis-1ij8j9r
|
44
|
+
|
45
|
+
2.8.2. Importing the Phusion Software Signing key => importing-the-phusion-software-signing-key-1u5hkcr
|
46
|
+
|
47
|
+
2.8.3. Verifying the Phusion Software Signing key => verifying-the-phusion-software-signing-key-qor1n1
|
48
|
+
|
49
|
+
2.8.4. Verifying the gem and tarball => verifying-the-gem-and-tarball-i7tj7a
|
50
|
+
|
51
|
+
2.8.5. Verifying Git signatures => verifying-git-signatures-dltpan
|
52
|
+
|
53
|
+
2.8.6. Verifying DEB and RPM packages => verifying-deb-and-rpm-packages-uga0ho
|
54
|
+
|
55
|
+
2.8.7. Revocation => revocation-ukzeg9
|
56
|
+
|
57
|
+
2.9. Customizing the compilation process => customizing-the-compilation-process-j4xj2t
|
58
|
+
|
59
|
+
2.9.1. Setting the compiler => setting-the-compiler-1fxfulc
|
60
|
+
|
61
|
+
2.9.2. Adding additional compiler or linker flags => adding-additional-compiler-or-linker-flags-nxfour
|
62
|
+
|
63
|
+
2.9.3. Forcing location of command line tools and dependencies => forcing-location-of-command-line-tools-and-dependencies-xajpg1
|
64
|
+
|
65
|
+
2.10. Uninstalling => uninstalling-3hpprb
|
66
|
+
|
67
|
+
2.11. Moving to a different directory => moving-to-a-different-directory-b3lpy1
|
68
|
+
|
23
69
|
3. Usage => usage-1eyt33o
|
24
70
|
|
71
|
+
4. Troubleshooting => troubleshooting-o7g75o
|
72
|
+
|
73
|
+
4.1. Generic troubleshooting tips => generic-troubleshooting-tips-2vokcr
|
74
|
+
|
75
|
+
4.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
|
76
|
+
|
77
|
+
5. Appendix: About environment variables => appendix-about-environment-variables-1ct91x3
|
78
|
+
|
79
|
+
5.1. Working with environment variables => working-with-environment-variables-11cmwlv
|
80
|
+
|
81
|
+
5.2. The PATH environment variable => the-path-environment-variable-yzfn3k
|
82
|
+
|
83
|
+
5.2.1. Adding Phusion Passenger’s administration tools to PATH => adding-phusion-passenger-s-administration-tools-to-path-d7k5mh
|
84
|
+
|
85
|
+
5.3. Making environment variables permanent => making-environment-variables-permanent-mkq46d
|
86
|
+
|
87
|
+
5.3.1. bash => bash-hmcscc
|
88
|
+
|
89
|
+
5.3.2. Apache => apache-15y3bm0
|
90
|
+
|
91
|
+
5.3.3. Nginx => nginx-uarf27
|
92
|
+
|
93
|
+
5.3.4. cron => cron-6272ar
|
94
|
+
|
95
|
+
5.3.5. Phusion Passenger-served apps => phusion-passenger-served-apps-127wbl2
|
96
|
+
|
97
|
+
5.4. Environment variables and sudo => environment-variables-and-sudo-znzmif
|
98
|
+
|
@@ -1,4 +1,4 @@
|
|
1
|
-
= Phusion Passenger Standalone users guide
|
1
|
+
= Phusion Passenger Standalone users guide
|
2
2
|
|
3
3
|
image:images/phusion_banner.png[link="http://www.phusion.nl/"]
|
4
4
|
|
@@ -16,17 +16,19 @@ Here are some of the highlights:
|
|
16
16
|
resource management for you. Crashing application processes are automatically restarted.
|
17
17
|
- Can listen on a Unix socket, for use in reverse proxy setups.
|
18
18
|
|
19
|
-
|
19
|
+
|
20
|
+
== Support information
|
20
21
|
|
21
22
|
include::users_guide_snippets/support_information.txt[]
|
22
23
|
|
23
|
-
== Installation ==
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
[[installation]]
|
26
|
+
== Installation
|
27
|
+
|
28
|
+
include::users_guide_snippets/installation.txt[]
|
29
|
+
|
28
30
|
|
29
|
-
== Usage
|
31
|
+
== Usage
|
30
32
|
|
31
33
|
Go to your application's root directory, and run:
|
32
34
|
|
@@ -38,7 +40,18 @@ This will start Phusion Passenger on port 3000. If you want to run it on a diffe
|
|
38
40
|
use the `-p` option, e.g.:
|
39
41
|
|
40
42
|
------------------------------
|
41
|
-
|
43
|
+
passenger start -p 8000
|
42
44
|
------------------------------
|
43
45
|
|
44
|
-
See `--help` for all available options.
|
46
|
+
See `--help` for all available options.
|
47
|
+
|
48
|
+
|
49
|
+
[[troubleshooting]]
|
50
|
+
== Troubleshooting
|
51
|
+
|
52
|
+
include::users_guide_snippets/troubleshooting/default.txt[]
|
53
|
+
|
54
|
+
[[about_environment_variables]]
|
55
|
+
== Appendix: About environment variables
|
56
|
+
|
57
|
+
include::users_guide_snippets/environment_variables.txt[]
|
data/doc/Users guide.txt
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
Phusion Passenger users guide index
|
2
|
+
===================================
|
3
|
+
|
4
|
+
image:images/phusion_banner.png[link="http://www.phusion.nl/"]
|
5
|
+
|
6
|
+
link:https://www.phusionpassenger.com/[Phusion Passenger] is a web server and application server, designed to be fast, robust and lightweight. It runs your web apps with the least amount of hassle by taking care of almost all administrative heavy lifting for you. Advanced administration tools allow you to gain deep insight into your web applications' operations and to keep your servers healthy. Phusion Passenger is polyglot by design, and currently supports Ruby (Rack), Python (WSGI) and Node.js.
|
7
|
+
|
8
|
+
Phusion Passenger has several integration modes, each mode with its own documentation, covering *installation*, *usage*, *troubleshooting* and more.
|
9
|
+
|
10
|
+
[[overview]]
|
11
|
+
== Overview
|
12
|
+
|
13
|
+
=== Nginx integration mode
|
14
|
+
|
15
|
+
In this mode, Phusion Passenger integrates directly into Nginx as an Nginx module. You operate Phusion Passenger mostly through Nginx and through Nginx configuration files. The Nginx integration mode is, along with the Standalone mode, highly optimized for performance.
|
16
|
+
|
17
|
+
link:Users%20Guide%20Nginx.html[**Read the documentation for the Nginx integration mode >>**]
|
18
|
+
|
19
|
+
=== Apache integration mode
|
20
|
+
|
21
|
+
In this mode, Phusion Passenger integrates directly into Apache as an Apache module. You operate Phusion Passenger mostly through Apache and through Apache configuration files.
|
22
|
+
|
23
|
+
link:Users%20Guide%20Apache.html[**Read the documentation for the Apache integration mode >>**]
|
24
|
+
|
25
|
+
=== Standalone mode
|
26
|
+
|
27
|
+
In this mode, Phusion Passenger operates as a fully-featured, secure standalone HTTP server. You do not need to have an existing web server like Apache or Nginx. This mode is ideal...
|
28
|
+
|
29
|
+
* ...if you are not familiar with Apache or Nginx
|
30
|
+
* ...when you want to quickly start up a server without editing configuration files (e.g. during development)
|
31
|
+
* ...or when you want to decouple the web server from the application server, by setting up reverse proxies.
|
32
|
+
|
33
|
+
Along with the Nginx mode, the Standalone mode is highly optimized for performance.
|
34
|
+
|
35
|
+
link:Users%20Guide%20Standalone.html[**Read the documentation for the Standalone mode >>**]
|
36
|
+
|
37
|
+
[[installation]]
|
38
|
+
== Installation and upgrade
|
39
|
+
|
40
|
+
Please refer to:
|
41
|
+
|
42
|
+
* link:Users%20Guide%20Nginx.html#installation[**Nginx** mode installation & upgrade]
|
43
|
+
* link:Users%20Guide%20Apache.html#installation[**Apache** mode installation & upgrade]
|
44
|
+
* link:Users%20Guide%20Standalone.html#installation[**Standalone** mode installation & upgrade]
|
45
|
+
|
46
|
+
[[support]]
|
47
|
+
== Where to get support
|
48
|
+
|
49
|
+
include::users_guide_snippets/where_to_get_support.txt[]
|
50
|
+
|
51
|
+
include::users_guide_snippets/appendix_a_about.txt[]
|
@@ -1,6 +1,3 @@
|
|
1
|
-
[[about_environment_variables]]
|
2
|
-
== Appendix D: About environment variables
|
3
|
-
|
4
1
|
The Phusion Passenger compilation process can be customized with environment variables.
|
5
2
|
|
6
3
|
Environment variables are named values that affect how the system works. For example they tell the system where to look for commands (the `PATH` variable) or where to look for libraries (`LD_LIBRARY_PATH`). Their names are often in all-uppercase. Sometimes people refer to an environment variable with a dollar sign `$` in front, but that's the same thing: when people say "the $PATH environment variable" they mean "the PATH environment variable". This is because the dollar sign `$` is a shell syntax for refering to an environment variable, as you will learn later.
|
@@ -1,346 +1,57 @@
|
|
1
1
|
=== Synopsis
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
1. The *obtainment step*, where you download the Phusion Passenger files puts them somewhere on your system. This can be done through downloading the source tarball, installing the Ruby gem or installing a native OS package via APT or YUM.
|
6
|
-
2. The *integration step*, where you configure Phusion Passenger so that it works properly with other system components such as Apache, Nginx, Ruby, Python, etc.
|
7
|
-
|
8
|
-
Because Phusion Passenger is designed to run in a wide variety of operating systems and configurations, both steps can be done in multiple ways. Most users -- especially first-time users -- will be satisfied with the _generic installation instructions_ which covers both steps. However some users may prefer _OS-specific installation instructions_, which allow Phusion Passenger to better integrate into the operating system. Better integration is characterized by following OS-specific conventions.
|
9
|
-
|
10
|
-
If you are not familiar with system administration and do not understand all the choices, then we recommend you to go with the <<rubygems_generic_install,RubyGems generic installation method>> (if you're a Ruby user) or the <<tarball_generic_install,tarball generic installation method>> (if you're not a Ruby user).
|
3
|
+
Because Phusion Passenger is designed to run in a wide variety of operating systems and configurations, there are multiple ways to install it. Most users -- especially first-time users -- will prefer _OS-specific installation instructions_. These are not only the easiest, but also allow Phusion Passenger to integrate into the operating system in the best way possible. Other users should consult the _generic installation instructions_.
|
11
4
|
|
12
5
|
The steps for upgrading or downgrading Phusion Passenger is almost the same as the steps for installing. All the installation guides in this section will also teach you how to upgrade and downgrade.
|
13
6
|
|
14
7
|
|
15
|
-
[[
|
16
|
-
===
|
17
|
-
|
18
|
-
RubyGems is only used as a method to obtain the Phusion Passenger files, so in case you have multiple Ruby versions it does not matter which Ruby's RubyGems you use for installation. Once installed, Phusion Passenger can work with all other Ruby versions on your system. This is explained in <<relationship_with_ruby,Phusion Passenger and its relationship with Ruby>>.
|
19
|
-
|
20
|
-
[[is_ruby_home_or_system_wide_installed]]
|
21
|
-
[float]
|
22
|
-
==== Step 1: figuring out whether your Ruby is installed the home directory or system-wide
|
23
|
-
|
24
|
-
Ruby may either be installed in the home directory, or system-wide. If it's installed system-wide then we will want to install gems system-wide as well, so you need to switch to a root prompt first. If Ruby is installed in the home directory then we will want to install gems to the home directory as well, as a normal user.
|
25
|
-
|
26
|
-
To find out which case applies, run the following command to find out where the `ruby` command is:
|
27
|
-
|
28
|
-
--------------
|
29
|
-
which ruby
|
30
|
-
--------------
|
31
|
-
|
32
|
-
Do you see a filename that references '/home' or '/Users'? If so then your Ruby interpreter is installed in your home directory and you can proceed to step 2. Otherwise, you need to switch to a root prompt by running one of the following commands:
|
33
|
-
|
34
|
-
* Are you using RVM? Run `rvmsudo -s`
|
35
|
-
* Are you not using RVM, or do you not know what RVM is? Run `sudo -s`
|
36
|
-
* Is 'sudo' not installed on your system? Run `su -c bash`
|
37
|
-
|
38
|
-
You must maintain this root prompt throughout this installation guide.
|
39
|
-
|
40
|
-
[float]
|
41
|
-
==== Step 2: install the gem
|
42
|
-
|
43
|
-
.Open Source
|
44
|
-
|
45
|
-
Install the latest gem to obtain the files for the latest stable version of the open source Phusion Passenger:
|
46
|
-
|
47
|
-
----------------------
|
48
|
-
gem install passenger
|
49
|
-
----------------------
|
50
|
-
|
51
|
-
Sometimes you will want to obtain the latest beta version of Phusion Passenger. Beta versions are not normally selected by `gem install`, so to opt-in for beta versions you have to add the `--pre` argument:
|
52
|
-
|
53
|
-
-----------------------------------
|
54
|
-
gem install passenger --pre
|
55
|
-
-----------------------------------
|
56
|
-
|
57
|
-
If you want to obtain a specific version of Phusion Passenger, e.g. because you are downgrading, then specify the version number with `--version`:
|
58
|
-
|
59
|
-
-----------------------------------
|
60
|
-
gem install passenger --version 3.0.0
|
61
|
-
-----------------------------------
|
62
|
-
|
63
|
-
If you want to obtain a specific *beta* version of Phusion Passenger then you must also pass `--pre`:
|
64
|
-
|
65
|
-
----------------------------------------------------
|
66
|
-
gem install passenger --version 3.9.1.beta --pre
|
67
|
-
----------------------------------------------------
|
68
|
-
|
69
|
-
.Enterprise
|
70
|
-
|
71
|
-
First, download the *license key* from the link:https://www.phusionpassenger.com/orders[Customer Area] and save it as '/etc/passenger-enterprise-license'.
|
72
|
-
|
73
|
-
Next, add the Phusion Passenger Enterprise gem server to your RubyGems source list:
|
74
|
-
|
75
|
-
------------------------------------------
|
76
|
-
gem source --add https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_gems/
|
77
|
-
------------------------------------------
|
78
|
-
|
79
|
-
Substitute 'YOUR_ORDER_REFERENCE' and 'YOUR_PASSWORD' with your link:https://www.phusionpassenger.com/orders[Customer Area] login credentials. And notice the **trailing slash** in the URL! It is very important.
|
80
|
-
|
81
|
-
Finally, install the latest gem to obtain the files for the latest stable version of the open source Phusion Passenger:
|
82
|
-
|
83
|
-
----------------------
|
84
|
-
gem install passenger-enterprise-server
|
85
|
-
----------------------
|
86
|
-
|
87
|
-
Sometimes you will want to obtain the latest beta version of Phusion Passenger Enterprise. Beta versions are not normally selected by `gem install`, so to opt-in for beta versions you have to add the `--pre` argument:
|
88
|
-
|
89
|
-
-----------------------------------
|
90
|
-
gem install passenger-enterprise-server --pre
|
91
|
-
-----------------------------------
|
92
|
-
|
93
|
-
If you want to obtain a specific version of Phusion Passenger Enterprise, e.g. because you are downgrading, then specify the version number with `--version`:
|
94
|
-
|
95
|
-
-----------------------------------
|
96
|
-
gem install passenger-enterprise-server --version 3.0.0
|
97
|
-
-----------------------------------
|
98
|
-
|
99
|
-
If you want to obtain a specific *beta* version of Phusion Passenger then you must also pass `--pre`:
|
100
|
-
|
101
|
-
----------------------------------------------------
|
102
|
-
gem install passenger-enterprise-server --version 3.9.1.beta --pre
|
103
|
-
----------------------------------------------------
|
104
|
-
|
105
|
-
[float]
|
106
|
-
==== Step 3: loosen permissions
|
107
|
-
|
108
|
-
If in step 1 you determined that your Ruby interpreter is installed in your home directory, then you need to make sure that the Phusion Passenger gem directory is accessible by your web server. To do that, you must ensure that the Phusion Passenger gem directory, as well as all parent directories, have the world-executable permission.
|
109
|
-
|
110
|
-
To find out where the Phusion Passenger gem directory is, run:
|
111
|
-
|
112
|
-
-------------------------
|
113
|
-
passenger-config --root
|
114
|
-
-------------------------
|
115
|
-
|
116
|
-
Suppose that the above command outputs '/home/phusion/.rvm/gems/ruby-1.9.3-p362/gems/passenger-x.x.x'. Then you `chmod o+x` the directory itself and all parent directories up until '/home/phusion':
|
117
|
-
|
118
|
-
-------------------------
|
119
|
-
chmod o+x /home/phusion/.rvm/gems/ruby-1.9.3-p362/gems/passenger-x.x.x
|
120
|
-
chmod o+x /home/phusion/.rvm/gems/ruby-1.9.3-p362/gems
|
121
|
-
chmod o+x /home/phusion/.rvm/gems/ruby-1.9.3-p362
|
122
|
-
chmod o+x /home/phusion/.rvm/gems
|
123
|
-
chmod o+x /home/phusion/.rvm
|
124
|
-
chmod o+x /home/phusion
|
125
|
-
-------------------------
|
126
|
-
|
127
|
-
[[run_passenger_installer]]
|
128
|
-
[float]
|
129
|
-
==== Step 4: run the Phusion Passenger installer
|
130
|
-
|
131
|
-
ifdef::apache[]
|
132
|
-
The Phusion Passenger gem only contains source files. In this step we will use the installer to compile the Phusion Passenger binaries, which include the various Phusion Passenger agent executables and the Phusion Passenger Apache module.
|
133
|
-
|
134
|
-
Run the following command and follow the on-screen instructions.
|
135
|
-
|
136
|
-
----------------------------------
|
137
|
-
passenger-install-apache2-module
|
138
|
-
----------------------------------
|
139
|
-
|
140
|
-
At the end of the installation process, you will be asked to copy and paste a configuration snippet (containing `LoadModule`, `PassengerRoot`, etc.) into your Apache configuration file. If you're upgrading, then you already had a similar configuration snippet. Be sure to remove the old one before pasting the new one.
|
141
|
-
|
142
|
-
Different operating systems and Apache installations have different conventions with regard to where the Apache configuration file is and how it is organized. Please read <<working_with_apache_conf,Working with the Apache configuration file>> if you're not familiar with it. That section is especially of interest for OS X Server >= 10.8 users because the configuration file may not be at a surprising location.
|
143
|
-
|
144
|
-
If compilation doesn't succeed, then please consult the <<troubleshooting,Troubleshooting>> section.
|
145
|
-
|
146
|
-
.What does the installer do?
|
147
|
-
|
148
|
-
Despite the name, this "installer" doesn't actually install anything. The installer checks whether all required dependencies are installed, invokes the compiler, and tells you how to modify the Apache
|
149
|
-
configuration file. However, it doesn't copy any files to outside the Phusion Passenger source directory.
|
8
|
+
[[install_osx_homebrew]]
|
9
|
+
=== Installing or upgrading on Mac OS X with Homebrew
|
150
10
|
|
151
|
-
|
152
|
-
|
11
|
+
**Open source**::
|
12
|
+
Every time we release a new Phusion Passenger version, we make it available through link:http://brew.sh/[Homebrew]. Please note that the Homebrew maintainers have to merge our pull requests manually, so it may take a day or two before a new version shows up in the official Homebrew repository.
|
13
|
+
+
|
14
|
+
1. Update the Homebrew recipes:
|
15
|
+
+
|
16
|
+
---------------------------
|
17
|
+
brew update
|
18
|
+
---------------------------
|
19
|
+
2. Run one of the following, and follow the instructions:
|
20
|
+
+
|
153
21
|
ifdef::nginx[]
|
154
|
-
Nginx is a different from other web servers in that it does not support loadable modules. The only way to extend Nginx is to recompile it entirely from source. Since Phusion Passenger consists of some external executables plus an Nginx module, you must recompile Nginx when first installing Phusion Passenger, but also when upgrading Nginx itself or when upgrading the Phusion Passenger version.
|
155
|
-
|
156
|
-
Recompiling Nginx and the Phusion Passenger executables is what we will do in this step. The good news is that Phusion Passenger provides a tool to make this easy for you.
|
157
|
-
|
158
|
-
If you've already installed Nginx before, but without Phusion Passenger support, then you *should* uninstall it first. You don't have to, because you can also install another Nginx with Phusion Passenger support, in parallel to the existing Nginx. We merely recommend uninstalling the existing in order to avoid user confusion, but the choice is yours.
|
159
|
-
|
160
|
-
If you had previously installed Nginx with Phusion Passenger support, and you are upgrading, then you don't have to uninstall your existing Nginx first. Instead we'll overwrite it this step. But it is important that you recompile Nginx with the configure parameters that you used last time.
|
161
|
-
|
162
|
-
Here's how you can uninstall the original Nginx:
|
163
|
-
|
164
|
-
- If you installed the existing Nginx through APT, run: `sudo apt-get remove nginx nginx-full nginx-light nginx-naxsi nginx-common`
|
165
|
-
- If you installed the existing Nginx through YUM, run `yum remove nginx` as root.
|
166
|
-
|
167
|
-
To proceed with installing or upgrading Phusion Passenger, run the Phusion Passenger Nginx installer and follow the on-screen instructions:
|
168
|
-
|
169
|
-
----------------------------------
|
170
|
-
passenger-install-nginx-module
|
171
|
-
----------------------------------
|
172
|
-
|
173
|
-
At some point it will ask you which prefix to install Nginx to. If you're upgrading, then specify the same prefix that you used last time, as well as the same configuration parameters that you used last time.
|
174
|
-
endif::[]
|
175
|
-
|
176
|
-
[float]
|
177
|
-
==== Step 5: Restarting the Flying Passenger daemon
|
178
|
-
|
179
|
-
If you are using <<flying_passenger,Flying Passenger>> then you must restart the Flying Passenger daemon by sending it the SIGTERM signal:
|
180
|
-
|
181
|
-
-------------------------------
|
182
|
-
kill `cat /path-to/flying-passenger.pid`
|
183
|
-
-------------------------------
|
184
|
-
|
185
|
-
Or, if Flying Passenger is not running with a PID file, look up its PID us `ps` and then send it SIGTERM:
|
186
|
-
|
187
|
-
-------------------------------
|
188
|
-
ps auxw | grep flying-passenger
|
189
|
-
kill PID_OF_FLYING_PASSENGER
|
190
|
-
-------------------------------
|
191
|
-
|
192
|
-
[[verify_passenger_running]]
|
193
|
-
[float]
|
194
|
-
==== Step 6: Verifying that Phusion Passenger is running
|
195
|
-
|
196
|
-
Restart your web server and run:
|
197
|
-
|
198
22
|
---------------------------
|
199
|
-
passenger-
|
23
|
+
brew install passenger nginx --with-passenger
|
24
|
+
-OR-
|
25
|
+
brew upgrade passenger nginx --with-passenger
|
200
26
|
---------------------------
|
27
|
+
+
|
28
|
+
.Upgrade note
|
29
|
+
[NOTE]
|
30
|
+
=======================================
|
31
|
+
If Phusion Passenger has been updated, but no new Nginx version has been released, then you must also reinstall Nginx against the latest version of Phusion Passenger:
|
201
32
|
|
202
|
-
|
203
|
-
|
204
|
-
|
33
|
+
---------------------------
|
34
|
+
brew reinstall nginx --with-passenger
|
35
|
+
---------------------------
|
36
|
+
=======================================
|
205
37
|
endif::[]
|
206
|
-
|
207
|
-
If the output is not as expected, then please refer to the <<troubleshooting,Troubleshooting>> section.
|
208
|
-
|
209
|
-
|
210
|
-
[[tarball_generic_install]]
|
211
|
-
=== Generic installation, upgrade and downgrade method: via tarball
|
212
|
-
|
213
|
-
[float]
|
214
|
-
==== Step 1: download and extract the tarball
|
215
|
-
|
216
|
-
Download the open source Phusion Passenger tarball from link:https://www.phusionpassenger.com/download#open_source[the Phusion Passenger website]. Older versions can be found on link:https://www.phusionpassenger.com/file_releases[the release archive].
|
217
|
-
|
218
|
-
If you a link:https://www.phusionpassenger.com/enterprise[Phusion Passenger Enterprise] customer, download the Phusion Passenger Enterprise tarball from the link:https://www.phusionpassenger.com/orders[Customer Area]. Also be sure to download the *license key* and save it as '/etc/passenger-enterprise-license'.
|
219
|
-
|
220
|
-
Once you have downloaded the tarball, pick a location to extract it to. You can pick any location. A good location is '/opt/passenger'. Let's call this location `$PREFIX`. Create this directory and extract the tarball as follows:
|
221
|
-
|
222
|
-
--------------------------------------------------
|
223
|
-
mkdir $PREFIX
|
224
|
-
cd $PREFIX
|
225
|
-
tar xzvf /location-to/passenger-x.x.x.tar.gz
|
226
|
-
cd $PREFIX/passenger-x.x.x
|
227
|
-
--------------------------------------------------
|
228
|
-
|
229
|
-
Note that `passenger-x.x.x` should be `passenger-enterprise-server-x.x.x` if you're using Phusion Passenger Enterprise.
|
230
|
-
|
231
|
-
[float]
|
232
|
-
==== Step 2: loosen permissions
|
233
|
-
|
234
|
-
The Phusion Passenger directory must be accessible by the web server and by any web apps you want to run. To do that, you must ensure that the Phusion Passenger gem directory, as well as all parent directories, have the world-executable permission.
|
235
|
-
|
236
|
-
Suppose that the Phusion Passenger directory is '/opt/passenger/passenger-4.0.0'. Run `chmod o+x` on the directory itself and all parent directories.
|
237
|
-
|
238
|
-
-------------------------
|
239
|
-
chmod o+x /opt/passenger/passenger-4.0.0
|
240
|
-
chmod o+x /opt/passenger
|
241
|
-
chmod o+x /opt
|
242
|
-
-------------------------
|
243
|
-
|
244
|
-
[float]
|
245
|
-
==== Step 3: installing Ruby and Rake
|
246
|
-
|
247
|
-
Phusion Passenger supports multiple languages and its core is written in C++, but its installer and administration tools are written in Ruby, so you must install that.
|
248
|
-
|
249
|
-
Even though Ruby is required, Ruby will normally not be loaded during normal operation unless you deploy a Ruby web application on Phusion Passenger. Phusion Passenger's dependency on Ruby is very minimal. See <<relationship_with_ruby,Phusion Passenger and its relationship with Ruby>> for details.
|
250
|
-
|
251
|
-
Run `ruby --version` and `rake --version` to find out whether both commands are already installed and recent enough. Phusion Passenger requires Ruby >= 1.8.6. Any Rake version will do.
|
252
|
-
|
253
|
-
.Debian 6
|
254
|
-
|
255
|
-
We recommend you to use link:http://wiki.brightbox.co.uk/docs:phusion-passenger[the Brightbox Ruby packages]. They provide more up-to-date versions of Ruby than Debian's official repositories provide. Their Ubuntu Lucid repository is compatible with Debian 6. If you do not want to use the Brightbox repository, then follow the instructions for Debian 5.
|
256
|
-
|
257
|
-
Add the Brightbox repository and install the Bright APT public key:
|
258
|
-
|
259
|
-
-----------------------------
|
260
|
-
echo deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu lucid main | sudo tee /etc/apt/sources.list.d/brightbox-source.list
|
261
|
-
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6
|
262
|
-
-----------------------------
|
263
|
-
|
264
|
-
Then install Ruby and Rake:
|
265
|
-
|
266
|
-
-----------------------------
|
267
|
-
sudo apt-get update
|
268
|
-
sudo apt-get install ruby1.9.3
|
269
|
-
sudo gem install rake
|
270
|
-
-----------------------------
|
271
|
-
|
272
|
-
.Debian 5
|
273
|
-
|
274
|
-
Run:
|
275
|
-
|
276
|
-
-----------------------------
|
277
|
-
sudo apt-get update
|
278
|
-
sudo apt-get install ruby rake
|
279
|
-
-----------------------------
|
280
|
-
|
281
|
-
Then <<add_rubygems_bin_dir_to_path,add the RubyGems bin directory to your $PATH>>.
|
282
|
-
|
283
|
-
.Ubuntu
|
284
|
-
|
285
|
-
We recommend you to use link:http://wiki.brightbox.co.uk/docs:phusion-passenger[the Brightbox Ruby packages]. They provide more up-to-date versions of Ruby than Ubuntu's official repositories provide. Add the Brightbox repository as follows:
|
286
|
-
|
287
|
-
-----------------------------
|
288
|
-
sudo apt-add-repository ppa:brightbox/passenger
|
289
|
-
sudo apt-get update
|
290
|
-
-----------------------------
|
291
|
-
|
292
|
-
Then install Ruby and Rake:
|
293
|
-
|
294
|
-
-----------------------------
|
295
|
-
sudo apt-get update
|
296
|
-
sudo apt-get install ruby1.9.3
|
297
|
-
sudo gem install rake
|
298
|
-
-----------------------------
|
299
|
-
|
300
|
-
.Other operating systems
|
301
|
-
|
302
|
-
Please install Ruby from link:http://www.ruby-lang.org/[the Ruby website]. Once Ruby is installed, run the following command (<<is_ruby_home_or_system_wide_installed,possibly as root>>) to install Rake:
|
303
|
-
|
304
|
-
-----------------------
|
305
|
-
gem install rake
|
306
|
-
-----------------------
|
307
|
-
|
308
|
-
[float]
|
309
|
-
==== Step 4: figuring out whether your Ruby is installed the home directory or system-wide
|
310
|
-
|
311
|
-
Depending on whether you installed Ruby system-wide, you need to enter a root prompt before continuing to step 5. Please refer to <<is_ruby_home_or_system_wide_installed,this section>>.
|
312
|
-
|
313
|
-
[float]
|
314
|
-
==== Step 5: run the Phusion Passenger installer
|
315
|
-
|
316
|
-
Please refer to <<run_passenger_installer,this section>>.
|
317
38
|
ifdef::apache[]
|
318
|
-
|
39
|
+
---------------------------
|
40
|
+
brew install passenger
|
41
|
+
-OR-
|
42
|
+
brew upgrade passenger
|
43
|
+
---------------------------
|
319
44
|
endif::[]
|
320
|
-
ifdef::
|
321
|
-
|
45
|
+
ifdef::standalone[]
|
46
|
+
---------------------------
|
47
|
+
brew install passenger
|
48
|
+
-OR-
|
49
|
+
brew upgrade passenger
|
50
|
+
---------------------------
|
322
51
|
endif::[]
|
323
52
|
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
If you are using <<flying_passenger,Flying Passenger>> then you must restart the Flying Passenger daemon by sending it the SIGTERM signal:
|
328
|
-
|
329
|
-
-------------------------------
|
330
|
-
kill `cat /path-to/flying-passenger.pid`
|
331
|
-
-------------------------------
|
332
|
-
|
333
|
-
Or, if Flying Passenger is not running with a PID file, look up its PID us `ps` and then send it SIGTERM:
|
334
|
-
|
335
|
-
-------------------------------
|
336
|
-
ps auxw | grep flying-passenger
|
337
|
-
kill PID_OF_FLYING_PASSENGER
|
338
|
-
-------------------------------
|
339
|
-
|
340
|
-
[float]
|
341
|
-
==== Step 7: Verifying that Phusion Passenger is running
|
342
|
-
|
343
|
-
Please refer to <<verify_passenger_running,this section>>. Note that all Phusion Passenger administration scripts are located inside the 'bin' subdirectory of the Phusion Passenger source directory, so you would have to run something like '/opt/passenger/passenger-x.x.x/bin/passenger-memory-stats'.
|
53
|
+
**Enterprise**::
|
54
|
+
link:https://www.phusionpassenger.com/enterprise[Phusion Passenger Enterprise] is currently not available through Homebrew. Please try one of the other installation methods instead.
|
344
55
|
|
345
56
|
|
346
57
|
[[install_on_debian_ubuntu]]
|
@@ -357,8 +68,7 @@ Packages are available for the x86 and x86_64 architectures. Our policy is to su
|
|
357
68
|
Packages are signed by "Phusion Automated Software Signing (auto-software-signing@phusion.nl)", fingerprint 1637 8A33 A6EF 1676 2922 526E 561F 9B9C AC40 B2F7. Install our PGP key:
|
358
69
|
|
359
70
|
--------------------------------------------------------------
|
360
|
-
|
361
|
-
gpg --armor --export 561F9B9CAC40B2F7 | sudo apt-key add -
|
71
|
+
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
|
362
72
|
--------------------------------------------------------------
|
363
73
|
|
364
74
|
Our APT repository is stored on an HTTPS server so you may need to add HTTPS support for APT:
|
@@ -374,7 +84,7 @@ Phusion Passenger open source:
|
|
374
84
|
--------------------------------------------------------------
|
375
85
|
deb https://oss-binaries.phusionpassenger.com/apt/passenger lucid main
|
376
86
|
deb https://oss-binaries.phusionpassenger.com/apt/passenger precise main
|
377
|
-
deb https://oss-binaries.phusionpassenger.com/apt/passenger
|
87
|
+
deb https://oss-binaries.phusionpassenger.com/apt/passenger saucy main
|
378
88
|
deb https://oss-binaries.phusionpassenger.com/apt/passenger squeeze main
|
379
89
|
deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main
|
380
90
|
--------------------------------------------------------------
|
@@ -384,7 +94,7 @@ Phusion Passenger Enterprise:
|
|
384
94
|
--------------------------------------------------------------
|
385
95
|
deb https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_apt lucid main
|
386
96
|
deb https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_apt precise main
|
387
|
-
deb https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_apt
|
97
|
+
deb https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_apt saucy main
|
388
98
|
deb https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_apt squeeze main
|
389
99
|
deb https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_apt wheezy main
|
390
100
|
--------------------------------------------------------------
|
@@ -401,51 +111,58 @@ sudo apt-get update
|
|
401
111
|
|
402
112
|
==== Installing packages
|
403
113
|
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
114
|
+
**Open source**::
|
115
|
+
+
|
116
|
+
ifdef::nginx[]
|
117
|
+
1. Install the packages:
|
118
|
+
+
|
408
119
|
--------------------------------------------------------------
|
409
120
|
sudo apt-get install nginx-full passenger
|
410
121
|
--------------------------------------------------------------
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
122
|
+
2. Edit `/etc/nginx/nginx.conf` and uncomment `passenger_root` and `passenger_ruby`.
|
123
|
+
3. Restart Nginx:
|
124
|
+
+
|
125
|
+
--------------------------------------------------------------
|
126
|
+
sudo service nginx restart
|
127
|
+
--------------------------------------------------------------
|
128
|
+
endif::[]
|
129
|
+
ifdef::apache[]
|
416
130
|
--------------------------------------------------------------
|
417
131
|
sudo apt-get install libapache2-mod-passenger
|
418
132
|
--------------------------------------------------------------
|
419
|
-
|
420
|
-
|
421
|
-
|
133
|
+
endif::[]
|
134
|
+
ifdef::standalone[]
|
422
135
|
--------------------------------------------------------------
|
423
136
|
sudo apt-get install passenger
|
424
137
|
--------------------------------------------------------------
|
138
|
+
endif::[]
|
425
139
|
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
140
|
+
**Enterprise**::
|
141
|
+
+
|
142
|
+
1. Download your license key from the link:https://www.phusionpassenger.com/orders[Customer Area] and save it as `/etc/passenger-enterprise-license`.
|
143
|
+
2. Install the packages:
|
144
|
+
+
|
145
|
+
ifdef::nginx[]
|
432
146
|
--------------------------------------------------------------
|
433
147
|
sudo apt-get install nginx-full passenger-enterprise
|
434
148
|
--------------------------------------------------------------
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
149
|
+
3. Edit `/etc/nginx/nginx.conf` and uncomment `passenger_root` and `passenger_ruby`.
|
150
|
+
4. Restart Nginx:
|
151
|
+
+
|
152
|
+
--------------------------------------------------------------
|
153
|
+
sudo service nginx restart
|
154
|
+
--------------------------------------------------------------
|
155
|
+
endif::[]
|
156
|
+
ifdef::apache[]
|
440
157
|
--------------------------------------------------------------
|
441
158
|
sudo apt-get install libapache2-mod-passenger-enterprise
|
442
159
|
--------------------------------------------------------------
|
443
|
-
|
444
|
-
|
445
|
-
|
160
|
+
endif::[]
|
161
|
+
ifdef::standalone[]
|
446
162
|
--------------------------------------------------------------
|
447
163
|
sudo apt-get install passenger-enterprise
|
448
164
|
--------------------------------------------------------------
|
165
|
+
endif::[]
|
449
166
|
|
450
167
|
|
451
168
|
=== Installing or upgrading on Red Hat, Fedora, CentOS or ScientificLinux
|
@@ -525,35 +242,242 @@ yum install passenger-standalone
|
|
525
242
|
There are instructions for building your own packages and Yum repositories in the link:https://github.com/phusion/passenger/tree/master/rpm#readme[rpm directory ReadMe] within the link:https://github.com/phusion/passenger[GitHub repository].
|
526
243
|
|
527
244
|
|
528
|
-
|
245
|
+
[[rubygems_generic_install]]
|
246
|
+
=== Generic installation, upgrade and downgrade method: via RubyGems
|
247
|
+
|
248
|
+
RubyGems is only used as a method to obtain the Phusion Passenger files, so in case you have multiple Ruby versions it does not matter which Ruby's RubyGems you use for installation. Once installed, Phusion Passenger can work with all other Ruby versions on your system. This is explained in <<relationship_with_ruby,Phusion Passenger and its relationship with Ruby>>.
|
249
|
+
|
250
|
+
[[is_ruby_home_or_system_wide_installed]]
|
251
|
+
[float]
|
252
|
+
==== Step 1: figuring out whether your Ruby is installed in the home directory or system-wide
|
253
|
+
|
254
|
+
Ruby may either be installed in the home directory, or system-wide. If it's installed system-wide then we will want to install gems system-wide as well, so you need to switch to a root prompt first. If Ruby is installed in the home directory then we will want to install gems to the home directory as well, as a normal user.
|
255
|
+
|
256
|
+
To find out which case applies, run the following command to find out where the `ruby` command is:
|
257
|
+
|
258
|
+
--------------
|
259
|
+
which ruby
|
260
|
+
--------------
|
261
|
+
|
262
|
+
Do you see a filename that references '/home' or '/Users'? If so then your Ruby interpreter is installed in your home directory and you can proceed to step 2. Otherwise, you need to switch to a root prompt by running one of the following commands:
|
529
263
|
|
530
|
-
|
264
|
+
* Are you using RVM? Run `rvmsudo -s`
|
265
|
+
* Are you not using RVM, or do you not know what RVM is? Run `sudo -s`
|
266
|
+
* Is 'sudo' not installed on your system? Run `su -c bash`
|
267
|
+
|
268
|
+
You must maintain this root prompt throughout this installation guide.
|
531
269
|
|
532
|
-
|
270
|
+
[float]
|
271
|
+
==== Step 2: install the gem
|
533
272
|
|
534
|
-
|
273
|
+
**Open Source**::
|
274
|
+
Install the latest gem to obtain the files for the latest stable version of the open source Phusion Passenger:
|
535
275
|
+
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
2. Run the following command and follow the instructions. This will give you access to link:Users%20guide%20Apache.html[Phusion Passenger for Apache] and link:Users%20guide%20Standalone.html[Phusion Passenger Standalone].
|
276
|
+
----------------------
|
277
|
+
gem install passenger
|
278
|
+
----------------------
|
540
279
|
+
|
280
|
+
.Previous versions and beta versions
|
281
|
+
********************************************************
|
282
|
+
Sometimes you will want to obtain the latest beta version of Phusion Passenger. Beta versions are not normally selected by `gem install`, so to opt-in for beta versions you have to add the `--pre` argument:
|
283
|
+
|
284
|
+
-----------------------------------
|
285
|
+
gem install passenger --pre
|
286
|
+
-----------------------------------
|
287
|
+
|
288
|
+
If you want to obtain a specific version of Phusion Passenger, e.g. because you are downgrading, then specify the version number with `--version`:
|
289
|
+
|
290
|
+
-----------------------------------
|
291
|
+
gem install passenger --version 3.0.0
|
292
|
+
-----------------------------------
|
293
|
+
|
294
|
+
If you want to obtain a specific *beta* version of Phusion Passenger then you must also pass `--pre`:
|
295
|
+
|
296
|
+
----------------------------------------------------
|
297
|
+
gem install passenger --version 3.9.1.beta --pre
|
298
|
+
----------------------------------------------------
|
299
|
+
********************************************************
|
300
|
+
|
301
|
+
**Enterprise**::
|
302
|
+
First, download the *license key* from the link:https://www.phusionpassenger.com/orders[Customer Area] and save it as `/etc/passenger-enterprise-license`.
|
303
|
+
+
|
304
|
+
Next, add the Phusion Passenger Enterprise gem server to your RubyGems source list:
|
305
|
+
+
|
306
|
+
------------------------------------------
|
307
|
+
gem source --add https://YOUR_ORDER_REFERENCE:YOUR_PASSWORD@www.phusionpassenger.com/enterprise_gems/
|
308
|
+
------------------------------------------
|
309
|
+
+
|
310
|
+
Substitute 'YOUR_ORDER_REFERENCE' and 'YOUR_PASSWORD' with your link:https://www.phusionpassenger.com/orders[Customer Area] login credentials. And notice the **trailing slash** in the URL! It is very important.
|
311
|
+
+
|
312
|
+
Finally, install the latest gem to obtain the files for the latest stable version of the open source Phusion Passenger:
|
313
|
+
+
|
314
|
+
----------------------
|
315
|
+
gem install passenger-enterprise-server
|
316
|
+
----------------------
|
317
|
+
+
|
318
|
+
.Previous versions and beta versions
|
319
|
+
********************************************************
|
320
|
+
Sometimes you will want to obtain the latest beta version of Phusion Passenger Enterprise. Beta versions are not normally selected by `gem install`, so to opt-in for beta versions you have to add the `--pre` argument:
|
321
|
+
|
322
|
+
-----------------------------------
|
323
|
+
gem install passenger-enterprise-server --pre
|
324
|
+
-----------------------------------
|
325
|
+
|
326
|
+
If you want to obtain a specific version of Phusion Passenger Enterprise, e.g. because you are downgrading, then specify the version number with `--version`:
|
327
|
+
|
328
|
+
-----------------------------------
|
329
|
+
gem install passenger-enterprise-server --version 3.0.0
|
330
|
+
-----------------------------------
|
331
|
+
|
332
|
+
If you want to obtain a specific *beta* version of Phusion Passenger then you must also pass `--pre`:
|
333
|
+
|
334
|
+
----------------------------------------------------
|
335
|
+
gem install passenger-enterprise-server --version 3.9.1.beta --pre
|
336
|
+
----------------------------------------------------
|
337
|
+
********************************************************
|
338
|
+
|
339
|
+
ifndef::standalone[]
|
340
|
+
[[run_passenger_installer]]
|
341
|
+
[float]
|
342
|
+
==== Step 3: run the Phusion Passenger installer
|
343
|
+
|
344
|
+
:gem: true
|
345
|
+
include::installation/run_installer.txt[]
|
346
|
+
|
347
|
+
:gem!:
|
348
|
+
|
349
|
+
[float]
|
350
|
+
==== Step 4: restarting the Flying Passenger daemon
|
351
|
+
|
352
|
+
If you are using <<flying_passenger,Flying Passenger>> then you must restart the Flying Passenger daemon by sending it the SIGTERM signal:
|
353
|
+
|
354
|
+
-------------------------------
|
355
|
+
kill `cat /path-to/flying-passenger.pid`
|
356
|
+
-------------------------------
|
357
|
+
|
358
|
+
Or, if Flying Passenger is not running with a PID file, look up its PID us `ps` and then send it SIGTERM:
|
359
|
+
|
360
|
+
-------------------------------
|
361
|
+
ps aux | grep flying-passenger
|
362
|
+
kill PID_OF_FLYING_PASSENGER
|
363
|
+
-------------------------------
|
364
|
+
|
365
|
+
[[verify_passenger_running]]
|
366
|
+
[float]
|
367
|
+
==== Step 5: verifying that Phusion Passenger is running
|
368
|
+
|
369
|
+
Restart your web server and run:
|
370
|
+
|
541
371
|
---------------------------
|
542
|
-
|
543
|
-
-OR-
|
544
|
-
brew upgrade passenger
|
372
|
+
passenger-memory-stats
|
545
373
|
---------------------------
|
546
|
-
|
374
|
+
|
375
|
+
include::installation/verify_running_epilogue.txt[]
|
376
|
+
|
377
|
+
endif::[]
|
378
|
+
|
379
|
+
|
380
|
+
[[tarball_generic_install]]
|
381
|
+
=== Generic installation, upgrade and downgrade method: via tarball
|
382
|
+
|
383
|
+
[float]
|
384
|
+
==== Step 1: installing Ruby
|
385
|
+
|
386
|
+
Phusion Passenger supports multiple languages and its core is written in C++, but its installer and administration tools are written in Ruby, so you must install Ruby.
|
387
|
+
|
388
|
+
Even though Ruby is required, Ruby will normally not be loaded during normal operation unless you deploy a Ruby web application on Phusion Passenger. Phusion Passenger's dependency on Ruby is very minimal. See <<relationship_with_ruby,Phusion Passenger and its relationship with Ruby>> for details.
|
389
|
+
|
390
|
+
|==========================================================
|
391
|
+
| Debian, Ubuntu | `sudo apt-get update` +
|
392
|
+
`sudo apt-get install ruby rake`
|
393
|
+
| Red Hat, CentOS, ScientificLinux, Amazon Linux | Enable link:http://fedoraproject.org/wiki/EPEL[EPEL], then run as root: +
|
394
|
+
`yum install ruby rubygem-rake`
|
395
|
+
| Mac OS X | No action needed. Ruby is installed by default.
|
396
|
+
| Other operating systems | Install Ruby from link:http://www.ruby-lang.org/[the Ruby website].
|
397
|
+
|==========================================================
|
398
|
+
|
399
|
+
[float]
|
400
|
+
==== Step 2: download and extract the tarball
|
401
|
+
|
402
|
+
**Open Source**::
|
403
|
+
Download the open source Phusion Passenger tarball from link:https://www.phusionpassenger.com/download#open_source[the Phusion Passenger website].
|
404
|
+
+
|
405
|
+
Older versions can be found in link:https://www.phusionpassenger.com/file_releases[the release archive].
|
406
|
+
|
407
|
+
**Enterprise**::
|
408
|
+
link:https://www.phusionpassenger.com/enterprise[Phusion Passenger Enterprise] customers can download the Phusion Passenger Enterprise tarball from the link:https://www.phusionpassenger.com/orders[Customer Area].
|
547
409
|
+
|
410
|
+
Also be sure to download the *license key* and save it as `/etc/passenger-enterprise-license`.
|
411
|
+
|
412
|
+
Once you have downloaded the tarball, pick a location to extract it to. You can pick any location. A good location is '/opt/passenger'. Create this directory and extract the tarball as follows:
|
413
|
+
|
414
|
+
--------------------------------------------------
|
415
|
+
mkdir /opt/passenger
|
416
|
+
cd /opt/passenger
|
417
|
+
tar xzvf /location-to/passenger-x.x.x.tar.gz
|
418
|
+
cd /opt/passenger/passenger-x.x.x
|
419
|
+
--------------------------------------------------
|
420
|
+
|
421
|
+
Note that `passenger-x.x.x` should be `passenger-enterprise-server-x.x.x` if you're using Phusion Passenger Enterprise.
|
422
|
+
|
423
|
+
ifdef::standalone[]
|
424
|
+
[float]
|
425
|
+
==== Step 3: adding the Phusion Passenger tools to PATH
|
426
|
+
|
427
|
+
Edit `/etc/bashrc` (or `/etc/bash.bashrc` on some systems) and append the following to the end of the file:
|
428
|
+
|
429
|
+
---------------------
|
430
|
+
export PATH=/opt/passenger/passenger-x.x.x/bin:$PATH
|
431
|
+
---------------------
|
432
|
+
|
433
|
+
Finally, restart all your shell sessions in order to activate this change. The installation is now complete.
|
434
|
+
|
435
|
+
endif::[]
|
436
|
+
|
437
|
+
ifndef::standalone[]
|
438
|
+
[float]
|
439
|
+
==== Step 3: run the Phusion Passenger installer
|
440
|
+
|
441
|
+
:tarball: true
|
442
|
+
include::installation/run_installer.txt[]
|
443
|
+
|
444
|
+
:tarball!:
|
445
|
+
|
446
|
+
ifdef::nginx[]
|
447
|
+
[float]
|
448
|
+
==== Step 4: restarting the Flying Passenger daemon
|
449
|
+
|
450
|
+
If you are using <<flying_passenger,Flying Passenger>> then you must restart the Flying Passenger daemon by sending it the SIGTERM signal:
|
451
|
+
|
452
|
+
-------------------------------
|
453
|
+
kill `cat /path-to/flying-passenger.pid`
|
454
|
+
-------------------------------
|
455
|
+
|
456
|
+
Or, if Flying Passenger is not running with a PID file, look up its PID us `ps` and then send it SIGTERM:
|
457
|
+
|
458
|
+
-------------------------------
|
459
|
+
ps aux | grep flying-passenger
|
460
|
+
kill PID_OF_FLYING_PASSENGER
|
461
|
+
-------------------------------
|
462
|
+
endif::[]
|
463
|
+
|
464
|
+
[float]
|
465
|
+
ifdef::apache[]
|
466
|
+
==== Step 4: verifying that Phusion Passenger is running
|
467
|
+
endif::[]
|
468
|
+
ifdef::nginx[]
|
469
|
+
==== Step 5: verifying that Phusion Passenger is running
|
470
|
+
endif::[]
|
471
|
+
|
472
|
+
Restart your web server and run:
|
473
|
+
|
548
474
|
---------------------------
|
549
|
-
|
550
|
-
-OR-
|
551
|
-
brew upgrade nginx --wtih-passenger
|
475
|
+
./bin/passenger-memory-stats
|
552
476
|
---------------------------
|
553
477
|
|
554
|
-
.
|
478
|
+
include::installation/verify_running_epilogue.txt[]
|
555
479
|
|
556
|
-
|
480
|
+
endif::[]
|
557
481
|
|
558
482
|
|
559
483
|
=== Upgrading from open source to Enterprise
|
@@ -621,7 +545,7 @@ gpg --keyserver keyserver.ubuntu.com --search-keys 0xBA8DA3F46FAF3782
|
|
621
545
|
|
622
546
|
==== Verifying the gem and tarball
|
623
547
|
|
624
|
-
You can find the open source version's gem and tarball GPG signatures at https://www.phusionpassenger.com/
|
548
|
+
You can find the open source version's gem and tarball GPG signatures at https://www.phusionpassenger.com/file_releases. The Enterprise version's GPG signatures can be found in the link:https://www.phusionpassenger.com/orders[Customer Area]. All signatures have the '.asc' extension. Once you have imported our key, you can verify the validity of a file against its signature as follows:
|
625
549
|
|
626
550
|
-----------------------------------------
|
627
551
|
$ gpg --verify passenger-x.x.x.tar.gz.asc passenger-x.x.x.tar.gz
|
@@ -631,7 +555,7 @@ gpg: Good signature from "Phusion Software Signing <software-signing@phusion.nl>
|
|
631
555
|
|
632
556
|
==== Verifying Git signatures
|
633
557
|
|
634
|
-
Tags in the link:https://github.com/
|
558
|
+
Tags in the link:https://github.com/phusion/passenger[Git repository for the open source version] are also tagged. You can verify a Git tag as follows:
|
635
559
|
|
636
560
|
-------------------------------------------------------
|
637
561
|
$ git tag --verify release-x.x.x
|
@@ -647,7 +571,7 @@ gpg: Good signature from "Phusion Software Signing <software-signing@phusion.nl>
|
|
647
571
|
|
648
572
|
==== Verifying DEB and RPM packages
|
649
573
|
|
650
|
-
The DEB and RPM packages are signed with the signatures of the respective packagers.
|
574
|
+
The DEB and RPM packages are signed with the signatures of the respective packagers. They are automatically checked upon installation.
|
651
575
|
|
652
576
|
==== Revocation
|
653
577
|
|
@@ -659,7 +583,14 @@ gpg --refresh-keys --keyserver pool.sks-servers.net
|
|
659
583
|
gpg --refresh-keys --keyserver keyserver.ubuntu.com
|
660
584
|
-------------------------------------------------------
|
661
585
|
|
586
|
+
If you installed Phusion Passenger through our APT repository, then you should update APT's keyring from time to time as well:
|
587
|
+
|
588
|
+
-------------------------------------------------------
|
589
|
+
sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com
|
590
|
+
-------------------------------------------------------
|
591
|
+
|
662
592
|
|
593
|
+
ifndef::standalone[]
|
663
594
|
=== Non-interactive, automatic, headless installs or upgrades
|
664
595
|
|
665
596
|
ifdef::apache[]
|
@@ -668,6 +599,7 @@ endif::[]
|
|
668
599
|
ifdef::nginx[]
|
669
600
|
By default, the installer (`passenger-install-nginx-module`) is interactive. If you want to automate installation then you can do so by passing various answers to the installer through command line options. Please run the installer with `--help` for a list of available command line options.
|
670
601
|
endif::[]
|
602
|
+
endif::[]
|
671
603
|
|
672
604
|
|
673
605
|
=== Customizing the compilation process
|
@@ -704,6 +636,10 @@ On some systems, C/C++ libraries and headers that Phusion Passenger requires may
|
|
704
636
|
These flags are injected into all C/C++ compiler invocations that involve linking. This includes compiler invocations that compile *and* link. The flags are injected at the beginning of the command string, but after `EXTRA_PRE_CFLAGS` and `EXTRA_PRE_CXXFLAGS`.
|
705
637
|
`EXTRA_LDFLAGS`::
|
706
638
|
Similar to `EXTRA_PRE_LDFLAGS`, but injected at the very end of the command string, even after `EXTRA_CFLAGS` and `EXTRA_CXXFLAGS`.
|
639
|
+
`EXTRA_C_LDFLAGS`::
|
640
|
+
Similar to `EXTRA_LDFLAGS`, but only injected for C executable linking commands. Injected right after `EXTRA_LDFLAGS`.
|
641
|
+
`EXTRA_CXX_LDFLAGS`::
|
642
|
+
Similar to `EXTRA_LDFLAGS`, but only injected for C++ executable linking commands. Injected right after `EXTRA_LDFLAGS`.
|
707
643
|
`PASSENGER_THREAD_LOCAL_STORAGE`::
|
708
644
|
Setting this to 1 will enable the `PASSENGER_THREAD_LOCAL_STORAGE` macro, which forcefully disables the use of thread-local storage inside the Phusion Passenger codebase. Setting this environment variable is useful on systems that have broken support for thread-local storage, despite passing our build system's check for proper thread-local storage support. At the time of writing, one user has reported that Ubuntu 12.04 32-bit has broken thread-local storage report although neither the reporter nor us were able to reproduce the problem on any other systems running Ubuntu 12.04 32-bit. Note that this flag has no effect on non-Phusion Passenger code.
|
709
645
|
|
@@ -806,6 +742,7 @@ When using one of those init scripts, please make sure that the paths inside the
|
|
806
742
|
endif::[]
|
807
743
|
|
808
744
|
|
745
|
+
ifndef::standalone[]
|
809
746
|
=== Disabling without uninstalling
|
810
747
|
|
811
748
|
You can temporarily unload (disable) Phusion Passenger from the web server, without
|
@@ -912,13 +849,16 @@ http {
|
|
912
849
|
endif::[]
|
913
850
|
|
914
851
|
After you've done this, save the configuration file and restart the web server.
|
852
|
+
endif::[]
|
915
853
|
|
916
854
|
[[uninstalling]]
|
917
855
|
=== Uninstalling
|
918
856
|
|
857
|
+
ifndef::standalone[]
|
919
858
|
To uninstall Phusion Passenger, please first remove all Phusion Passenger
|
920
859
|
configuration directives from your web server configuration file(s). After you've
|
921
860
|
done this, you need to remove the Phusion Passenger files.
|
861
|
+
endif::[]
|
922
862
|
|
923
863
|
- If you installed Phusion Passenger via a Ruby gem, then run `gem uninstall passenger` (or, if you're a link:https://www.phusionpassenger.com/enterprise[Phusion Passenger Enterprise] user, `gem uninstall passenger-enterprise-server`).
|
924
864
|
You <<is_ruby_home_or_system_wide_installed,might have to run this as root>>.
|
@@ -944,20 +884,37 @@ First, move the directory to whereever you like:
|
|
944
884
|
mv /opt/passenger/passenger-4.0.0 /usr/local/passenger-4.0.0
|
945
885
|
--------------------------------------------------------------
|
946
886
|
|
947
|
-
Next you must tell your web server that Phusion Passenger has moved.
|
948
887
|
ifdef::apache[]
|
888
|
+
Next you must tell Apache that Phusion Passenger has moved.
|
949
889
|
Open your <<working_with_apache_conf,Apache configuration file>> and set the 'PassengerRoot' directive to the new location:
|
950
890
|
|
951
891
|
---------------------------------------------
|
952
892
|
PassengerRoot /usr/local/passenger-4.0.0
|
953
893
|
---------------------------------------------
|
894
|
+
|
895
|
+
Restart your web server to finalize the change.
|
954
896
|
endif::[]
|
955
897
|
ifdef::nginx[]
|
898
|
+
Next you must tell Nginx that Phusion Passenger has moved.
|
956
899
|
Open your Nginx configuration file and set the 'passenger_root' directive to the new location:
|
957
900
|
|
958
901
|
---------------------------------------------
|
959
|
-
passenger_root /usr/local/passenger-4.0.0
|
902
|
+
passenger_root /usr/local/passenger-4.0.0;
|
960
903
|
---------------------------------------------
|
961
|
-
endif::[]
|
962
904
|
|
963
905
|
Restart your web server to finalize the change.
|
906
|
+
endif::[]
|
907
|
+
|
908
|
+
If you used <<tarball_generic_install,the tarball installation method>> and you added Phusion Passenger's `bin` subdirectory to `PATH`, then you must update your PATH with the new location. Open `/etc/bashrc` (or `/etc/bash.bashrc` on some systems) and change:
|
909
|
+
|
910
|
+
---------------------
|
911
|
+
export PATH=/opt/passenger/passenger-4.0.0/bin:$PATH
|
912
|
+
---------------------
|
913
|
+
|
914
|
+
to:
|
915
|
+
|
916
|
+
---------------------
|
917
|
+
export PATH=/usr/local/passenger-4.0.0/bin:$PATH
|
918
|
+
---------------------
|
919
|
+
|
920
|
+
Finally, restart all your shell sessions to activate the PATH change.
|