バックエンド(Node.js)をCentOSにデプロイする方法

GitHubのすべてのファイルをクローンする。

.envファイルは手動で作成する。

phpMyAdminへログイン

phpMyAdminへログインする。

phpMyAdminが未導入の場合は、
phpMyAdminをインストールする方法を参考にインストールを行う。

エクスポート

phpMyAdminでバックアップ対象のデータベースを選択、
エクスポートタブをクリック。

エクスポート方法: 詳細 - 可能なオプションをすべて表示

生成オプション > 追加コマンド

CREATE DATABASE / USE コマンドを追加する: チェックする
DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する: チェックする

それ以外の項目はデフォルトのままにしておく。

実行ボタンをクリック。

xxx.sqlのようなファイルがダウンロードされる。

mysql -u root -p < xxx.sql

rootユーザーでmysqlへログイン、
xxx.sql内のSQLコマンド群をファイル実行。

mysql -u root -p
MariaDB [(none)]> CREATE USER uuu@localhost IDENTIFIED BY 'ppp';
MariaDB [(none)]> GRANT ALL ON xxx.* TO uuu@localhost;

データベースアクセス用のユーザーを作成。

xxxというデータベースに対してALLの権限を設定。

データベース名、ユーザー名、パスワードなどは、
.envで環境変数として定義したものに合わせる。

su user1

anyenvとnodenvでnode.js環境を作っている。
anyenvとnodenvはユーザー単位での設定。
node.jsのプロジェクト管理用のユーザーに切り替える。

mkdir -p ~/Projects/xxx/backend

リポジトリのURLを取得

ブラウザでGitHubへログイン。

プロジェクトのリポジトリを選択し、CodeボタンからリポジトリのURLを取得する。

git clone

cd ~/Projects/xxx/backend
git clone https://github.com/xxx/yyy.git .

プロジェクト用のディレクトリへ移動。

リポジトリのURLを指定してgit cloneを実行。
末尾の.により、カレントディレクトリにファイルがコピーされる。

実行結果
Cloning into '.'...
Username for 'https://github.com': xxx
Password for 'https://xxx@github.com':
remote: Enumerating objects: 2956, done.
remote: Counting objects: 100% (2956/2956), done.
remote: Compressing objects: 100% (2229/2229), done.
remote: Total 2956 (delta 595), reused 2946 (delta 585), pack-reused 0
Receiving objects: 100% (2956/2956), 2.44 MiB | 2.51 MiB/s, done.
Resolving deltas: 100% (595/595), done.

プライベートリポジトリの場合、
GitHubのユーザー名とパスワードの入力が必要。

npm install --production

–productionモードでnpm installを実行。
package.jsondependenciesをインストール、devDependenciesはインストールしない)

node_moduleというディレクトリが作成され、各種パッケージがここにインストールされる。

vi .env

.envというファイルを新規作成。

開発環境の.envの中身を手動でコピーする。

.envは環境変数を設定するファイル。
パスワードなどの情報が書かれているので、GitHubにはアップロードせず、手動で管理する。

cd ~/Projects/xxx/backend/
node ./bin/www

バックエンドのサービスを起動する。

サービスを起動しても画面には何も表示されないが、
ブラウザでフロントエンドを表示して、バックエンドとの通信が発生すれば画面にログが表示される。

動作確認が取れたら
Ctrl + Cで強制終了。

forever start ./bin/www
forever list
実行結果
info:    Forever processes running
data:        uid  command                                                 script  forever pid  id logfile                 uptime
data:    [0] 4P_m /home/user1/.anyenv/envs/nodenv/versions/16.5.0/bin/node bin/www 1958    1965    /root/.forever/4P_m.log 0:0:2:4.6299999999999955

bin/wwwというのが稼働していればOK。

git pull

2回目以降の同期は、git pullコマンドを実行。

  • 最終更新: 2021/07/22 22:18