Using the steps below you should be able to quickly install Node.js on your server, and begin testing commands directly on the server via the interpreter, or begin writing applications to run.
- Login to your server as the root user via SSH.
- You need to check for some software dependencies for Node.js, as it requires OpenSSL, Python2.6+, and a compiler like gcc. You can check for these with the following yum commands:
yum list installed | egrep "openssl-devel|python26|python27|gcc-c++"
You might get output back like this:
gcc-c++.x86_64 4.4.7-3.el6 @base
openssl-devel.x86_64 1.0.0-27.el6_4.2 @updates
On this particular server, we already have our gcc-c++ compiler, and the openssl-devel package installed. So we just need to install Python 2.6, or verifiy if it's already on the server and not installed via yum.
Check Python version or install Python 2.6
If you're on a newer VPS or dedicated server you should be running CentOS 6.x, you can confirm this by running the following command:
Which should return:
CentOS release 6.4 (Final)
Older servers would instead return something like:
CentOS release 5.9 (Final)
Now check your Python version with this command:
You should get back something like:
If you're on an older server, and your Python version is older than 2.6, run the following command to install Python 2.6:
yum install python26
If either the gcc-c++ compiler, or the openssl-devel package were also missing when you checked, you'd run one of the following to install those dependencies:
yum install gcc-c++
yum install openssl-devel
- Now you want to navigate to your server's source directory:
- Grab the latest copy of Node.js:
- Extract the Node.js archive:
tar zxvf node-latest.tar.gz
- Navigate to the Node.js directory:
- Now finally configure and install Node.js with this series of commands:
Upon a successful installation, the last few lines should look like this:
symlinking ../lib/node_modules/npm/bin/npm-cli.js -> /usr/local/bin/npm
updating shebang of /usr/local/bin/npm to /usr/local/bin/node
root@server [~]# node
> a = 3;
> b = 2;
> a + b;
(^C again to quit)
You should now have a successful installation of Node.js running, and in further guides we'll go more in-depth with some of the amazing things you can do with Node.js!
Question: Do I need Root Access?
2014-07-27 8:46 pm
Great article - Thanks.Is it possible that Node can be installed by a domain user for a particular domain that has SSH access, so thay can install packages like Grunt and build a workflow without having to do it as root.
2014-07-28 8:06 am
Installing node.js unfortunately needs to be done with the root user. Even with SSH access they would nee the root level permissions.
2014-07-31 6:50 am
Great nodejs installation guide!!! Super useful!
2014-08-21 12:32 pm
I would like to add that the above instructions worked perfect. After many hours of experimenting with my server.js file and index.html files accessing an MYSQL DB, locally I was able to get it to work in a web browser, (VPS Hosting). Others around the country trying through the index.html I created would connect but not receive any data from the SQL DB. Unable to resolve after several days of trying I contacted support via chat. Thanks to the excellent support team (Chris R) he suggested:
Open Ports in APF:
Followed the instructions in the link he gave, I added the port I wanted to use. Everything is working perfect now across the country and locally, including over 3g and 4g. There are many examples on the internet on how to utilize node.js and no one seems to pick the same port for their examples for listening or sending so this threw me off even more. I hope this info helps someone and saves them hours of troubleshooting.
As a side note: I had asked Chris R what port does Inmotion or you recommend to use, he responded: “I have found in online references that 8124 is the common port used although you can set up custom ports on VPS platform if needed” I did use another port but might switch it to 8124.
2014-09-08 4:46 am
Thanks to Scott M. You have shared useful info about installing Node.js.
2014-12-14 10:00 am
Just to concur with Jim B - I also had problems connecting as an outside user (via multiple proxies) but no problem connecting from my static IP, because the IP is allowed for root access. I had to edit the apf file to add the relevant port so, if anyone gets stuck, this link is your friend: http://www.inmotionhosting.com/support/website/general-server-setup/how-to-open-a-port-in-your-firewall
2015-01-18 7:55 am
How do you set it up so if the server reboots it will auto start?
2015-01-19 2:52 pm
Thanks for the question! This is not an uncommon question with the Node.JS community. They recommend either an "upstart" script (Linux) or something called "Forever". You can find the particulars discussed here (how to automatically restart a node server) . There are other options as well, but you can find them by using your favorite search engine. I hope this helps to answer your question, please let us know if you require any further assistance.