バックエンド(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
git clone
リポジトリの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
npm install --production
–production
モードでnpm install
を実行。
(package.json
のdependencies
をインストール、devDependencies
はインストールしない)
node_module
というディレクトリが作成され、各種パッケージがここにインストールされる。
.envファイルを作成
vi .env
.env
というファイルを新規作成。
開発環境の.env
の中身を手動でコピーする。
.env
は環境変数を設定するファイル。
パスワードなどの情報が書かれているので、GitHubにはアップロードせず、手動で管理する。
バックエンドを起動(node)
cd ~/Projects/xxx/backend/ node ./bin/www
バックエンドのサービスを起動する。
サービスを起動しても画面には何も表示されないが、
ブラウザでフロントエンドを表示して、バックエンドとの通信が発生すれば画面にログが表示される。
動作確認が取れたら
Ctrl + C
で強制終了。
バックエンドを起動(forever)
forever start ./bin/www
foreverのプロセスを確認
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
git pull
2回目以降の同期は、git pull
コマンドを実行。