Hoa Hoang
Hoa Hoang

Reputation: 1242

Fail to install Nginx and Passenger on Ubuntu 14.04 with Ruby 2.2.0

I tried to install Nginx and Passenger for deploying my Rails application. I used RVM and install Ruby 2.2.0 as default, and run

rvmsudo passenger-install-nginx-module

But got this errors:

.....
Compiling Passenger support files...
# env NOEXEC_DISABLE=1 /home/webapp/.rvm/gems/ruby-2.2.0/wrappers/rake nginx:clean nginx RELEASE=yes
rm -rf buildout/cache
rm -rf buildout/common/libboost_oxt.a buildout/common/libboost_oxt
rm -f buildout/common/libpassenger_common/Logging.o buildout/common/libpassenger_common/Exceptions.o buildout/common/libpassenger_common/Utils/SystemTime.o buildout/common/libpassenger_common/Utils/StrIntUtils.o buildout/common/libpassenger_common/Utils/StrIntUtilsNoStrictAliasing.o buildout/common/libpassenger_common/Utils/IOUtils.o buildout/common/libpassenger_common/Utils.o
rm -f buildout/common/libpassenger_common/Utils/modp_b64.o buildout/common/libpassenger_common/Utils/CachedFileStat.o buildout/common/libpassenger_common/Utils/LargeFiles.o buildout/common/libpassenger_common/ApplicationPool2/Implementation.o buildout/common/libpassenger_common/ApplicationPool2/AppTypes.o buildout/common/libpassenger_common/AgentsStarter.o buildout/common/libpassenger_common/AgentBase.o buildout/common/libpassenger_common/MemoryKit/mbuf.o buildout/common/libpassenger_common/MemoryKit/palloc.o buildout/common/libpassenger_common/ServerKit/http_parser.o buildout/common/libpassenger_common/ServerKit/Implementation.o buildout/common/libpassenger_common/Utils/MD5.o buildout/common/libpassenger_common/Utils/Hasher.o buildout/common/libpassenger_common/Utils/jsoncpp.o
rm -f buildout/common/libpassenger_common/agent/UstRouter/FilterSupport.o
rm -rf buildout/common/libpassenger_common
rm -rf buildout/support-binaries/
mkdir -p buildout/support-binaries
c++ -o buildout/support-binaries/WatchdogMain.o  -Iext -Iext/common  -Iext/libev -Iext/libuv/include   -D_REENTRANT -I/usr/local/include -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -feliminate-unused-debug-symbols -feliminate-unused-debug-types -fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -Wno-attributes -ggdb -DHAS_ALLOCA_H -DHAVE_ACCEPT4 -DHAS_SFENCE -DHAS_LFENCE -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -std=gnu++11 -Wno-unused-local-typedefs -DHASH_NAMESPACE="__gnu_cxx" -DHASH_MAP_HEADER="<hash_map>" -DHASH_MAP_CLASS="hash_map" -DHASH_FUN_H="<hash_fun.h>" -c ext/common/agent/Watchdog/Main.cpp
c++ -o buildout/support-binaries/CoreMain.o  -Iext -Iext/common  -Iext/libev -Iext/libuv/include   -D_REENTRANT -I/usr/local/include -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -feliminate-unused-debug-symbols -feliminate-unused-debug-types -fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -Wno-attributes -ggdb -DHAS_ALLOCA_H -DHAVE_ACCEPT4 -DHAS_SFENCE -DHAS_LFENCE -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -std=gnu++11 -Wno-unused-local-typedefs -DHASH_NAMESPACE="__gnu_cxx" -DHASH_MAP_HEADER="<hash_map>" -DHASH_MAP_CLASS="hash_map" -DHASH_FUN_H="<hash_fun.h>" -c ext/common/agent/Core/Main.cpp
virtual memory exhausted: Cannot allocate memory
rake aborted!
Command failed with status (1): [c++ -o buildout/support-binaries/CoreMain.o  -Iext -Iext/common  -Iext/libev -Iext/libuv/include   -D_REENTRANT -I/usr/local/include -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -feliminate-unused-debug-symbols -feliminate-unused-debug-types -fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -Wno-attributes -ggdb -DHAS_ALLOCA_H -DHAVE_ACCEPT4 -DHAS_SFENCE -DHAS_LFENCE -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -std=gnu++11 -Wno-unused-local-typedefs -DHASH_NAMESPACE="__gnu_cxx" -DHASH_MAP_HEADER="<hash_map>" -DHASH_MAP_CLASS="hash_map" -DHASH_FUN_H="<hash_fun.h>" -c ext/common/agent/Core/Main.cpp]
/home/webapp/.rvm/gems/ruby-2.2.0/gems/passenger-5.0.13/build/cplusplus_support.rb:51:in `run_compiler'
/home/webapp/.rvm/gems/ruby-2.2.0/gems/passenger-5.0.13/build/cplusplus_support.rb:61:in `compile_cxx'
/home/webapp/.rvm/gems/ruby-2.2.0/gems/passenger-5.0.13/build/agents.rb:124:in `block (2 levels) in <top (required)>'
Tasks: TOP => nginx => nginx_without_native_support => buildout/support-binaries/PassengerAgent => buildout/support-binaries/CoreMain.o
(See full trace by running task with --trace)
--------------------------------------------

It looks like something went wrong

Please read our Users guide for troubleshooting tips:

   /home/webapp/.rvm/gems/ruby-2.2.0/gems/passenger-5.0.13/doc/Users guide Nginx.html
   https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html

If that doesn't help, please use our support facilities. We'll do our best to help you.

   https://www.phusionpassenger.com/documentation_and_support

How can I resolve this issue?

Upvotes: 1

Views: 644

Answers (2)

Jacob Margason
Jacob Margason

Reputation: 622

When building the module into Nginx the system needs at least 1 Gig of memory in order to do its work. Creating a swap file is an easy way to get around whatever RAM limitation the server may have. Here's how to create a swap file.

sudo dd if=/dev/zero of=/swap bs=1024m count=1

Be very careful with the dd command.

Then initialize the swap:

sudo mkswap /swap && sudo swapon /swap

Now you can run:

rvmsudo passenger-install-nginx-module

Upvotes: 1

Noman Ur Rehman
Noman Ur Rehman

Reputation: 6947

Adding a swap file will solve your problem. Please have a look at this guide on how to add a swap file.

Upvotes: 1

Related Questions