LoginSignup
8
6

More than 1 year has passed since last update.

さくらインターネットのレンタルサーバーにnode18(LTS)をインストールする

Posted at

さくらインターネットにnode18をインストールする

経緯(TLDR)

  • API(php)とフロント(React.js)のシステムをさくらのサーバーにデプロイする要件があった。
  • composer installはサーバーで実行する。
  • 一方でreactのビルドはnodejsが必要なので、手元で実行しかできない。
  • サーバーでビルドできるようにすれば、1行でできるはず。
  • ということでさくらインターネットのレンタルサーバーにnode18(LTS)をインストールすることにした。

* ちなみにnode v16のLTSのサポートは2023年9月11日で終わるらしいので、v18のLTSバージョンをインストールすることにした。
* ほんとはcicdツール(jenkinsとか)でビルドして、sftpあたりでデプロイすればいいんですがそれの開発だったり、インフラ整備がだるい。取引相手的に保守費用請求できないということで苦肉の策です。

めんどくさい人向け

とりあえずコピペでできるようにした。
自己責任でお願いします。
いきなり本番環境では実行しないでね。
バージョン違いなどで実行できない場合もあるので。

クリックしたら展開
bashで実行してね
bash
## install python3
mkdir -p ~/work/python3
cd ~/work/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
tar zxf Python-3.8.12.tgz
cd ./Python-3.8.12
./configure --prefix=$HOME/local/python/
make && make install

## opensslをインストール
mkdir -p ~/work/openssl
cd ~/work/openssl
curl -sSf https://www.openssl.org/source/openssl-1.1.1o.tar.gz -O
tar zxf openssl-1.1.1o.tar.gz
cd openssl-1.1.1o
./config --prefix=$HOME/openssl --openssldir=$HOME/local/openssl
make && make install

## nodejsをインストール
mkdir -p ~/work/node
cd ~/work/node
export NODE_VERSION=v18.15.0
curl -sSf https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION.tar.gz -O
tar zxf node-$NODE_VERSION.tar.gz
cd node-$NODE_VERSION
./configure --shared-openssl --shared-openssl-includes=$HOME/openssl/include/ --shared-openssl-libpath=$HOME/openssl/lib/
export LD_LIBRARY_PATH=$HOME/openssl/lib
nohup make install DESTDIR=$HOME/local PREFIX= &
## めっちゃ時間かかるので、nohupしてます。ログアウトやネットが切れても実行し続けてくれます。
## ↓↓のコマンド(tail -f nohup.out)でログが見れます。が、見たくない人は実行しなくても良いです。
tail -f nohup.out

## パスを通す
echo "export PATH=$PATH:$HOME/local/bin
export LD_LIBRARY_PATH=$HOME/openssl/lib" >> ~/.bashrc

## 通したパスを反映
source ~/.bashrc

## yarnをインストール
npm install -g yarn

手順

  1. sshしてbashに切り替える
  2. python3をインストール
  3. opensslをインストール
  4. nodejsをインストール
  5. yarnをインストール

sshしてbashに切り替える

さくらのサーバーのデフォルトがcshらしいので、bashにしましょう。
cshはexportが動かんらしい。

## さくらサーバーはbashじゃないので、bashに切り替えましょう
## ssh sakura-serverあたりをした後に以下を実行
bash

python3をインストール

node16からpython3が必要になったらしい。

bash
mkdir -p ~/work/python3
cd ~/work/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
tar zxf Python-3.8.12.tgz
cd ./Python-3.8.12
./configure --prefix=$HOME/local/python/
make && make install

opensslをインストール

デフォルトでインストールされているopensslのバージョンが低すぎるらしい。
新しいバージョンをインストール。
最新ではないけど、他の人がこのバージョンでいけてたので、これが良さそう。
ここを見てくれたら解説されているらしい

bash
mkdir -p ~/work/openssl
cd ~/work/openssl
curl -sSf https://www.openssl.org/source/openssl-1.1.1o.tar.gz -O
tar zxf openssl-1.1.1o.tar.gz
cd openssl-1.1.1o
./config --prefix=$HOME/openssl --openssldir=$HOME/local/openssl
make && make install

nodejsをインストール

nodejsをインストール
ビルドにめっちゃ時間かかる。
ビルド中にネットが切れたり、ログアウトすると止まってしまう。
そこで、nohup使って阻止する。
ログアウトやネットが切れても実行し続けてくれます。
nohup中のログはnohup.outに出力される。tail -f nohup.outで見れます。ctrl+cで出れます。

bash
mkdir -p ~/work/node
cd ~/work/node
export NODE_VERSION=v18.15.0
curl -sSf https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION.tar.gz -O
tar zxf node-$NODE_VERSION.tar.gz
cd node-$NODE_VERSION
./configure --shared-openssl --shared-openssl-includes=$HOME/openssl/include/ --shared-openssl-libpath=$HOME/openssl/lib/
export LD_LIBRARY_PATH=$HOME/openssl/lib
nohup make install DESTDIR=$HOME/local PREFIX= &
## めっちゃ時間かかるので、nohupしてます。ログアウトやネットが切れても実行し続けてくれます。
## ↓↓のコマンド(tail -f nohup.out)でログが見れます。が、見たくない人は実行しなくても良いです。
tail -f nohup.out

pathを通す

echo "export PATH=$PATH:$HOME/local/bin
export LD_LIBRARY_PATH=$HOME/openssl/lib" >> ~/.bashrc
source ~/.bashrc

yarnをインストール

npm install -g yarn

インストールできたか確認

下記コマンドで確認できます。

python --version
openssl version
node -v
npm -v
yarn -v

参考

8
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6