【超初心者向け】MacでWebサーバーを無料で構築してみる。インターン趣味カメラレビューアカデミック映画/ドラマお問い合わせ管理人激推しの海外旅行便利グッズ!アカデミック【超初心者向け】MacでWebサーバーを無料で構築してみる。無料でWebサーバを構築したい!Macにはデフォルトでツールが入ってるって聞いたけど??今回は,MacでWebサーバを無料で構築する方法をお伝えしていこうと思います。Webサーバ周りの知識はごちゃごちゃしがちなので,しっかり整理してお伝えしていくことが目標です。本記事はプログラミング記事シリーズの内容になります。その他の記事は,こちらの「プログラミング記事まとめページ」をご覧ください。コーディングに関して未熟な部分がたくさんあると思いますので,もし何かお気づきの方は教えていただけると幸いです。誤りについてもご指摘していただけると非常に助かります。EC2を利用するWebサーバ概要こちらの記事でもお伝えしているように,Webサーバというのはインターネットを利用する私たちの情報源となる存在です。試しに,AさんがWebサイトを閲覧する場合の流れについて考えてみましょう。基本的には「Aさん→Webブラウザ→Webサーバ」という順番でWebサーバにサイトを見たいというお願い(HTTPリクエスト)をすることで,Webサイトを見ることができるようになります。Webサイト閲覧の流れつまり,自分のホームページを作成するためには,Webサーバをレンタルするか,自分で構築する必要があるのです。Webサーバを構築する...?心配いりません。Webサーバといっても,所詮私たちが使っているパソコンと何ら変わりありありません。私たちのパソコンがWebサーバとして機能するためにはある条件が必要になります。それが,Webサーバソフトを導入しているということなのです。Webサーバソフトを利用すれば,私たちのパソコンを簡単にWebサーバとして働かせることが可能になります。現在普及しているWebサーバソフトとしては,以下のようなものが有名です。●Apache:超定番のソフト。Webサーバといえば大抵コレを指す。●Nginx:特徴は高速な点。●IIS:Windowsの標準搭載ソフト構築方法それでは早速,Macを使ってWebサーバを構築していきましょう。方針としては2つあります。EC2の利用なんと,Macには標準でApacheが搭載されています。Apacheを利用する方針は自分のパソコンをWebサーバにしてしまおうというものです。EC2はAmazonの提供するクラウド上のサーバを一時的にレンタルする方法です。最初に大まかな流れを確認しておきます。1.Apacheの起動2.自動起動設定3.HOMEページの編集4.新規ページの作成5.ベーシック認証をかける6.URLから入力を受け取る7.Pythonのファイルを動かしてみるそれでは早速参りましょう。start管理者権限で実行していきます。ちなみに,設定ファイル等をいじったあとはApacheを再起動させる必要があります。再起動と停止は以下のコマンドで行えます。自動起動解除Apacheが自動起動するように設定したい場合は,1行目のコマンドを入力してください。解除したい場合は2行目のコマンドを入力してください。HOMEページの編集なんと,この時点で自分のパソコンがWebサーバになってしまいました。証拠として,適当なWebブラウザ(Chromeなど)で「http://localhost」と入力してみてください。works!」と表示されましたか?大成功です。ちなみに,localhostというのは自分のIPアドレスを指します。「127.0.0.1」も自分のIPアドレスを指すローカル・ループバック・アドレスです。Macの「システム環境設定→ネットワーク→詳細→TCP/IP」より自分のIPv4アドレスを確認できますので,そちらのアドレスをlocalhostの代わりにWebブラウザのURL欄に直打ちすることでも「http://localhost」に接続することができます。上記方法で接続できない方へ。私がハマったのは,McAfeeのファイアウォール設定でした。「環境設定」よりファイアウォールをオフにしてからもう一度接続してみてください。works!」以外の文字を出力できるように変更していきましょう。works!」と書かれたファイルの実態ですが「/Library/WebServer/Documents/index.html.en」に書かれています。worksの文字を変えることができます。注意点としては,管理者権限でないと編集が行えない点です。,「/Library/WebServer/Documents」にある「index.html.en~orig」も同時に編集しなくては,変更が反映されないので気をつけてください。試しに,「index.html.en」と「index.html.en~orig」を「Wow!」と書き換えてみてください。このとき,htmlの書き方にしたがって「<h1>Wow!</h1>」としてもOKです。編集後,Apacheの再起動を行って「http://localhost」に接続してみてください。Rootという言葉をおさえておきましょう。ドキュメントルートは,Webサーバのルート(一番上のディレクトリ)となるフォルダを指しています。デフォルトでは/Library/WebServer/Documentsとなっています。内にある「index.html.en」がHOMEページとして表示されていたのです。新規ページの作成それでは,HOMEページの編集が行えたので,次は新しいページを作ってみましょう。今回は,「http://localhost/secure」というページを作成して,ベーシック認証をかけることを目標としてみます。新しいディレクトリを作成します。続いて,secureディレクトリに「index.html.en」を作成しましょう。「vi」コマンドは慣れていないと少し難しいと思いますが,基本的には「編集モード」「コマンドモード」を行き来して最後に「:wq」で保存するだけです。page」という文字列を入力しておきましょう。page」と書き込みましょうさて,適当なWebブラウザで「http://localhost/secure」と打ち込んでみてください。page」と表示されましたか?ベーシック認証をかけるさて,現状ではシークレットページがシークレットになっていませんね。そこで,今回は最も単純な「ID」と「パスワード」によるベーシック認証をかけてみたいと思います。ベーシック認証のためには,2つのファイルを作成する必要があります。●.htaccess:.htpasswdの場所を認証の設定を記述それぞれ,個別に作っていきましょう。,.htpasswdから作成します。今回は,idを「test_id」,パスワードを「test_pass」として設定します。実際に,作成されたファイルを見てみましょう。空白行このように,.htpasswdは「id:password」という形式で作成されています。パスワードは簡単な暗号化が施されています。次に,.htaccessを作成していきましょう。.htaccessはベーシック認証をかけたいファイルのディレクトリに設置します。今回は,secureディレクトリに.htaccessを設置していきましょう。しても,viコマンドを使って編集していきます。内容は,以下のコピペでOKです。valid-user★AuthUserFileは.htpasswdの場所を指定しています。★AuthGroupFileは,グループのidとパスワードを記入したファイルの場所を指定しますが,ベーシック認証では必要ないため,「/dev/null」を指定して「何もありません」という指示を与えます。★AuthNameはパスワード入力時に表示される文言です。(ブラウザにもよります)★AuthTypeは認証タイプなので,今回は「Basic」を指定します。★requireは認証された全ユーザを許可するという意味で「valid-user」を指定します。実際に.htaccessを作っていきましょう。valid-userこれにてベーシック認証の設定が完了しました。Apacheを再起動した後,実際に「http://localhost/secure」にアクセスしてみてください。ユーザ名とパスワードを求められたら大成功です。エラーが発生する場合は,権限の設定を見直す必要があります。/Library/WebServer/Documents/secure/.htaccess等を試してみてください。URLから入力を受け取るさて,ここからはURLから入力(クエリ)を受け取る方法についてお伝えしていきます。目標としては,「1+1」という入力を受け取った時にその計算結果を出力するページを作成してみましょう。ここでは,Pythonの力を借りることになります。Interface)というシステムを利用してWebサーバがURLに書かれた入力を受け取った時にPythonファイルを動かして,その結果をページに出力するという流れを想定してみましょう。CGIを使うためには「/Library/WebServer/CGI-Executables」の中にPythonファイルを設定すればOKです。すれば,「http://cgi-bin/」というURLでページにアクセスすることができるようになります。cgi-binというのはデフォルトで決められています。URLで入力を渡すときには,「?」を利用します。,「http://cgi-bin/test.py?1+1」というのは「/Library/WebServer/CGI-Executables」の中にある「test.py」というプログラムに1+1という文字列型の入力を渡しています。Pythonのファイルを動かしてみる実際に,適当なエディタで以下のPythonファイルを設置してみてください。world")1行目は,これからPythonのファイルを動かしますよという指令です。コメントっぽいからといって,省略してはいけません。2行目は,これからplainなテキストが書かれますよという指令です。text/htmlを指定することもできます。続いてWebサーバがPythonファイルを認識できるように設定を変更していきたいと思います。Macの場合は「/etc/apache2/httpd.conf」に設定ファイルが設置されています。この設定ファイルを以下のように変更していきます。.py長いファイルの一部に関して,コメントアウトされている箇所を,#を消してコメントでなくしてしまうという操作です。上では,cgiモジュールを読み込めるように設定しています。下では,.pyファイルを認識できるように設定しています。,「http://cgi-bin/test.py」にアクセスしてみてください。world」と表示されましたか?続いて,以下のようなプログラムを作成して,同じように「/Library/WebServer/CGI-Executables」に設置してみてください。print("ERROR")URLから受け取った入力を文字列型として処理しながら計算結果を返すプログラムです。入力が計算式でなかった場合は「ERROR」と返すようにしています。eval()に組み込み関数の文字列を渡してしまうとtryを通ってしまうため,少しややこしい構造になってしまっています。(細かい説明は省略させていただきます...!)本記事もクライマックスです。「http://cgi-bin/calc.py?1+1」「http://cgi-bin/calc.py?abcde」などと入力してみてください。それぞれ「2」「ERROR」と出力されましたか?予想通りの結果が出ると,気持ちいいですね。EC2を利用する場合も,基本的には同じ流れになります。最初だけは少し勝手が異なります。EC2でWebサーバーを構築してみる(Qiita記事)」などを参照して,仮想サーバを作成してみてください。その仮想サーバー上で,上と全く同じ操作を行えば,Webサーバを構築することができます。EC2は仮想サーバのIPアドレスをもらって,そのIPアドレス上でWebサーバを構築していくというものです。Linuxに接続しながら作業を行います。先ほどまでは,最悪,「vi」コマンドを利用しなくても,GUIから操作することでなんとかやってこれた方もいらっしゃるかとは思います。Linux上では「vi」コマンドを駆使しながらファイルを生成・編集していく必要があります。この際にviやvimなどのエディタを使いこなせるようにしておきましょう。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目です過去問解説販売中!zuka京都大学で機械学習を学んでいます。iBTの出題形式が大幅変更!新テストの注意点まとめ。情報学のおすすめ参考書HOMEアカデミック【超初心者向け】MacでWebサーバーを無料で構築してみる。