Installing Passenger + Apache on a Linux/Unix production server
for Node.js apps + Mac OS X
On this page, we will install Passenger. After installing Passenger we can begin with deploying the app.
Table of contents
Step 1: install Passenger package
You can install Passenger through Homebrew:
$ brew install passenger
Not using Homebrew? Please go back to the operating system selection menu and choose "Other" as operating system.
Step 2: enable the Passenger Apache module and restart Apache
Passenger is now installed, but it still needs to be enabled inside Apache. Run
brew info passenger and follow the instructions in the "Caveats" section:
$ brew info passenger ... ==> Caveats ... To activate Passenger for Apache, create /etc/apache2/other/passenger.conf: (...more instructions that you should follow...)
When you are done following the instructions, restart Apache:
$ sudo apachectl restart
Running macOS Server >= 10.8 Mountain Lion with Web Services?
If you are running a sufficiently recent version of macOS Server (i.e. not the desktop version), and at the same time you are using the Web Services feature, then:
- The configuration file you need to create is not /etc/apache2/other/passenger.conf (despite what Homebrew tells you), but /Library/Server/Web/Config/apache2/httpd_server_app.conf.
- Do not use
apachectlto restart Apache. Use the Web Services administration panel to restart Apache.
Step 3: check installation
After installation, please validate the install by running
sudo /usr/local/bin/passenger-config validate-install. For example:
$ sudo /usr/local/bin/passenger-config validate-install * Checking whether this Phusion Passenger install is in PATH... ✓ * Checking whether there are no other Phusion Passenger installations... ✓
All checks should pass. If any of the checks do not pass, please follow the suggestions on screen.
Finally, check whether Apache has started the Passenger core processes. Run
sudo /usr/local/bin/passenger-memory-stats. You should see Apache processes as well as Passenger processes. For example:
$ sudo /usr/local/bin/passenger-memory-stats Version: 5.0.8 Date : 2015-05-28 08:46:20 +0200 ---------- Apache processes ---------- PID PPID VMSize Private Name -------------------------------------- 3918 1 190.1 MB 0.1 MB /usr/sbin/apache2 ... ----- Passenger processes ------ PID VMSize Private Name -------------------------------- 12517 83.2 MB 0.6 MB Passenger watchdog 12520 266.0 MB 3.4 MB Passenger core 12531 149.5 MB 1.4 MB Passenger ust-router ...
If you do not see any Apache processes or Passenger processes, then you probably have some kind of installation problem or configuration problem. Please refer to the troubleshooting guide.
Now that you have installed Passenger, you are ready to deploy your Node.js application on the production server!