PR

CORESERVER(コアサーバー) V2にnvmを使ってNode.jsをインストールした

CORESERVER(コアサーバー)ネタばかり続きますが、V2プランのサーバにNode.jsをインストールして、Laravel等でJavascriptやcssを生成するためのnpmコマンドが使えるようにしたメモです。ついでにComposerもインストールします。

とはいっても以下の手順通りで特の問題もなくあっさりと終了です。

  • Node.js を管理するためにnvmをインストール
  • nvmを使ってNode.jsをインストール

nvmをインストール

Node.jsを管理するツールとしてnvm – Node Version Managerをインストールします。bashがあれば動作するということで選びました。他にもnodebrewなどがありますので、それでも良いとは思います。

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
(略)
=> Downloading nvm from git to '/home/XXX/.nvm'
=> Cloning into '/home/XXX/.nvm'...
remote: Enumerating objects: 348, done.
remote: Counting objects: 100% (348/348), done.
remote: Compressing objects: 100% (297/297), done.
remote: Total 348 (delta 39), reused 161 (delta 26), pack-reused 0
Receiving objects: 100% (348/348), 208.92 KiB | 9.08 MiB/s, done.
Resolving deltas: 100% (39/39), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/XXX/.bashrc
=> Appending bash_completion source string to /home/XXX/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

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
$

見てのとおり、デフォルトで$HOME/.nvmにインストールされ、勝手に .bashrc に環境設定の追加と、オートコンプリート関係の設定に関する記述が追加されます。

追加しといたからターミナル閉じて再度開けと言っています。ちゃんとインストールされいますね。

$ nvm help

Node Version Manager (v0.38.0)

(以下略)

Node.jsをインストール

$ nvm install node
Downloading and installing node v16.10.0...
Downloading https://nodejs.org/dist/v16.10.0/node-v16.10.0-linux-x64.tar.gz...
############################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v16.10.0 (npm v7.24.0)
Creating default alias: default -> node (-> v16.10.0)
$ nvm ls
->     v16.10.0
default -> node (-> v16.10.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.10.0) (default)
stable -> 16.10 (-> v16.10.0) (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.6 (-> N/A)
lts/fermium -> v14.18.0 (-> N/A)
$ node -v
v16.10.0
$ npm -v
7.24.0
$ which npm
~/.nvm/versions/node/v16.10.0/bin/npm
$ nvm install-latest-npm 
Attempting to upgrade to the latest working version of npm...
* Installing latest `npm`; if this does not work on your node version, please report a bug!

changed 19 packages, and audited 259 packages in 2s

11 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
* npm upgraded to: v7.24.2
$ npm -v
7.24.2
$ 

特に切り替えて使つつもりもないのでバージョン指定せず、LTSの指定もなしで単純にインストールしました。あと、npmの最新化をnvmのコマンドで実行しています。内部的には以下のグローバルインストールと同じですが、前提のバージョンチェックとか色々してそうでした。

$ npm install -g npm 

ついでにComposerもインストール

Node.jsとは全く関係ありませんが、Laravelでは必須ですので、いっしょにインストールしてしまいます。これも特に困ることはありません。公式サイトのダウンロードページのコードをそのまま利用します。※コピへだと時期によってハッシュ値が異なると思いますので、公式を見に行ってください

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

カレントにcomposer.pharというファイルが作られるので、パスの通っているところに移動します。V2プランではデフォルトで、~/bin と ~/.local/bin にパスが通っていたのでなんとなく .local 側へ移動しました。

$ mkdir -p ~/.local/bin  ※なかったら作成して!!
$ mv composer.phar ~/.local/bin/composer

コメント

  1. 匿名 より:

    はじめまして。

    自分もV2プランを使用していますが、composerのインストーラーをダウンロードしようとするとタイムアウトしてしまいます。

    どうやらipv6で接続しようとしていることによるものだと思われるのですが、どのようにしてインストーラーをダウンロードすることができたのでしょうか?

    特別な接続方法などありましたら教えていただけませんでしょうか。。

  2. かず より:

    訪問ありがとうございます。
    記事中の以下が失敗するということでしょうか。
    php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”

    ちなみに curl でダウンロードできますかね?
    curl -o composer-setup.php https://getcomposer.org/installer

    違いはなんだろう。
    サーバにログインして php -v で実行されている php を確認してみてください。
    V2環境であれば /usr/local/php74/bin/php が実行されて、
    PHP 7.4.21 (cli) (built: Jul 28 2021 23:57:02) ( NTS ) のように”(CLI)”版と表示されるはずです。
    コンパネでバージョンを変えていたり特殊なことをしていますかね。

  3. 匿名 より:

    返信ありがとうございます。

    最初のこれがタイムアウトしてしまいます。
    $ php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”
    PHP Warning: copy(https://getcomposer.org/installer): failed to open stream: Connection timed out in Command line code on line 1

    これだとダウンロードできました!
    curl -o composer-setup.php https://getcomposer.org/installer

    phpのバージョンは、

    $ php -v
    PHP 7.4.21 (cli) (built: Jun 30 2021 12:20:58) ( NTS )

    となっており、coreserver をはじめた直後でとくにコンパネで調整などは行っていないです。

    なんとなく、
    $ wget https://getcomposer.org/installer

    とやってみると、ipv6で接続しているっぽかったので
    それでうまくいかないのかなと考えていました。

    なので、こんな感じだとダウンロードできます。
    $ wget –inet4-only https://getcomposer.org/installer

    なるほど、とくに設定などはないでのすね。。
    なにがちがうんだろう。

    とりあえずはダウンロードできたので、composer 単体に関しては
    どうにかできそうなものの、不安が残る結果となってしまいました。。

    いろいろ教えていただきありがとうございました!

  4. どらみくろ より:

    はじめまして。

    長年、コアサーバーを使用しております。

    教えていただければありがたいのですが、
    コアサーバーで Node.js を Web Server として動かすことは可能でしょうか?

    (ちなみに国内の共有レンタルサーバーでは、無理との記事が見つかりました)
    https://tomato-code.com/4128/

  5. hkzo より:

    できなくはないですが、それなりに知識が必要になります。(V1はわかりません)
    また非公式なので常駐プログラムがいつ停止されるかわかりません。
    方法は以下です。

    適当なポートで待ち受けるサーバを実行する。(例えば3000番)

    .htaccessのRewriteRuleでNodeにリクエストをリバースプロキシする。

    RewriteRule (.*) http://127.0.0.1:3000/$1 [P,L]

    こんな感じです。
    利用規約的には他に迷惑かけない程度であれば大丈夫だと思いますが、
    冒頭の通りサーバプログラムがいつ止められるかはわかりません。

  6. どらみくろ より:

    返信ありがとうございます。

    なるほど!いつ停止されてもおかしくないのであれば、やめたほうが良さそうですね。
    レンタルサーバーは高性能で安価だったので良かったのですが、あきらめて VPS にします。

タイトルとURLをコピーしました