追伸)注意点
・centosのバージョンを確認してmongodo公式のページを見るのが無難である。
・とりあえずFirewall,SELinux,localよりglobalにインストールして動作確認してからセキュリティは絞ったほうがいい。
・Macとかの情報ではなくCentOSの情報をきちんと複合ワードで見て参考にすること。またmongodbのバージョンは気にすること。バージョンによってメソッドが異なる(もちろん、npmやnodeのバージョンも気にすること)
———
npm initをすると…名前とかバージョンとかデスクリプションとか色々と聞かれて焦る。
—
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> –save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit
—
このユーティリティでは、package.jsonファイルの作成について説明します。
最も一般的な項目のみをカバーし、実用的なデフォルトを推測しようとします。
これらのフィールドに関する明確なドキュメントについては、「npm help json」を参照してください
そしてまさに彼らが何をするか。
後で `npm install –save`を使用してパッケージをインストールし、
これを依存関係としてpackage.jsonファイルに保存します。
終了するには、いつでも^ Cを押してください
—
nameというのはプロジェクト名などを指定するらしい。
何も考えずに押し切ると…
{
“name”: “gomiryo”,
“version”: “1.0.0”,
“main”: “index.js”,
“scripts”: {
“test”: “echo \”Error: no test specified\” && exit 1″
},
“author”: “”,
“license”: “ISC”,
“description”: “”
}
というpackage.jsonができあがる。これはローカルにインストールする時に使うらしい。
yesを押しまくるのが煩わしい時は「npm init –y」を実行すればいいらしい。-yでもいいらしい。デフォルトのpackage.jsonができあがるらしい。参考(https://www.webprofessional.jp/beginners-guide-node-package-manager/)
npm install mongodb esLint
を実行したら…
npm ERR! Linux 3.10.0-862.14.4.el7.x86_64
npm ERR! argv “/usr/bin/node” “/usr/bin/npm” “install” “mongodb” “esLint”
npm ERR! node v6.17.1
npm ERR! npm v3.10.10
npm ERR! code E404
npm ERR! 404 Not found : esLint
npm ERR! 404
npm ERR! 404 ‘esLint’ is not in the npm registry.
npm ERR! 404 Your package name is not valid, because
npm ERR! 404 1. name can no longer contain capital letters
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! Please include the following file with any support request:
npm ERR! /home/gomiryo/npm-debug.log
パッケージが見つからない的なことを言われる。esLintがないならひとまずはずすか。
npm install mongodb
gomiryo@1.0.0 /home/gomiryo
mqw mongodb@3.5.9
tqw bl@2.2.0
x mqw readable-stream@2.3.7
x tqq core-util-is@1.0.2
x tqq inherits@2.0.4
x tqq isarray@1.0.0
x tqq process-nextick-args@2.0.1
x tqq safe-buffer@5.1.2
x tqw string_decoder@1.1.1
x x mqq safe-buffer@5.1.2
x mqq util-deprecate@1.0.2
tqq bson@1.1.4
tqq denque@1.4.1
tqw require_optional@1.0.1
x tqq resolve-from@2.0.0
x mqq semver@5.7.1
tqq safe-buffer@5.2.1
mqw saslprep@1.0.3
mqw sparse-bitfield@3.0.3
mqq memory-pager@1.5.0
npm WARN gomiryo@1.0.0 No description
npm WARN gomiryo@1.0.0 No repository field.
バツの文字があるけどこれはディレクトリ階層を表現したもので問題ない。warnが2つでた理由は??
ローカルのモジュールになにか入りましたが…centosに入れる方法ではない気がしたのでmongoコマンドも使えませんし…rootで実行しよう。
公式にcenos7系で入れる方法があるのでそれにならう方がよさそう。
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
root権限になり…最新版は4.2っぽいので…
vi /etc/yum.repos.d/mongodb-org-4.2.repo
して、
yum install -y mongodb-org
を実行…でインストール完了。からの、ライブラリとログをいれるフォルダを作り…
mkdir -p /var/lib/mongo
mkdir -p /var/log/mongodb
紋甲烏賊がアクセスできるように。
chown -R mongod:mongod
※このあとSELinuxの設定がいるらしいですが…とりあえず保留。
と思ったけどmongoで起動しないので…とりあえずさいごまでやる。
yum install checkpolicy #よくわからないけどcheckpolicyつーのをインスコ
…で色々とやろうとしたけど…エラーでたのでselinuxをdisavledにしていたので、ひとまず設定をパス。
systemctl status mongod
● mongod.service – MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://docs.mongodb.org/manual
※状況を確認
systemctl enable mongod
sudo systemctl restart mongod
sudo systemctl stop mongod
…このへんのコマンドで起動や終了を確認した。
mongo
で起動して
http://ichi-bit.hateblo.jp/entry/2017/11/02/#2-nodejs%E3%81%A7mongodb%E3%81%AEdriver%E3%82%92%E4%BD%BF%E3%81%86
こちらのとおりに…
> use app1
switched to db app1
> db.sample.insert({no:1,name:”ichi-bit”,age:38})
WriteResult({ “nInserted” : 1 })
> db.sample.find()
{ “_id” : ObjectId(“5f1451d63b607b7c810b8579”), “no” : 1, “name” : “ichi-bit”, “age” : 38 }
とりあえず動いているっぽい。
node app.js
systemctl status firewalld firewalld.service
したらfirewall動いてて3000port閉じてたので…
systemctl stop firewalld firewalld.service
でアクセスできた。-success-
常時起動したいので…foreverというのをいれる。
npm install forever # これだとダメだったので、
npm install -g forever “したらwarningいっぱいでたけど入った。
forever start app.js # でstart
forever stop app.js # でstop
ができるらしいです。以上。
コメント