MacOSX CatalinaでApche環境設定
以前(6年ほど前に購入)MacBookでWebサーバのテスト環境を作りました。
昨今の事情で、別のMacBookで同様の環境を作ろうとして、あれ?と思ったことから、今回はここに記録を残します。
環境
MacOSX Catalina 10.15.3
Apache 2.4.41
ruby 2.6.3
やりたいこと
ユーザディレクトリをドキュメントルートとして公開し、cgiを動かす
設定内容
現状
古いMacBookには「サイト」(ターミナル上のlsでは「Sites」)というフォルダがありましたが、新しいMacBookにはこのフォルダがありませんでした。
~ $ sudo apachectl start
を実行して、ブラウザで「 http://localhost/ 」 にアクセスすると「It works!」が表示される。
OS XにあったWebサーバ機能「Web共有」はMountain Lion(10.8)以降なくなり、ホームフォルダ直下「Sites」フォルダはなくなった(らしい....)
ドキュメントルートの作成と設定
# cd /Users/hoge/
# mkdir Sites2 #「Sites」フォルダを作成
# touch Sites/.localized # 「.localized」ファイルを作成すると以前のように『サイト』と表示
/private/etc/apache2/httpd.confを編集する(数値は行番号)
183 #LoadModule userdir_module libexec/apache2/mod_userdir.so
520 #Include /private/etc/apache2/extra/httpd-userdir.conf
↓
183 LoadModule userdir_module libexec/apache2/mod_userdir.so
520 Include /private/etc/apache2/extra/httpd-userdir.conf
/private/etc/apache2/extra/httpd-userdir.confを編集する(数値は行番号)
16 #Include /private/etc/apache2/users/*.conf
↓
16 Include /private/etc/apache2/users/*.conf
Apacheを再起動しローカルフォルダのSitesにindex.htmlを作成
~ $ sudo apachectl restart
~ $ sudo vi /Users/entero/Sites/index.html
~ $ cat /Users/entero/Sites/index.html
Here is User dir.
ブラウザで参照する
元々のドキュメントルート
ユーザのドキュメントルート
なにも自分では指定しなかったのに、/Users/hoge/Sitesがドキュメントルートになっていました。
理由はここに既定値で“Sites”と指定されていました。 /etc/apache2/extra/httpd-userdir.conf
10 UserDir Sites
ユーザディレクトリに作成したドキュメントルートのアクセスを制御するためのディレクティブは
/private/etc/apache2/users/hoge.conf に記述します。例として以下を設定してみました。
<Directory "/Users/entero/Sites/">
Options Indexes # ファイル一覧の表示を許可
Require all granted # すべて許可
</Directory>
ファイルindex.htmlをindex2.htmlにrenameして設定が有効になっていることを確認しました。
cgiを動作させる
変更箇所は2つ
・ /private/etc/apache2/users/hoge.conf にユーザディレクトリのSites/cgiでcgiを動かすことを指定
<Directory "/Users/hoge/Sites/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
・ /private/etc/apache2/httpd.conf の173行目のコメントアウトを解除
169 <IfModule !mpm_prefork_module>
170 #LoadModule cgid_module libexec/apache2/mod_cgid.so
171 </IfModule>
172 <IfModule mpm_prefork_module>
173 LoadModule cgi_module libexec/apache2/mod_cgi.so
174 </IfModule>
動作確認
cgiディレクトリに下記のファイルtest.cgiを作成する
$ cat /Users/hoge/Sites/cgi/test.cgi
#!/usr/bin/env ruby
print "Content-Type: text/html; charset=UTF-8\n"
print "\n"
print "<html>"
print "これは<b>CGI</b>のテストです。"
print "</html>"
ブラウザで http://localhost/~hoge/cgi/test.cgi にアクセスすると「これはCGIのテストです。」と表示されてOK。
htmlのソースが表示される時は、上記の変更箇所
文字化けしてしまう時は、「charset=」を確認してください
Author And Source
この問題について(MacOSX CatalinaでApche環境設定), 我々は、より多くの情報をここで見つけました https://qiita.com/taro373/items/f530c66c466b41f46902著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .