螺旋 3D 印刷のための CGI プログラムをうごかすのに,いまは個々の PC で Apache をうごかしている. そのため,Mac OS Big Sur をインストールした MacBook の Apache でも CGI のための設定が必要になった. オリジナルの httpd.conf を 3 行かきかえるだけで動作するようになった.
MacBook には Apache が最初からはいっている. 便利といえば便利だが,OS をアップグレードするたびに httpd.conf をかきかえなければならないのはわずらわしい. どこをかきかえればよいかがよくわかっていないので,これまでつかってきた httpd.conf はだいぶかきかえすぎていた. それをもとにしてあたらしい httpd.conf をつくると,Apache がたちあがらくなった. やむなく,Apple 提供の httpd.conf をすこしずつ,かきかえていくことにした.
3 行だけ,コメントをはずして一部かきかえることで,Apache が動作している Mac 上で CGI がつかえるようになった. すなわち,まずつぎの部分の '#LoadModule' 2 箇所のコメントをはずした.
<IfModule !mpm_prefork_module> LoadModule cgid_module libexec/apache2/mod_cgid.so </IfModule> <IfModule mpm_prefork_module> LoadModule cgi_module libexec/apache2/mod_cgi.so </IfModule>
両方必要ではないのだろうとおもうが,どちらがつかわれているかわからないので,両方はずしておく. また,つぎの行も '#' をはずした.
#AddHandler cgi-script .cgi
ついでに '.py .pl' をくわえておいた.
AddHandler cgi-script .cgi .py .pl
これでつぎのようにして Apache を再起動すると,CGI が動作するようになった.
sudo apachectl restart
なお,emacs で httpd.conf を編集するのにも,いささか苦労している. vi がつかえない私は httpd.conf を編集するのに emacs をつかっている. ところが,emacs を sudo で起動してもなぜか httpd.conf をかきかえることができない. そこで,やむなく 'sudo chmod 666 httpd.conf' を実行してからかきかえている.
追記 (2020-12-17):
きょう,突然 CGI がうごかなくなった.昨夜システムが自動的にアップデートされた際に httpd.conf がもどされてしまった.
なぜそんなことがおこったのか,つきとめていないが,httpd が更新されて httpd.conf もおきかえられてしまったのかもしれない.
あたらしい httpd.conf と私がかきかえたものを diff で比較すると,私がかきかえたところ以外に改訂されたところはなかった.
そこで,私がかきかえたものにおきかえると,CGI はもとどおり動作するようになった.
これは Apple のチョンボだろう.
追記 (2021-2-4):
OS が自動的にアップデートされ,ふたたび Apache がうごかなくなった.
年末にしたのと同様のことをして解決した.
前回なにをしたかがすぐわかるようにしておかなかったので,だいぶ時間をつかってしまった.
OS がアップデートされるたびにくりかえすのはかなわない.
とりあえず httpd.conf を書き込み禁止にしておいたが,これで解決されるかどうか…