前書き
MEANは、次のコンポーネントで構成されるソフトウェアアプリケーションスタックです。
-
MongoDB、サーバー側のJavaScript実行をサポートするNoSQLデータベース
-
ExpressJS、Node.jsWebアプリケーションフレームワーク
-
AngularJS、動的な単一ページアプリケーションの開発に適したWebアプリケーションフレームワーク
-
NodeJS、スケーラブルなネットワークアプリケーションの構築に適した非同期イベント駆動型フレームワーク
MEANという用語は、最初にValeri Karpovによって作られました。この用語は、各コンポーネントの最初の文字に由来します。 ValeriはMEANをthis blog postで定義し、MEANスタックを使用してJavaScriptアプリケーションを開発することを選択する動機をいくつか与えました。
Javascriptを使用してコーディングすることで、ソフトウェア自体と開発者の生産性の両方でパフォーマンスの向上を実現できます。 MongoDBを使用すると、ドキュメントをJSONのような形式で保存し、ExpressJSおよびNodeJSベースのサーバーでJSONクエリを記述し、JSONドキュメントをAngularJSフロントエンドにシームレスに渡すことができます。 データベースに保存されているオブジェクトが、クライアントのJavascriptが認識するオブジェクトと本質的に同一である場合、デバッグとデータベース管理が非常に簡単になります。 さらに良いことに、クライアント側で作業している人は、サーバー側のコードとデータベースクエリを簡単に理解できます。同じ構文とオブジェクトを使用することで、複数の言語のベストプラクティスを検討する必要がなくなり、コードベースを理解するための障壁が軽減されます。
現在、MEANスタックにはMEAN.ioとMEAN.JSの2つの並列実装があります。 それぞれにわずかに異なるインストール方法があります。 MEAN.JS is a purely community-driven implementation, while MEAN.io is sponsored by a company called Linnovate. どちらにも同じコンポーネントが含まれていますが、MEAN.ioは追加のコマンドラインツールmean
と商用サポートを提供します。
このガイドでは、MEAN.JSを使用してCentOS 7サーバーにMEANスタックをインストールします。 この方法を使用するには、まずMongoDBをインストールし、次にNodeJSをインストールしてから、GitHubからMEAN.JSファイルを複製します。
前提条件
開始するには、次のものが必要です。
-
4GB以上のRAMを備えたCentOS 7サーバー。
npm
など、MEANスタックの一部のコンポーネントは、大量のメモリを必要とします。 -
this CentOS 7 initial server setup guideを使用して構成されたsudo非rootユーザー。
[[step-1 -—- installing-dependencies]] ==ステップ1—依存関係のインストール
ソースからアプリケーションをコンパイルし、Gitリポジトリを複製し、Ruby gemをインストールするため、最初にいくつかの依存関係をインストールする必要があります。 libpng-devel
およびfontconfig
は、MEAN.JSモジュール(pngquant)の1つで必要です。
sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel
インストールするNode.jsモジュールの一部には、CSS拡張言語であるSassが必要です。 Rubyのパッケージマネージャーであるgem
を使用してインストールします。
sudo gem install sass
依存関係がインストールされたので、スタックの最初のコンポーネントであるMongoDBをインストールできます。
[[step-2 -—- installing-mongodb]] ==ステップ2—MongoDBのインストール
MongoDBは公式のCentOSリポジトリにないため、インストールするには公式のMongoDBリポジトリを有効にする必要があります。 これにより、最新のパッケージにアクセスできるようになり、そこからインストールできるようになります。
このチュートリアルでは、コミュニティエディションをインストールします。これは無料でダウンロードできます。 エンタープライズエディションもありますが、ライセンスが必要なので、ここでは扱いません。
公開時点では、MongoDB 3.2はダウンロードとインストールが可能な最新の安定版です。 リポジトリを有効にするには、CentOSリポジトリディレクトリである/etc/yum.repos.d
の下にリポジトリ用のファイルを作成します。 MongoDB 3.2の場合、そのファイルをmongodb.org-3.2.repo
と呼びます。
vi
またはお気に入りのテキストエディタを使用して、/etc/yum.repos.d/mongodb.org-3.2.repo
を作成して開きます。
sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo
パッケージマネージャーで公式のMongoDBリポジトリを指定して有効にするには、以下をコピーしてファイルに貼り付けます。 enabled=1
を設定するとリポジトリが有効になり、gpgcheck=1
を設定すると、リポジトリからインストールされたすべてのパッケージでGNU Privacy Guard(GPG)署名チェックがオンになります。
/etc/yum.repos.d/mongodb.org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
ファイルを保存して閉じてから、mongodb-org
パッケージをインストールして、MongoDBとその関連ツールをインストールします。 GPGキーをインポートするように求められたら、yesの場合はy
と入力します。
sudo yum install mongodb-org
インストールが完了したら、MongoDBデーモンを起動します。
sudo systemctl start mongod
これで、MongoDBデーモンであるmongod
が実行されているはずです。次のコマンドを使用して、それを確認できます。
sudo systemctl status mongod
実行中の場合、出力は次のようになります。
Outputmongod.service - SYSV: Mongo is a scalable, document-oriented database.
Loaded: loaded (/etc/rc.d/init.d/mongod)
Active: active (running) since Tue 2016-09-06 12:42:16 UTC; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 9374 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mongod.service
└─9385 /usr/bin/mongod -f /etc/mongod.conf
Sep 06 12:42:16 centos-mean-js systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Sep 06 12:42:16 centos-mean-js runuser[9381]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Sep 06 12:42:16 centos-mean-js mongod[9374]: Starting mongod: [ OK ]
Sep 06 12:42:16 centos-mean-js systemd[1]: Started SYSV: Mongo is a scalable, document-oriented database..
インストールする必要があるスタックの次の部分はNode.jsです。
[[step-3 -—- installing-node-js]] ==ステップ3—Node.jsのインストール
Node.jsをインストールする簡単な方法の1つは、NodeSourceNode.jsリポジトリのバイナリを使用することです。 まず、安定版ブランチのリポジトリを追加します。 ブラウザのURLにアクセスすると、以下のコマンドを使用して、スクリプトを実行する前にスクリプトの内容を読むことができます。
curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -
次に、Node.jsとNode.jsのパッケージマネージャーであるnpm
をインストールします。
sudo yum install -y nodejs
Node.jsとnpm
がインストールされていることを確認します。
npm version
出力は次のようになります。
Output{ npm: '2.15.9',
ares: '1.10.1-DEV',
http_parser: '2.7.0',
icu: '56.1',
modules: '46',
node: '4.5.0',
openssl: '1.0.2h',
uv: '1.9.1',
v8: '4.5.103.37',
zlib: '1.2.8' }
npm
がインストールされたので、MEANスタックの残りのコンポーネントをインストールできます。
[[step-4 -—- installing-bower-and-gulp]] ==ステップ4— Bower andGulpのインストール
この手順でインストールするコンポーネントは、フロントエンドアプリケーションの管理に使用されるパッケージマネージャーであるBowerと、一般的なタスクの自動化に使用されるGulpです。
BowerとGulpの両方をグローバルにインストールする必要があります。これは、gオプションをnpm
に渡すことで実現します。 両方のアプリケーションをグローバルにインストールすると、ローカルプロジェクトのディレクトリからだけでなく、システム全体で使用できるようになります。
Bowerの最初のインストール:
sudo npm install -g bower
次に、Gulpをインストールします。
sudo npm install -g gulp
これで、ようやくすべての前提条件パッケージがインストールされました。 アプリケーションの作成に使用される実際のMEAN.JSボイラープレートのインストールに進むことができます。
[[ステップ-5 ----平均ボイラープレートの取り付け]] ==ステップ5—平均ボイラープレートの取り付け
最初に、公式のMEAN.JS GitHubリポジトリを複製します。
git clone https://github.com/meanjs/mean.git meanjs
これにより、MEAN.JSボイラープレートがホームディレクトリのmeanjs
というディレクトリに複製されます。 プロジェクトが参照するすべてのパッケージをインストールするには、そのディレクトリ内にいる必要があるため、そこに移動します。
cd ~/meanjs
次に、必要なパッケージを非rootユーザーとしてインストールします。
npm install
インストールには数分かかります。 完了すると、MEANアプリケーションの開発に必要なものがすべて揃います。 最後のステップでは、スタックをテストして、動作することを確認します。
[[step-6 -—- running-your-sample-mean-application]] ==ステップ6—サンプルMEANアプリケーションの実行
サンプルアプリケーションを実行して、システムが正しく機能していることを確認しましょう。 1つの方法はnpm start
を使用することであり、もう1つの方法はgulp
を使用することです。 両方のコマンドを使用すると、開発モードでアプリケーションをテストできます。 ここでは、npm
を使用します。
npm start
[。注意]##
Note:これらのコマンドのいずれかの最初の実行は、次のような出力で失敗する可能性があります。
Error output[12:56:49] 'lint' errored after 702 ms
[12:56:49] Error in plugin 'run-sequence'
Message:
An error occured in task 'sass'.
このエラーが発生した場合、修正は簡単です。 これには、node_modules
ディレクトリの削除、キャッシュのクリア、およびパッケージの再インストールが含まれます。
rm -rf node_modules
npm cache clean
npm install
次に、前と同じようにnpm start
またはgulp
でサンプルアプリを再起動します。
これで、お気に入りのブラウザでhttp://your_server_ip:3000
にアクセスして、MEANアプリケーションにアクセスできます。 これにより、テキストCongrats! You’ve configured and run the sample application.を含むMEAN.JSロゴのあるページがレンダリングされます。これは、サーバー上に完全に機能するMEANスタックがあることを意味します。
結論
必要なコンポーネントとMEAN.JSボイラープレートができたので、独自のアプリの構築、テスト、デプロイを開始できます。 MEAN.JSの操作に関する具体的なヘルプについては、documentation on MEAN.JS websiteを確認してください。