How to Install a Node.js Application
Last modified: August 4, 2021
- Because cPanel, L.L.C. doesn’t develop Node.js, cPanel Technical Support can’t help you with these steps.
- We recommend that only experienced system administrators perform these steps.
- We are not responsible for any data loss.
This document describes how to install a
Node.js web application.
- We recommend that you perform the steps in this document via the command line as a cPanel user unless otherwise specified.
- You can also perform these steps in cPanel’s Terminal interface (cPanel >> Home >> Advanced >> Terminal).
- In this document,
nodejsapprepresents the application’s name and
3000represents represents an open firewall port.
For more information, read the Node.js documentation.
Install a Node.js application
Before you begin, make certain that your hosting provider installed the following EasyApache 4 RPMs on your server:
- This module disables Apache’s
- If your system runs CentOS 6, install the
- This module disables Apache’s
We also recommend that your hosting provider install the
Install the application
To install an application, perform the following steps:
Log in to the server via SSH as a cPanel user.
Create the application’s directory, relative to your home directory. To do this, run the following command:
Change to the application’s directory.
app.jsfile with a text editor.Important:We strongly recommend that you create the file with this exact name because Passenger searches for this filename when it executes. If you create a startup file with a different name, you must specify the filename in the ‘httpd.conf’ file. To do this, follow the directions in the Create a custom startup file section below.
Add the application’s configuration to the
app.jsfile. This will resemble the following example:
Test the application
After you install the application, we recommend that you confirm it’s active. To do this, perform the following steps:
Run the following command:The output will resemble will the following example:
Server running at http://127.0.0.1:3000
Open another terminal window and log in to the server via SSH as the same cPanel user.
Run the following command:The output will resemble the following example:
Hello World! NodeJS
If you wish to export the
/opt/cpanel/ea-nodejs10/bin path to your environment, add the following line to your
Register the application
After you install the application, register it. To do this, use cPanel’s Application Manager interface (cPanel >> Home >> Software >> Application Manager).
After you register the application, you can access the application in a web browser with the following URL:
In this example,
example.com represents your website.
Restart the application
When you want your application to restart after you edit it, create the
restart.txt touch file in the application’s
tmp directory. This file directs
mod_passenger to restart the application after you modify it. This action applies your changes to the application.
- You must touch the
restart.txttouch file each time that you want
mod_passengerto restart the application.
- You must manually create the
tmpdirectory. For example:
Create a custom startup file
Passenger searches for the
app.js filename when it executes. If you create a startup file with a different name, you must create an include file and specify the startup filename there. If you don’t do this, your application won’t function.
To specify the new filename, perform the following steps:
/etc/apache2/conf.d/userdata/ssl/2_4/user/domain.nodejs.conffile with a text editor.
PassengerStartupFilevariable and the filename as its value in a virtual host container. This will resemble the following example:
1 2 3 4 5 6
DocumentRoot /user/example.com/public # Use server.js as the startup file (entry point file) for # your Node.js application, instead of the default app.js PassengerStartupFile index.js PassengerAppType node PassengerAppRoot /nodejsapp/example.com
httpd.conffile. To do this, run the following command:
Restart Apache. To do this, run the following command:
Troubleshoot the application
You can find error messages in the application’s
If you experience issues with your Node.js application, use Phusion Passenger’s™ Troubleshooting Passenger Standalone and Node.js documentation to troubleshoot the issue.
The application will not create an SSL include file
If your application will not create an SSL include file, it’s likely that you are using a Node.js application with an addon domain. This issue occurs when the Node.js application’s path differs from the addon domain’s document root path.
To fix this issue, you can create an SSL include file for the addon domain. To do this, perform the following steps:
Complete the steps to register the application. This action creates a configuration file that the system will store in the
/etc/apache2/conf.d/userdata/std/2_4/username/example.com/directory. In this example,
example.comrepresents the addon domain name.
Copy the configuration file for your addon domain in the
/etc/apache2/conf.d/userdata/std/2_4/username/example.com/directory to the
/etc/apache2/conf.d/userdata/ssldirectory. To do so, use the following command:
cp -a /etc/apache2/conf.d/userdata/std/2_4/username/example.com/application-name.conf /etc/apache2/conf.d/userdata/ssl/2_4/username/example.com/application-name.conf
Rebuild the Apache configuration and restart Apache with the following commands:
You can now access the Node.js application through the addon domain’s URL via HTTP (port
80) and HTTPS (port
Application port troubleshooting
Passenger controls the port on which your Node.js application listens when it makes HTTP requests. This is known as reverse port binding. Reverse port binding allows Node.js applications to work with Passenger.
If you experience issues with the port on which your Node.js applications listen, use Phusion Passenger’s™ Reverse port binding in Node.js documentation to troubleshoot the issue.