王初甫がクラスを始めた-05週間の開発日記

11384 ワード

01.自分のプロジェクトをサーバーにアップロードする


  • 10)「Webサービスの実行」に必要な概念を紹介する
    作成したプロジェクトを配置します.導入は、誰もが私のサービスを利用できるようにするための作業です.インターネットサービスを発売!

  • Webサービスを実行するために、お客様の要求にいつでも応答できるサーバ上でプロジェクトを実行します.

  • いつでもお客様のリクエストに応えなければなりません.
    1)コンピュータは常にプログラムを開いて実行する必要があります.
    2)すべての人がアクセスできるパブリックIPアドレス(Public IP Address)を使用して、私のWebサービスにアクセスします.

  • サーバーがパソコンだったのを覚えていますか?外部接続を設定して、私のコンピュータをサーバとして使用することもできます.

  • EC 2ライセンスを購入し、クラウドサービスでサーバを簡単に管理できるようにサーバとして使用します.

  • [もう10歩歩く.🏃] IPアドレスとポート

  • 実は私たちが接続しているパソコンにはデジタルアドレス(IPアドレス)があります.私たちが知っているURLは、私たちが認識しやすいなどの理由で、IPアドレスをアルファベットに変更しました.このように変換されたシステムをDNSと呼ぶ.


  • IPアドレス(IPと略称)
    :各コンピュータには、コンピュータが通信できるように独自のアドレスがあると考えられます.正確には、ネットワーク上のすべてのデバイスが通信できるようにする特殊な番号です.サーバにはアドレスが1つしかありません.

  • ポート(port)
    :1つのIPに複数のポートがあります.1つのポートでプログラムを実行できます.
  • 02.AWSサーバーの購入


  • 11)EC 2サーバの購入

  • 12)EC 2サーバをシャットダウンする方法(1年後に自動支払を回避!)

  • 13)EC 2への接続

  • 14)簡単なLinuxコマンドの練習

  • Linuxはウィンドウではなく、「Shellコマンド」でオペレーティングシステムを操作します.(マウスキャラクタ)
    [最も一般的なコマンド]

  • チップ!Linuxカーネルで上矢印をクリックすると、以前に使用したコマンドが表示されます.
    ls: 내 위치의 모든 파일을 보여준다.
    
    pwd: 내 위치(폴더의 경로)를 알려준다.
    
    mkdir: 내 위치 아래에 폴더를 하나 만든다.
    
    cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
    
    cd .. : 나를 상위 폴더로 이동시킨다.
    
    cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
    
    rm -rf [지울 것]: 지우기
    
    sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
    sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
  • 03.サーバの設定


  • 15)file zillaを使って簡単なPythonファイルをアップロードする.

  • サーバにアップロードする簡単なファイルをダウンロードします.

  • [コード断片]-test.py
    [test.py](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/593aa12f-0c04-40dc-9573-40e1b641c2c1/test.py)
    例)test.py
    # 아주 간단하게, 이 정도만 적어볼까요?
    # 그리고 적당한 곳에 파일을 저장해봅니다.
    print('hello sparta!!')

  • ファイルブラウズを実行し、次のように設定します.


  • 情報を入力し、「OK」をクリックしてサーバー上のファイルを表示します.
    (Host:私のEC 2サーバのIP/User:ubuntuを入力)
    ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c91661f0-1274-4f35-b9c2-3a09879a0b09/Untitled.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c91661f0-1274-4f35-b9c2-3a09879a0b09/Untitled.png)

  • マウスでドラッグしてファイルをアップロード/ダウンロードすればいい!
    △では、簡単なPythonファイルを作成してアップロードしましょうか.
    ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/47a40685-1be7-421f-939f-0fdad19c7d81/Untitled.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/47a40685-1be7-421f-939f-0fdad19c7d81/Untitled.png)
  • 04.ショッピングサイトを1ページアップロードする


  • 25)Robo 3 Tで「マイコン上」→「サーバ上のMongoDB」に接続

  • 左上隅の赤枠のアイコンをクリックします.


  • Createをクリック!


  • 接続情報を設定します.


  • 上部の「Authentication」タブをクリックします.

  • 「Perform認証」チェック・ボックスをクリックします.

  • 作成したアカウントのIDとパスワードを入力し、「save」をクリックします.


  • 26)ホームショッピングモールの完全版をFilezillaにアップロードする.

  • その前に!MongoDB接続設定を変更してください!
    AWSのMongoDBにIDとパスワードを追加しましたが、私たちのpymongoにもIDとパスワードを入力する必要があります!これによりPymongoはDBに正しくアクセスできます.
    app.pyファイルを開くと、
    下のように真ん中の列に変えてください!

  • [コード断片]-pymongoアカウントに接続
    ```python
    client = MongoClient('mongodb://test:test@localhost', 27017)
    ```
    意味は次の通りです.
    client = MongoClient('mongodb://아이디:비밀번호@localhost', 27017)

  • ファイルジラルからEC 2インスタンスのhome/ubuntuフォルダをドラッグ&ドロップし、ジョブフォルダの2番目の場所とします.

  • 27)フルバージョンを実行します.

  • 実行を試みる
    # home 디렉토리로 이동
    cd ~
    
    # 해당 폴더로 이동해서 아래 코드를 실행합니다.
    python app.py

  • 間違いでしょう?パッケージがインストールされていないためです.
    # 설치하기
    pip install pymongo

  • 再実行
    python app.py

  • 28)接続!

  • ブラウザからの接続
    http://내AWS아이피:5000/
  • 05.ポート転送


  • 29)下端のスローガンを取り外して接続を試みます!

  • 30)ポート番号の削除-基本概念
    ポート転送を設定したので、ここではコンセプトだけを設定します!

  • 現在、Webサービスは5000ポートで実行されています.だから毎回後ろに:5000を貼ってください.後のポート番号を削除するにはどうすればいいですか?

  • 80ポートはhttpリクエストのデフォルトポートであるため、:80を追加することなく自動的に接続できます.

  • ポート番号を入力せずに自動的に接続するために、ポート転送(port forwarding)を使用して80ポートの要求を5000ポートに転送します.

  • Linux内蔵ポートを使用して転送します.下図のように.

  • 06.nohupの設定


  • 31)SSH接続を切断し、サーバーの運転を継続する

  • 現状
    Git bashまたはMacの端末(=つまりSSH接続を切断)を終了すると、プロセスは終了し、サーバは動作しません.しかし、リモート接続を切断しても、サーバは稼働し続けるべきでしょう.

  • リモート接続をオフにしても、サーバを稼働させ続けます.
    # 아래의 명령어로 실행하면 된다
    nohup python app.py &

  • サーバーを終了-強制終了する方法
    # 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
    ps -ef | grep 'app.py'
    
    # 아래 명령어로 특정 프로세스를 죽인다
    kill -9 [pid값]

  • 再オープン
    nohup python app.py &

  • 32)SSH接続をオフにして接続を試みます!

  • ブラウザからの接続
    http://내AWS아이피/
  • 07.ogラベル


  • 37)ogタグの作成

  • 私が一人で手帳に通ったog:image、og:title、og:descriptionのラベルを覚えていますか.
    私のプロジェクトがあなたのKakaoTalk、Facebook、Slameと共有されると、それもとてもきれいになります.
    早めに飾っておきましょう!


  • 画像ファイルを静的フォルダの下に置き、それぞれのプロジェクトHTMLの~の間に以下の内容を作成すると、logタグを個人プロジェクトに使用できます.
  • 「マイサイトタイトル」
  • と入力します.
  • 「表示されたページの概要」
  • と入力します.
  • 静的フォルダ内のogimageに適切な画像を作成または選択します.pngとして保存!
    △グーグルで800 x 400サイズの画像を検索!

  • [コードフラグメント]-ogラベルを追加
    <meta property="og:title" content="내 사이트의 제목" />
    <meta property="og:description" content="보고 있는 페이지의 내용 요약" />
    <meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />

  • 注意!イメージを変えたけど前のイメージが出てきた!
    フェイスブック/KakaoTalkなどにしばらく保存したのは初めてだったからです.
    初期化
  • フェイスブックogラベル:https://developers.facebook.com/tools/debug/2
  • 初期化
  • Kakao Talk ogラベル:https://developers.kakao.com/tool/clear/og2