LoginSignup
8
11

More than 5 years have passed since last update.

Webアプリを公開するなら

Last updated at Posted at 2018-08-29

バイト疲労困憊 力を振り絞って アドベントカレンダー n+1回目
大学内でWebアプリ公開方法の勉強会があったので、軽くまとめてみました。

1.ベアメタル 自宅サーバ

  • ISPからグローバルIPアドレスを取得
    IPSとは、サーバやネットワークの外部との通信を監視し、侵入の試みなど不正なアクセスを検知し攻撃を未然に防ぐシステム。

  • PCにOSとHTTPサーバをインストール
    Webサーバーの代表的な例としてApacheとNginxとIISが存在します。Webサーバソフトウェアの中でも、世界中で利用されているツールが「Apache」です。

  • ルータでネットワーク設定

  • Webアプリケーションを開発、PCに配置

2.レンタルサーバVPS: Virtual Private Server

  • プロバイダーのサーバを定額で利用するものが多い
    レンタルサーバとプロバイダーの違い

  • SSHでログインするものやFTPでファイルを受送信するものがある。

  • 無料版もある

  • 月数百円の有料サービスもある

  • PHPは動くが、CGIは動かないものが多い

  • PHPはHTMLにスクリプトを記述することでWebアプリケーションを構築する。JavaのJSPのようなもの。

<余談>

php -S localhost:8080

このコマンドを叩くだけで簡易サーバを起動することができたりする。

<こんなレンタルサーバーあった>
【2018年版】無料レンタルサーバーおすすめランキング
SAKURA internet

3.クラウド laaS,PaaS,SaaS

  • AWS (Amazon Web Service)

    • Amazon EC2:IaaS, SSHでログインしてサーバを管理
    • Elastic Beanstalk:PaaS, Warファイルをサーバにアップロードすれば、Webアプリケーションが起動
  • IBM Cloud(Bluemix)

  • Heroku
    PaaS, 多様な言語でwebアプリケーションを開発できる。
    herokuコマンドを用いて、開発したwebアプリケーションをサーバーに配置できる。
    制約550時間/月

 癒やしコード(本記事の内容とは関係ないです)

import requests
import sys

print(('うまるを知りたいですか?>はい'))
title = '干物妹!うまるちゃん'

url = 'https://ja.wikipedia.org/w/api.php'

api_params1 = {
    'action':'query',
    'titles':title,
    'prop':'categories',
    'format':'json'
}

api_params2 = {
    'action':'query',
    'titles':title,
    'prop':'revisions',
    'rvprop':'content',
    'format':'xmlfm'
}

categories = requests.get(url, params = api_params1).json()
page_id = categories['query']['pages']

if '-1' in page_id:
    print('該当するページがありません')
    sys.exit()
else:
    id = list(page_id.keys())
    if 'categories' in categories['query']['pages'][id[0]]:
        categories = categories['query']['pages'][id[0]]['categories']
        for umr in categories:
            print(umr['title'])
    else:
        print('保存できるページを検索できませんでした')
        sys.exit()

print('うまるの情報を保存しますか?>はい')
user_responce = 'yes'

if user_responce == 'yes':
    data = requests.get(url, params = api_params2)
    with open(title + '.html', 'w', encoding = 'utf_8') as f:
        f.write(data.text)

このスクリプトの説明したかったのですが、眠気が、、、、。
実行するときは自己責任でお願いします。
では(⌒ー⌒)/

参考文献

SSLとTLSの違いとは|SAKURA internet
IPS|IT用語時点e-Words
グローバルIPアドレスとは|クラウド・データセンター用語集
初心者でもできる!Apacheをインストールする方法
[ためーる]レンタルサーバーとプロバイダー|アルファメール

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11