macOS httpd.conf

macOS Mojave で httpd.conf の設定。
現行は $HOME 以下にサイトを置いて PHP を使うだけなら三個所設定すればいいようだ。
PHP7 は最初から入っている。

ただ macOS は OS アップグレードで httpd.conf がリセットされてしまう。
Fedora はアップグレードしても内容を保持してくれるのに面倒臭い。
違いは PHP をデフォルトで有効にしているかだけみたい、PHP にもバージョンがあるし。

変更する箇所は決まっているので難しいことはないけど何度もやるのは面倒。
だったら書き換えスクリプトを JXA で作っておけば楽でね?
JavaScript なら replace でアッサリ書き換えできるのがいいよね。
前回のことがあるけど GUI を使わないなら問題なく動くようだ。

#!/usr/bin/osascript

// sudo osascript apache_setup.js

ObjC.import("Cocoa");

let nil = $();
let conf = $("/etc/apache2/httpd.conf");
let root = "/Users/sasakima-nao/www";
 
// Read
let s = $.NSString.alloc.initWithContentsOfFileEncodingError(conf, $.NSUTF8StringEncoding, nil).js;
s = s.replace(
    '#LoadModule php7_module libexec/apache2/libphp7.so',
    'LoadModule php7_module libexec/apache2/libphp7.so'
);
s = s.replace(
    'DocumentRoot "/Library/WebServer/Documents"',
    `DocumentRoot "${root}"`
);
s = s.replace(
    '<Directory "/Library/WebServer/Documents">',
    `<Directory "${root}">`
);
// Write
let res = $(s).writeToFileAtomicallyEncodingError(conf, true, $.NSUTF8StringEncoding, nil);
if (res) {
    console.log("Write Success!");
}

apache_setup.js

を実行して。

sudo apachectl restart
open http://localhost/

で動作確認できるのは知っているよね。
実は同じ LAN に繋がっているスマホやパソコンがあるなら更に。

http://コンピューター名.local

でアクセスできるよ。
もちろん ifconfig からローカル IP を得てアクセスでも同じ。
これでスマホでのサイト作り時の見栄え確認が簡単に。

ちなみに NetworkManager を使っている Linux でも同じだったりする。
Fedora の場合は firewall-config で http のポートを空けてね。

ところで NetworkManager のメンテをしているのは Redhat です。
例の買収時にネットの反応に驚いたよ、皆 GUI しか見ていないのかと。