Author Topic: How to install Node.js and npm on CentOS 7 on Centos Control Panel (Pro)  (Read 3674 times)

0 Members and 1 Guest are viewing this topic.

Offline
*
Hi all, first im using Pro Version so some settings on the end is good for me!

Node.js is a cross-platform JavaScript run-time environment that allows server-side execution of JavaScript code. Node.js is mainly used on the back-end, but it is also popular as a full-stack and front-end solution.

npm, short for Node Package Manager is the default package manager for Node.js and the world’s largest software repository for the publishing of open-source Node.js packages.

This tutorial walks you through the steps to install Node.js and npm on a CentOS 7 machine. We will show you two different ways of installing Node.js and npm.
In the first part of this tutorial we will install Node.js and npm using the yum package manager from the NodeSource repository. In the second part, we will teach you how to install Node.js and npm using the nvm script.

If you need Node.js only for deploying Node.js applications then the simplest option is to install the Node.js packages using yum from the NodeSource repository.

Prerequisites
Before continuing with this tutorial, make sure you are logged in as a user with sudo privileges. ifi is on server you must have Putty and you are probebly already log in!

Installing Node.js and npm on CentOS 7
NodeSource is a company dedicated to providing enterprise-grade Node support and they maintain a consistently-updated Node.js repository for Linux distributions.
To install Node.js and npm from the NodeSource repositories on your CentOS 7 system, follow these steps:

1. Add NodeSource yum repository
The current LTS version of Node.js is version 10.x. If you want to install version 8 just change setup_10.x with setup_8.x in the command below.

Run the following curl command to add the NodeSource yum repository to your system:

Code: [Select]
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -

2. Install Node.js and npm
Once the NodeSource repository is enabled, install Node.js and npm by typing:

Code: [Select]
sudo yum install nodejs
When prompted to import the repository GPG key, type y, and press Enter.

3. Verify the Node.js and npm Installation
To check that the installation was successful, run the following commands which will print the Node.js and npm versions.

Print Node.js version:

Code: [Select]
node --version
 shuld be somthing like
Code: [Select]
v10.13.0
Print npm version:

Code: [Select]
npm --version
6.4.1

How to install Node.js and npm using NVM
NVM (Node Version Manager) is a bash script used to manage multiple active Node.js versions. NVM allows us to install and uninstall any specific Node.js version which means we can have any number of Node.js versions we want to use or test.
To install Node.js and npm using NVM on your CentOS system, follow these steps:

1. Install NVM (Node Version Manager)
To download the nvm install script run the following command:

Code: [Select]
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

The script will clone the nvm repository from Github to ~/.nvm and add the script Path to your Bash or ZSH profile.
=> Close and reopen your terminal to start using nvm or run the following to use it now:

Code: [Select]
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

As the output above shows, you should either close and reopen your terminal or run the commands to add the path to nvm script to your current session.

To verify that nvm was properly installed type:

Code: [Select]
nvm --version
Code: [Select]
0.33.11
2. Install Node.js using NVM
Now that the nvm tool is installed we can install the latest available version of Node.js, by typing:
Code: [Select]
nvm install nodesome responce
Code: [Select]
Downloading and installing node v11.0.0...
Downloading https://nodejs.org/dist/v11.0.0/node-v11.0.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v11.0.0 (npm v6.4.1)
Creating default alias: default -> node (-> v11.0.0)

Verify the Node.js version, by typing:
Code: [Select]
node --version
v10.1.0

3. Install multiple Node.js versions using NVM
Let’s install two more versions, the latest LTS version and version 8.12.0
Code: [Select]
nvm install --lts
nvm install 8.12.0

For each wersion you wont to install just type nvm install 1.1.1

Once LTS version and 8.12.0 are installed to list all installed Node.js instances type:
Code: [Select]
nvm ls
Code: [Select]
->      v8.12.0                         # ACTIVE VERSION
       v10.13.0
        v11.0.0
default -> node (-> v11.0.0)           # DEFAULT VERSION
node -> stable (-> v11.0.0) (default)
stable -> 11.0 (-> v11.0.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.13.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.14.4 (-> N/A)
lts/carbon -> v8.12.0
lts/dubnium -> v10.13.0

The output tell us that the entry with an arrow on the left (-> v8.12.0), is the version used in the current shell session and the default version is set to v11.0.0. Default version is the version that will be active when opening new shells.

To change the currently active version you can use the following command:
Code: [Select]
nvm use 10.13.0
The output will look like something this:
Code: [Select]
Now using node v10.13.0 (npm v6.4.1)
To change the default Node.js version type:
Code: [Select]
nvm alias default 10.13.0
Code: [Select]
default -> 10.13.0 (-> v10.13.0)
Install development tools
To be able to build native modules from npm we will need to install the development tools and libraries:
Code: [Select]
sudo yum install gcc-c++ make
Conclusion
I have shown you two different ways to install Node.js and npm on your CentOS 7 server. The method you choose depends on your requirements and preferences. While installing the packaged version from the NodeSource repository is easier, the nvm method gives you more flexibility for adding and removing different Node.js versions on a per-user basis.



Now all you have to doo is to install and run your script i will install Ghost on my production webserver. before that you must have this nvm installed cuz you have flexibility for all other node project on your website or webserver


1. Install a Process Manager
Next, install a process manager so you can control your Node.js applications. This process manager will allow you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks. Enter the following command:

Code: [Select]
npm install pm2 -g
2. Install Nginx and PHP-FPM
Your next step is to install Nginx and PHP-FPM along with some much needed dependencies:

Code: [Select]
yum install nginx php php-fpm php-cli php-mysql php-curl php-gd
Start Nginx and enable it to start on boot:
Code: [Select]
# systemctl start nginx
# systemctl enable nginx

3. Install Ghost on CentOS 7
First, create a directory for your Ghost website:

Code: [Select]
mkdir /var/www/html/your_site
Enter the newly created dir:

Code: [Select]
cd /var/www/html/your_site
Download the latest Ghost version:

Code: [Select]
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip Unzip the archive:

Code: [Select]
unzip ghost.zip
Delete the archive:

Code: [Select]
rm ghost.zip Now install the app with the npm installer:

Code: [Select]
npm install -production
4. Configure Ghost CMS
After the installation is completed, configure Ghost and update the URL in the config file with your domain. Copy the example config into a new file:

Code: [Select]
cp config.example.js config.js
Open the file:

Code: [Select]
nano config.js
Find the ‘Production’ section and update the URL with your domain. After modifying it should look like this:
Code: [Select]
// ### Production
    // When running Ghost in the wild, use the production environment.
    // Configure your URL and mail settings here
    production: {
        url: 'http://your_domain',
Save and close the file.

Now you can use the process manager that we installed earlier to configure Ghost to run forever. Execute the below command:

Code: [Select]
NODE_ENV=production pm2 start index.js --name "Ghost"
To start/stop/restart Ghost you can use:

Code: [Select]
pm2 start Ghost
Code: [Select]
pm2 stop Ghost
Code: [Select]
pm2 restart Ghost
5.  Configure Nginx to Act as a Reverse Proxy
Your next step is to configure Nginx to act as a reverse proxy for your Ghost application. Open a config file:

Code: [Select]
  nano /etc/nginx/conf.d/your_domain.conf Paste the following:

Code: [Select]
upstream ghost {
    server 127.0.0.1:2368;
}

server {
    listen      80;
    server_name your_domain;

    access_log  /var/log/nginx/ghost.access.log;
    error_log   /var/log/nginx/ghost.error.log;

    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

location / {
        proxy_pass  http://ghost;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;

        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto https;
    }

}
Don’t forget to replace your_domain with your actual domain. Save and close the file.

6. Test and Restart Nginx Server

Test the Nginx configuration and restart Nginx so the changes can take effect:

Code: [Select]
# nginx -t
Code: [Select]
# service nginx restart


Now its time to create some hi trafick to test :D

I will support this to developer of centos to add into their configuration and create this modern and magnificent CWP even more better :)
Any Additional test i will glad to help you!

Offline
*
you have there too much added related to nginx which can cause issues with cwp.

You don't need to install nginx since you can use the one from cwp and under Webservers Domain Conf in cwp.admin, simply define which port to use for your custom application and that is it...cwp would do all for you and you will not have issues with rebuild later if needed and with new configuration and updates.
VPS & Dedicated server provider with included FREE Managed support for CWP.
http://www.studio4host.com/

*** Don't allow that your server or website is down, choose hosting provider with included expert managed support for your CWP.

Offline
*
As i can see server working fine and even node is working fine! and everiting is delightful!



« Last Edit: March 26, 2019, 06:48:04 AM by neoart »

Offline
*
maybe it works but as said you could have and will have issues for sure as cwp make custom configuration for nginx when installing it, also cwp is using a custom repository for nginx so you would get the latest version of nginx and not an old version provided by the default repo.
AntiDDoS Protection (web + mail)
http://centos-webpanel.com/website-ddos-protection-proxy

Join our Development Team and get paid !
http://centos-webpanel.com/develope-modules-for-cwp


Services Monitoring & RBL Monitoring
http://centos-webpanel.com/services-monitor


Do you need Fast and FREE Support included for your CWP linux server?
http://centos-webpanel.com/noc-partner-list
Installation Instructions
http://centos-webpanel.com/installation-instructions
Get Fast Support Here
http://centos-webpanel.com/support-services

Offline
*
For some one who will use Nginx from Cetos


Hi all, first im using Pro Version so some settings on the end is good for me!

Node.js is a cross-platform JavaScript run-time environment that allows server-side execution of JavaScript code. Node.js is mainly used on the back-end, but it is also popular as a full-stack and front-end solution.

npm, short for Node Package Manager is the default package manager for Node.js and the world’s largest software repository for the publishing of open-source Node.js packages.

This tutorial walks you through the steps to install Node.js and npm on a CentOS 7 machine. We will show you two different ways of installing Node.js and npm.
In the first part of this tutorial we will install Node.js and npm using the yum package manager from the NodeSource repository. In the second part, we will teach you how to install Node.js and npm using the nvm script.

If you need Node.js only for deploying Node.js applications then the simplest option is to install the Node.js packages using yum from the NodeSource repository.

Prerequisites
Before continuing with this tutorial, make sure you are logged in as a user with sudo privileges. ifi is on server you must have Putty and you are probebly already log in!

Installing Node.js and npm on CentOS 7
NodeSource is a company dedicated to providing enterprise-grade Node support and they maintain a consistently-updated Node.js repository for Linux distributions.
To install Node.js and npm from the NodeSource repositories on your CentOS 7 system, follow these steps:

1. Add NodeSource yum repository
The current LTS version of Node.js is version 10.x. If you want to install version 8 just change setup_10.x with setup_8.x in the command below.

Run the following curl command to add the NodeSource yum repository to your system:

Code: [Select]
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -

2. Install Node.js and npm
Once the NodeSource repository is enabled, install Node.js and npm by typing:

Code: [Select]
sudo yum install nodejs
When prompted to import the repository GPG key, type y, and press Enter.

3. Verify the Node.js and npm Installation
To check that the installation was successful, run the following commands which will print the Node.js and npm versions.

Print Node.js version:

Code: [Select]
node --version
 shuld be somthing like
Code: [Select]
v10.13.0
Print npm version:

Code: [Select]
npm --version
6.4.1

How to install Node.js and npm using NVM
NVM (Node Version Manager) is a bash script used to manage multiple active Node.js versions. NVM allows us to install and uninstall any specific Node.js version which means we can have any number of Node.js versions we want to use or test.
To install Node.js and npm using NVM on your CentOS system, follow these steps:

1. Install NVM (Node Version Manager)
To download the nvm install script run the following command:

Code: [Select]
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

The script will clone the nvm repository from Github to ~/.nvm and add the script Path to your Bash or ZSH profile.
=> Close and reopen your terminal to start using nvm or run the following to use it now:

Code: [Select]
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

As the output above shows, you should either close and reopen your terminal or run the commands to add the path to nvm script to your current session.

To verify that nvm was properly installed type:

Code: [Select]
nvm --version
Code: [Select]
0.33.11
2. Install Node.js using NVM
Now that the nvm tool is installed we can install the latest available version of Node.js, by typing:
Code: [Select]
nvm install nodesome responce
Code: [Select]
Downloading and installing node v11.0.0...
Downloading https://nodejs.org/dist/v11.0.0/node-v11.0.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v11.0.0 (npm v6.4.1)
Creating default alias: default -> node (-> v11.0.0)

Verify the Node.js version, by typing:
Code: [Select]
node --version
v10.1.0

3. Install multiple Node.js versions using NVM
Let’s install two more versions, the latest LTS version and version 8.12.0
Code: [Select]
nvm install --lts
nvm install 8.12.0

For each wersion you wont to install just type nvm install 1.1.1

Once LTS version and 8.12.0 are installed to list all installed Node.js instances type:
Code: [Select]
nvm ls
Code: [Select]
->      v8.12.0                         # ACTIVE VERSION
       v10.13.0
        v11.0.0
default -> node (-> v11.0.0)           # DEFAULT VERSION
node -> stable (-> v11.0.0) (default)
stable -> 11.0 (-> v11.0.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.13.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.14.4 (-> N/A)
lts/carbon -> v8.12.0
lts/dubnium -> v10.13.0

The output tell us that the entry with an arrow on the left (-> v8.12.0), is the version used in the current shell session and the default version is set to v11.0.0. Default version is the version that will be active when opening new shells.

To change the currently active version you can use the following command:
Code: [Select]
nvm use 10.13.0
The output will look like something this:
Code: [Select]
Now using node v10.13.0 (npm v6.4.1)
To change the default Node.js version type:
Code: [Select]
nvm alias default 10.13.0
Code: [Select]
default -> 10.13.0 (-> v10.13.0)
Install development tools
To be able to build native modules from npm we will need to install the development tools and libraries:
Code: [Select]
sudo yum install gcc-c++ make
Conclusion
I have shown you two different ways to install Node.js and npm on your CentOS 7 server. The method you choose depends on your requirements and preferences. While installing the packaged version from the NodeSource repository is easier, the nvm method gives you more flexibility for adding and removing different Node.js versions on a per-user basis.



Now all you have to do is to install and run your script i will install Ghost on my production webserver. before that you must have this nvm installed cuz you have flexibility for all other node project on your website or webserver


1. Install a Process Manager
Next, install a process manager so you can control your Node.js applications. This process manager will allow you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks. Enter the following command:

Code: [Select]
npm install pm2 -g

2. Install Ghost on CentOS 7
First, create a directory for your Ghost website:

Code: [Select]
mkdir /var/www/html/your_site
Enter the newly created dir:

Code: [Select]
cd /var/www/html/your_site
Download the latest Ghost version:

Code: [Select]
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip Unzip the archive:

Code: [Select]
unzip ghost.zip
Delete the archive:

Code: [Select]
rm ghost.zip Now install the app with the npm installer:

Code: [Select]
npm install -production
3. Configure Ghost CMS
After the installation is completed, configure Ghost and update the URL in the config file with your domain. Copy the example config into a new file:

Code: [Select]
cp config.example.js config.js
Open the file:

Code: [Select]
nano config.js
Find the ‘Production’ section and update the URL with your domain. After modifying it should look like this:
Code: [Select]
// ### Production
    // When running Ghost in the wild, use the production environment.
    // Configure your URL and mail settings here
    production: {
        url: 'http://your_domain',
Save and close the file.

Now you can use the process manager that we installed earlier to configure Ghost to run forever. Execute the below command:

Code: [Select]
NODE_ENV=production pm2 start index.js --name "Ghost"
To start/stop/restart Ghost you can use:

Code: [Select]
pm2 start Ghost
Code: [Select]
pm2 stop Ghost
Code: [Select]
pm2 restart Ghost
4.  Configure Nginx to Act as a Reverse Proxy
Your next step is to configure Nginx to act as a reverse proxy for your Ghost application. Open a WebServers manage in your CWPAdmin:

Select Depends on your Configuration of webserver i prefer Nginx & Varnish & Apache, Save and Rebuild configuration.

When rebuild is finish, go to Manage WebServers Configuration select first user and then web site you wont to Configure

Press configure (blue BTN) you will se somthing like this picture :)




For this configuration select nginx -> proxy -> costum port
 
-leave Nginx Configuration default
-Chek Rebuild Configuration
- Enter costum your port
-enter your localhost 127.0.0.1 (if you get error in ghost that is configuration error and you must tell that is produstion value www.yourwebsite.com but here you leave localhost settings coz node.js work in localhost)


5. Test and Restart Nginx Server

Test the Nginx configuration and restart Nginx so the changes can take effect:

Code: [Select]
# nginx -t
Code: [Select]
# service nginx restart




I will support this to developer of centos to add into their configuration and create this modern and magnificent CWP even more better :)
Any Additional test i will glad to help you!

Offline
*
Re: How to install Node.js and npm on CentOS 7 on Centos Control Panel (Pro)
« Reply #5 on: October 05, 2019, 07:37:55 PM »
Hi. I have followed the tutorial step by step, but I always receive error 502.

Please include a capture of the result you receive in CWP Simple Terminal after the command:

Code: [Select]
npm install -production_______

Also another capture for the Step 3: Configure Ghost CMS


Thank you.

Offline
*
Re: How to install Node.js and npm on CentOS 7 on Centos Control Panel (Pro)
« Reply #6 on: December 05, 2019, 01:27:29 PM »
So just follow for installation of ghost
Code: [Select]
https://ghost.org/docs/install/local/
Hi. I have followed the tutorial step by step, but I always receive error 502.

Please include a capture of the result you receive in CWP Simple Terminal after the command:

Code: [Select]
npm install -production
then starting restareting etc you are going first by navigating to your dir =public_tml  or some folder where you setup your domain
Code: [Select]
npm install -productionthen npm install pm2 -g
then pm2 run ghost or what ever
_______
Quote
Also another capture for the Step 3: Configure Ghost CMS


Thank you.

and i think that you making the mestake with ports so part 4.  Configure Nginx to Act as a Reverse Proxy
when you go to your admin admin/index.php?module=WebServers_domain just enter the port number and save, and when you hit the url exam.ple you are not entering nothing more just url

or if you are difrent urls from on ghost example Producton is 4545 and dev port is 8282 and you setup on reverse proxy to be 4545 and you are runing dev so you have 502 Bad Gateway error

i have maybe 40 - 50 instalations on one vps and diffrent node cms shops or whatever. with no errors of course PM2 is i leader for diferent node versions .