投稿日: | 最終更新日:
NVMを使用してNode.jsをインストールする
クローラー、エージェントに利用するNode.jsの開発環境を構築します。
Node.jsとは?
サーバサイドJavaScriptと呼ばれています。量の処理に対応するために、Socket.ioやノンブロッキングI/Oというモデルを採用し、MicrosoftやYahoo!などITの大手企業がNode.jsを推薦しています。
ノンブロッキングI/O
データベースから大量の情報を取得してWebページ上に表示をすると、データベースへアクセスしている時間に待ち時間(ブロック)が発生するため、ページの表示が遅くなります。
ノンブロッキングI/Oでは非同期処理をおこなうことで、データベースへのアクセスとWebページの表示を別々におこなってくれて、ストレスなくページの表示ができます。
NVMとは?
nvm とは「Node.js version manager」の略です。nvmを使用することで、複数のバージョンのNode.jsを簡単に管理することができます。そのため、要求に応じ、自分の環境にインストールされた最新のNode.js以外にも以前のバージョンのNode.js を使用できます。
準備
仮想環境とセットで使いますので、先にvagrantをインストールしておきましょう。
→Vagrantをインストールしてテスト環境を作る for Ubuntu
私の環境
ホストOS | Ubuntu 14.04.4 LTS 64bit |
---|---|
CPU | Core i5 2520M 2.50GHz |
NVMをインストール
①以下の手順でコマンドを入力し、前回インストールしたvagrant環境にログインします。
cd vagrant vagrant up vagrant ssh
※もし、「vagrant up」で「Authentication failure. Retrying…」メッセージが止まらない場合は、vagrantを1.8.6にアップグレードして下さい。
→Vagrant 1.8.6にアップグレードしてvagrant sshのバグを解決
②以下のページからインストールするNVMのバージョンを確認します。
→nvm
※今回は「v0.32.1」をインストールします。
③Git Hub ページからインストールスクリプトを取得して実行します。以下のコマンドを入力して下さい。(バージョン番号部分は適宜Git Hub ページで確認してください)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
以下のメッセージが表示されれば完了です。
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10250 100 10250 0 0 31119 0 --:--:-- --:--:-- --:--:-- 31155 => Downloading nvm as script to '/home/vagrant/.nvm' => Appending source string to /home/vagrant/.bashrc => Close and reopen your terminal to start using nvm or run the following to use it now: export NVM_DIR="/home/vagrant/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
④スクリプトを実行することで、「~/.bash_profile」、「 ~/.zshrc」、「 ~/.profile」のいずれかに修正がされるので、インストールが完了したらターミナルを開きなおしてください。
exit
Node.jpをインストール
①再度、vagrant環境にログインします。
cd vagrant vagrant up vagrant ssh
②「Node.jp v0.12.4」をインストールします。
nvm install v0.12.4 nvm alias default v0.12.4
③以下のコマンドでインストールしたNode.jpのバージョンを確認しましょう。
node -v
以下のように出れば正しくインストールされています。
v0.12.4
④試しにNode.jpを動かしてみます。以下のようなコマンドを実行して「8」が表示できるか確認しましょう。
node 3 + 5 8
⑤nvmでNode.jpをインストールすると、sudoコマンドを使うときにnpmやnodeコマンドを利用できません。sudoコマンド実行時のパスと普段のユーザのパスを同じにします。以下のコマンドを実行してエディタを起動します。
sudo visudo
⑥viエディターが起動します。「i」を押して入力モードに切り替えて以下のように編集します。
(env_resetを無効にする)
Defaults env_reset
↓
Defaults !env_reset
(HOMEを追加にする)
#Defaults env_keep += "HOME"
↓
Defaults env_keep += "HOME"
(Pathを書き換えない)
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
↓
#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
⑦「ESC」キーをクリックしてコマンドモードに、「:wp」を押して保存終了します。ログアウトして再ログインすると反映されます。
gitをインストール
様々なオープンソースをローカルに取得するため、gitもインストールしておきます。
①vagrant環境にssh接続した状態で、以下のコマンドを入力しgitをインストールしましょう。
sudo yum install git
②「Is this ok [y/d/N]:」と表示されますので、「y」を入力してEnterしましょう。
仮想マシーンの中のWebサーバを利用可能にする
ホストPCから、ゲストPC(vagrantのCentOS)のサーバにアクセスできません。アクセスできるように、設定を変更します。
①vagrantfileに以下の記述を加えます。「end」より上に記述して下さい。
config.vm.network "forwarded_port" , guest: 80, host: 8080 config.vm.network "private_network" , ip: "192.168.33.10"
②設定を変更したら、vagrantをリロードします。
vagrant reload
一行目:仮想マシーンのWebサーバのポート「80」が、ホストOSのポート「8080」に割り当てられます。
二行目:仮想マシーンのIPアドレスを、「192.168.33.10」に割り当てます。
仮想マシーンのフォルダへアクセスするには?
ホストOS側は、Vagrantの仮想マシーンを作成したディレクトリ(「Vagrantfile」が設置されているフォルダ)が共有フォルダになります。
ゲストOS側については、「/vagrant」が共有フォルダとしてマウントされます。
※任意のフォルダを指定することもできます。
ホストPCと仮想PC(ゲストPC)でディレクトリを共有する
ホストPCとゲストPC(vagrantのCentOS)でディレクトリを共有します。
①ホストPC側に共有するためのディレクトリ「src」を用意します。
- home/
- user/
- vagrant/
- src/
②vagrantfileに以下の記述を加えます。
Vagrant.configure("2") do |config| 〜省略〜 config.vm.synced_folder "src/", "/home/vagrant/git_cloner" 〜省略〜 end
・ゲストPC側は、「/home/vagrant/git_cloner」を共有ディレクトリとします。
CentOSで使いやすいエディタのインストール
ゲストOS(仮想マシン)上のファイルを編集することがありますが、通常はviを利用します。ただ、viは初心者には使いづらいため、以下のようにnanoエディタを仮想マシンにインストールします。
sudo yum install nano
- Python 113
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- PyCharm 7
- jQuery 7
- 機械学習 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- Google Colaboratory 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1