Mac内蔵のApacheでWebサーバを立ち上げる

Viewed: 13:46:16 in December 16, 2019

Posted: September 11, 2019
色々いじるのに”ターミナル”を使います。

パスワードを問われることが頻繁にありますので、思い出しておきましょう。

 

まずは基本から

 

ターミナルで打ち込むコマンド

Apacheの起動: sudo apachectl start

Apacheの停止: sudo apachectl stop

Apacheの再起動(設定をいじった後はこれをお忘れなく): sudo apachectl restart

 

Apacheが初期の設定で起動しているかを確認する方法

WebブラウザのURL窓に”localhost”と入力して表示を待つ。

It works!

が表示されていればOKです。

 

Apache設定を変更してWebコンテンツを扱いやすくします。

Webサーバのコンテンツの置き場所が初期設定では特殊なため、初期設定のままWebコンテンツを増やしていくのはめんどくさいと思われます(頻繁にパスワードを要求されるし、Finderの挙動も若干異なる)。

 

基本的な設定

私流のやり方です。

まず、Webコンテンツの置き場所を決めます。私が個人的に設定した場所は、自分のユーザのフォルダの中にある「サイト」というフォルダ内です。


この「サイト」フォルダの中に、次の3つのフォルダをFinferの「新規フォルダ」で作成します。


 

htdocs

(HTMLファイルや画像など、ふつうのWebコンテンツ用)

 

cgi-bin

(PerlやPythonなどのスクリプトファイルを置きます)

 

logs

(ログファイルを置きます)

 

Apacheの設定をviでイジるのに最低限必要なこと

Apacheの設定をエディタ(vi)でいじります。ターミナルから

 

sudo vi /etc/apache2/httpd.conf

と入力すると、viでの編集画面が現れます。

必要なキー操作は以下の4つです。

 

a

(キー入力を反映した編集を開始します)

 

[esc]

(キー入力を反映した編集を終えます)

 

:w[return]

(編集した内容を上書き保存します)

 

:q[return]

viエディタを終了します

【注意】Apache設定ファイル内の”#”をみだりに取ったりつけたりしないように。”#”の意味は見ればわかると思います。

以降、設定の変更内容について説明します。

 

HTMLファイルや画像などの置き場所を指定する

前述の通り、

sudo vi /etc/apache2/httpd.conf

と打ち込んでhttpd.confの編集画面を表示させます。

矢印キーでスクロールさせ、

 

DocumentRoot "/Library/WebServer/Documents

 

を探します。これを

 

DocumentRoot "/Users/(ユーザ名)/Sites/htdocs"

 

に変更します。

ユーザ名がmakiokaの場合には、

 

DocumentRoot "/Users/makioka/Sites/htdocs"

 

となります。

 

ログファイルの置き場所を変更する

必要がなければ変更しなくても構いません。PerlやPythonなどのスクリプトを実行する場合、エラーログを見ながらのデバッグが必要になるので、

 

Errorlog "/private/var/log/apache2/error_log"

を探し、これを

 

Errorlog "/Users/(ユーザ名)/Sites/logs/error_log"

に変更します。

アクセスログの置き場所を変更したい場合には

 

Customlog "/private/var/log/apache2/access_log" common

を探し、これを

 

Customlog "/Users/(ユーザ名)/Sites/logs/access_log" common

に変更します。必要であれば、

 

Customlog "/Users/(ユーザ名)/Sites/logs/access_log" combined

とします(周辺にcommonとcombinedの違いが説明してあります)。

“:w[return]”でファイルを保存、”:q[return]”でエディタを終了した後、

 

設定を変更したらApacheを再起動

 

sudo apachectl restart

でApacheを再起動します。

“サイト”フォルダ内の”htdocs”フォルダに”index.html”という名前のHTMLファイルを置いておき、Webブラウザから”localhost”のアドレスを指定した時に”index.html”の中身が表示されれば、設定は成功です。

 

CGI (PerlやPythonなど)の設定

ここではPerlを動かしたい時の設定変更について記述します。その他の言語も似たような方法で設定できます。

前述の設定変更の時と同じように、

sudo vi /etc/apache2/httpd.conf

でエディタでの編集を行います。

 

モジュールの読み込み設定を変更する

“LoadModule”がたくさん並んでいるあたりの

 

#LoadModule cgi_module libexec/apache2/mod_cgi.so

の”#”を除きます。

 

#LoadModule userdir_module libexec/apache2/mod_userdir.so

の”#”を除きます。

 

#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

の”#”を除きます。

 

#LoadModule perl_module libexec/apache2/mod_perl.so

の”#”を除きます。

 

スクリプトファイルの置き場所を指定する

エラーログの設定のところを下に通り過ぎ、

 

ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"

を探します。これを

 

ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Users/(ユーザ名)/Sites/cgi-bin/$1"

に変更します。

その下にある

 

<Directory "/Library/WebServer/CGI-Executables">

を探し、これを

 

<Directory "/Users/(ユーザ名)/Sites/cgi-bin">

に変更します。

 

あと少し…

少し下にある

 

Options FollowSymLinks Multiviews

を探し、これを

 

Options FollowSymLinks Multiviews ExecCGI

に変更します。

さらに45行くらい下にある

 

#AddHandlercgi-script.cgi

の”#”を除き、

 

AddHandler cgi-script .cgi .pl

に変更します。

さらに下、最後から36行上あたりの

 

#Include /private/etc/apache2/extra/httpd-userdir.conf

の”#”を除きます。

最後の行に

 

AddHandler cgi-script .cgi .pl

を追加します。

ファイルを保存、エディタを終了し、Apacheを再起動します。

 

これで設定は完了。幸運を祈ります。

 

あわせてどうぞ

SOHOのすすめ記事一覧 2019年
お仕事関係の記事のリストです(2019年)。