[SUDY-Next Step]第3章開発環境の構築とWebサーバの実践要件
7814 ワード
第3章を開始するには、リモートサーバが必要です.
NaverCloudで1年間無料サーバーを申請できるそうですが、下記の記事を参考にリモートサーバーを申請します.
https://essencedrain.tistory.com/2
リモートサーバにもエントリーし、本格的に実習を開始.
ローカル開発環境にインストールされているHTTP Webサーバを物理的に分離されたリモート・サーバに配備し、正常に動作しているかどうかをテストします.
AWS EC 2を使用して実習を行う場合は、この手順をスキップできますが、NAVERクラウドのリモートサーバとして実習を行うため、他の操作で個人アカウントを追加する必要があります.
アカウントをadduser[ユーザー名]形式で追加します.
sudo adduser newuser
口座名、パスワードが設定されています.
新しいアカウントに個人情報を入力することができます.入力したくない場合は、Enterキーを押すことができます.
sudo権限を使用するには、①勘定科目をsudoグループに追加するか、②/etc/sudoersディレクトリのファイルに勘定科目を追加する必要があります.
本には②番の使い方が提示されています.そこで、②番の方法を行います.
sudoersファイルはrootアカウントに変更する必要があるため、rootアカウントに変換するとsudoersファイルが開きます.
vi/etc/sudoers
「#ユーザー特権仕様の説明」プロジェクトに新しいアカウントを追加します.
次のコマンドを使用して、新しいアカウントにsudo権限があるかどうかを確認します.
sudo date
現在時刻の表示を確認!
Ubuntuが韓国語Localeを設定する方法は3つあります. locale-genの使用
: sudo locale-gen ko_KR.EUC-KR ko_KR.UTF-8 dpkg-reconfigure
: sudo dpkg-reconfigure locales /etcの下にあるローカライズ設定ファイル を変更
locale-genでLocleを設定しました.
異なるアカウントのコードを使用したい場合は、対応する順序で行います.
まず、各勘定科目ディレクトリにあります.bash profileに次の設定を追加します.
初めて近づいた時.bash profileは存在しないかもしれませんvi.bash profileコマンドを使用してファイルを作成したら、次の設定を追加します.
LANG="ko_KR.UTF-8"
LANGUAGE="ko_KR:ko:en_US:en"
完了後のソースbash profileコマンドを実行して、設定した内容をシステムに反映します.
envコマンドで反映されているかどうかを確認できます.
JDK GitHubに接続し、「.tar.gz」拡張子を持つJAVAソースファイルへのリンクをコピーします.
(リンクアドレス:https://github.com/frekele/oracle-java/releases/download/8u212-b10/jdk-8u212-linux-x64.tar.gz)
Terminalでは、次のコマンドを使用してJDKをダウンロードします.
wget--no check-ceptitute--no-cookies--ヘッダ「Cookie:oraclelicense=accept-securebackup-cookie」[URLをコピー]
lsコマンドjdk-8 u 212-linux-x 64を使用します.tar.gzファイルがダウンロードされたことを確認します.
以下のコマンドでダウンロードしたファイルを解凍するだけで、インストールが完了します.
tar-xvf[ファイル名]
解凍したJDKファイルを/usr/lib/サブアイテムに移動します.
勘定科目ディレクトリの.bash profileファイルに次の文を追加し、JAVA HOME/binディレクトリをPATHに設定します.
export JAVA HOME=/usr/lib/[解凍ファイル名]
export PATH=$PATH:$JAVA_HOME/bin
完了後のソースbash profileコマンドを実行して、設定した内容をシステムに反映します.
java-versionコマンドでインストールの有無を確認できます.
Mavenサイトに接続し、「.tar.gz」拡張子を持つmavenファイルのリンクをコピーします.
(リンクアドレス:https://dlcdn.apache.org/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz)
Terminalで、次のコマンドを使用してMavenファイルをダウンロードします.
wget[URLをコピー]
lsコマンドapache-maven-3.8.3-binを使用します.tar.gzファイルがダウンロードされたことを確認します.
以下のコマンドでダウンロードしたファイルを解凍するだけで、インストールが完了します.
tar-xvf[ファイル名]
解凍されたファイルを/usr/lib/サブアイテムに移動してmavenファイルを管理します.
勘定科目ディレクトリの.bash profileファイルに次の文を追加し、maven HOME/binディレクトリをPATHに設定します.
export JAVA HOME=/usr/lib/[解凍ファイル名]
export PATH=$PATH:$JAVA_HOME/bin
完了後のソースbash profileコマンドを実行して、設定した内容をシステムに反映します.
mvn-versionコマンドでインストールの有無を確認できます.
Gitインストールとリポジトリをクローンします.
次のコマンドを実行してGitをインストールします.
sudo apt install git
git--versionコマンドでインストールの有無を確認できます.
インストールが完了すると、Gitにプッシュする際に使用する名前とメールアドレスを設定します. git config --global user.name[名前] git config --global user.メール[メールアドレス]
次のコマンドを実行してGitから必要なアイテムをダウンロードします.
git clone[URLアドレス]
ダウンロードしたアイテムは/rootの下にあります.
プロジェクトを管理するために、次の手順を行いました.
①1.1に追加された勘定科目ディレクトリにワークスペースディレクトリを作成する
②ダウンロードしたアイテムをワークスペースの下に移動
③所有者を1.1から追加した勘定科目に変更する
:chown[ユーザ名]:[ユーザグループ名]-R[ファイル名]
Gitからダウンロードしたプロジェクトディレクトリに移動し、mvn clean packageコマンドを実行してプロジェクトを構築します.
(ビルド完了後、BUILD SUCESを出力します.)
構築が完了したら、以下のコマンドを実行してJAVAをコンパイルします.
PORTは1024より大きい数字の中で自分が望む数字として指定される.
JAva-cp target/classe:target/dependent/*[パッケージ名.主クラス名][PORT]&
例)java-cpターゲット/クラス:ターゲット/依存/*webserver.WebServer 8080 &
curl http://127.0.0.1:[PORT]を実行して、Hello Worldメッセージが成功したことを確認します.
ファイアウォールは外部からアクセスできない可能性があります.
次のブログのufwコマンドを使用してファイアウォールを解除します.
http://webdir.tistory.com/206
NAVERクラウドのリモートサーバを使用している場合、ACGはデフォルトのファイアウォール情報を設定しているので、Customを必要としない場合、このプロセスはSkipできます.
(注意!!外部からの接続が必要なので、サーバの公認IPが必要です.)
後で使うかもしれないので、ファイアウォールに関する簡単な内容しか記録していません.
UFWはデフォルトで無効なので、次のコマンドを使用して有効にします.
sudo ufw enable
sudo ufw status verboseコマンドでufwステータスを確認できます.
UFWの基本戦略は以下の通り. deny:すべての受信パケットを拒否 allow:外に出たパケットに対して、すべての許可 ファイアウォールの推奨ポリシーは次のとおりです. sudo ufw enable sudo ufw allow IPアドレスから任意のポート22 proto tcp へ sudo ufw allow 23/udp sudo ufw allow 80/tcp sudo ufw allow 3306/tcp sudo ufw status 追加した設定を削除する場合は、ufw delete[ルール番号]コマンドを使用します.
ブラウザにhttp://[認証IP]:[PORT]]と入力し、HelloWorldを確認します.
4.2からダウンロードしたプロジェクトソースを変更し、GitHubリポジトリにプッシュします.
ハローワールドはRequestHandlerJavaにロードします.
HelloWorld文をHelloJava Worldに変更し、Commit/PushをGitに変更します.
ps-ef|grep「文字列」コマンドを使用して、4.3で実行されているWebサーバのプロセスID(PID)を検索します.
次のコマンドでクエリーを実行するプロセスを終了します.
kill -9 [PID]
6.1での操作によりGitリポジトリが変更されました.以下のコマンドを使用して4.2で受け取った項目を更新してください.
git pull origin master
プロジェクトが最新のステータスに更新された場合、4.3プロセスを実行して6.1の変更を検証します.
NaverCloudで1年間無料サーバーを申請できるそうですが、下記の記事を参考にリモートサーバーを申請します.
https://essencedrain.tistory.com/2
リモートサーバにもエントリーし、本格的に実習を開始.
n/a.ターゲット
ローカル開発環境にインストールされているHTTP Webサーバを物理的に分離されたリモート・サーバに配備し、正常に動作しているかどうかをテストします.
1.アカウントの追加とsudo権限の割り当て
AWS EC 2を使用して実習を行う場合は、この手順をスキップできますが、NAVERクラウドのリモートサーバとして実習を行うため、他の操作で個人アカウントを追加する必要があります.
1.1. 個人アカウントの追加
アカウントをadduser[ユーザー名]形式で追加します.
sudo adduser newuser
口座名、パスワードが設定されています.
新しいアカウントに個人情報を入力することができます.入力したくない場合は、Enterキーを押すことができます.
1.2. 追加したアカウントに権限を追加し、sudo権限を実行できます。
sudo権限を使用するには、①勘定科目をsudoグループに追加するか、②/etc/sudoersディレクトリのファイルに勘定科目を追加する必要があります.
本には②番の使い方が提示されています.そこで、②番の方法を行います.
sudoersファイルはrootアカウントに変更する必要があるため、rootアカウントに変換するとsudoersファイルが開きます.
vi/etc/sudoers
「#ユーザー特権仕様の説明」プロジェクトに新しいアカウントを追加します.
次のコマンドを使用して、新しいアカウントにsudo権限があるかどうかを確認します.
sudo date
現在時刻の表示を確認!
2.各口座のUTF-8コードを設定し、ハングル問題を解決する
2.1. システム勘定科目全体にエンコーディングを設定する
Ubuntuが韓国語Localeを設定する方法は3つあります.
: sudo locale-gen ko_KR.EUC-KR ko_KR.UTF-8
: sudo dpkg-reconfigure locales
locale-genでLocleを設定しました.
2.2. 各勘定科目のエンコーディングの設定
異なるアカウントのコードを使用したい場合は、対応する順序で行います.
まず、各勘定科目ディレクトリにあります.bash profileに次の設定を追加します.
初めて近づいた時.bash profileは存在しないかもしれませんvi.bash profileコマンドを使用してファイルを作成したら、次の設定を追加します.
LANG="ko_KR.UTF-8"
LANGUAGE="ko_KR:ko:en_US:en"
完了後のソースbash profileコマンドを実行して、設定した内容をシステムに反映します.
envコマンドで反映されているかどうかを確認できます.
3.JDK、Mavenのインストール
3.1. ダウンロードJDK
JDK GitHubに接続し、「.tar.gz」拡張子を持つJAVAソースファイルへのリンクをコピーします.
(リンクアドレス:https://github.com/frekele/oracle-java/releases/download/8u212-b10/jdk-8u212-linux-x64.tar.gz)
Terminalでは、次のコマンドを使用してJDKをダウンロードします.
wget--no check-ceptitute--no-cookies--ヘッダ「Cookie:oraclelicense=accept-securebackup-cookie」[URLをコピー]
lsコマンドjdk-8 u 212-linux-x 64を使用します.tar.gzファイルがダウンロードされたことを確認します.
以下のコマンドでダウンロードしたファイルを解凍するだけで、インストールが完了します.
tar-xvf[ファイル名]
解凍したJDKファイルを/usr/lib/サブアイテムに移動します.
3.2. JDK環境変数の設定
勘定科目ディレクトリの.bash profileファイルに次の文を追加し、JAVA HOME/binディレクトリをPATHに設定します.
export JAVA HOME=/usr/lib/[解凍ファイル名]
export PATH=$PATH:$JAVA_HOME/bin
完了後のソースbash profileコマンドを実行して、設定した内容をシステムに反映します.
java-versionコマンドでインストールの有無を確認できます.
3.3. ダウンロードmaven
Mavenサイトに接続し、「.tar.gz」拡張子を持つmavenファイルのリンクをコピーします.
(リンクアドレス:https://dlcdn.apache.org/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz)
Terminalで、次のコマンドを使用してMavenファイルをダウンロードします.
wget[URLをコピー]
lsコマンドapache-maven-3.8.3-binを使用します.tar.gzファイルがダウンロードされたことを確認します.
以下のコマンドでダウンロードしたファイルを解凍するだけで、インストールが完了します.
tar-xvf[ファイル名]
解凍されたファイルを/usr/lib/サブアイテムに移動してmavenファイルを管理します.
3.4. 製造環境変数の設定
勘定科目ディレクトリの.bash profileファイルに次の文を追加し、maven HOME/binディレクトリをPATHに設定します.
export JAVA HOME=/usr/lib/[解凍ファイル名]
export PATH=$PATH:$JAVA_HOME/bin
完了後のソースbash profileコマンドを実行して、設定した内容をシステムに反映します.
mvn-versionコマンドでインストールの有無を確認できます.
4.Gitのインストール、クローン作成、構築
Gitインストールとリポジトリをクローンします.
4.1. Gitのダウンロード
次のコマンドを実行してGitをインストールします.
sudo apt install git
git--versionコマンドでインストールの有無を確認できます.
インストールが完了すると、Gitにプッシュする際に使用する名前とメールアドレスを設定します.
4.2. Gitプロジェクトのダウンロード
次のコマンドを実行してGitから必要なアイテムをダウンロードします.
git clone[URLアドレス]
ダウンロードしたアイテムは/rootの下にあります.
プロジェクトを管理するために、次の手順を行いました.
①1.1に追加された勘定科目ディレクトリにワークスペースディレクトリを作成する
②ダウンロードしたアイテムをワークスペースの下に移動
③所有者を1.1から追加した勘定科目に変更する
:chown[ユーザ名]:[ユーザグループ名]-R[ファイル名]
4.3. 製造バージョン
Gitからダウンロードしたプロジェクトディレクトリに移動し、mvn clean packageコマンドを実行してプロジェクトを構築します.
(ビルド完了後、BUILD SUCESを出力します.)
構築が完了したら、以下のコマンドを実行してJAVAをコンパイルします.
PORTは1024より大きい数字の中で自分が望む数字として指定される.
JAva-cp target/classe:target/dependent/*[パッケージ名.主クラス名][PORT]&
例)java-cpターゲット/クラス:ターゲット/依存/*webserver.WebServer 8080 &
curl http://127.0.0.1:[PORT]を実行して、Hello Worldメッセージが成功したことを確認します.
5.ファイアウォールの設定
ファイアウォールは外部からアクセスできない可能性があります.
次のブログのufwコマンドを使用してファイアウォールを解除します.
http://webdir.tistory.com/206
NAVERクラウドのリモートサーバを使用している場合、ACGはデフォルトのファイアウォール情報を設定しているので、Customを必要としない場合、このプロセスはSkipできます.
(注意!!外部からの接続が必要なので、サーバの公認IPが必要です.)
後で使うかもしれないので、ファイアウォールに関する簡単な内容しか記録していません.
5.1. UFWの有効化
UFWはデフォルトで無効なので、次のコマンドを使用して有効にします.
sudo ufw enable
sudo ufw status verboseコマンドでufwステータスを確認できます.
5.2. デフォルトのポリシー
UFWの基本戦略は以下の通り.
5.3. 外部接続が使用可能であることを確認
ブラウザにhttp://[認証IP]:[PORT]]と入力し、HelloWorldを確認します.
6.ソースコードの再配置
4.2からダウンロードしたプロジェクトソースを変更し、GitHubリポジトリにプッシュします.
6.1. スクリーン出力文の変更
ハローワールドはRequestHandlerJavaにロードします.
HelloWorld文をHelloJava Worldに変更し、Commit/PushをGitに変更します.
6.2. 実行中のWebサーバをシャットダウン
ps-ef|grep「文字列」コマンドを使用して、4.3で実行されているWebサーバのプロセスID(PID)を検索します.
次のコマンドでクエリーを実行するプロセスを終了します.
kill -9 [PID]
6.3. Git変更の更新
6.1での操作によりGitリポジトリが変更されました.以下のコマンドを使用して4.2で受け取った項目を更新してください.
git pull origin master
プロジェクトが最新のステータスに更新された場合、4.3プロセスを実行して6.1の変更を検証します.
Reference
この問題について([SUDY-Next Step]第3章開発環境の構築とWebサーバの実践要件), 我々は、より多くの情報をここで見つけました https://velog.io/@jeonye/NextStep3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol