FrontierStack ユーザマニュアル マニュアル先頭
デスクトップ版マニュアル モバイル版マニュアル English frontierstack.app ↗

第 II

II

サービスの運用

目の前の Mac で Web スタック、データベース、サービスカタログ、そしてサイトを動かす。

4

第 4

Web スタック

Apache または Nginx、サイトごとに必要な PHP バージョン、バーチャルホスト、信頼されたローカル HTTPS、そして DNS — Web スタック一式を、設定の手書きなしに 1 つのウィンドウから制御します。

Web サーバは多くのセルフホスト構成の心臓部です。だから FrontierStack はそれを一級の対象として扱います。Apache ペインは Homebrew 版 Apache のインストール・起動・検証・設定を行い、PHPLocalhostCertificatesDNS の各ペインが、開発とホスティングの完全なスタックを仕上げます。あらゆる変更が検証を通るため、タイプミスがサイトを黙って落とすことはありません。

本章では、目の前の Mac で Web サイトを作り、動かすペインを扱います。そのスタックを実ドメインと公開インターネットへ繋ぐのは第 7 章、本番向けに堅牢化するのは第 10 章です。

4.1Apache ペイン

サイドバーから Apache ペインを開くと、Web サーバの状態がひと目で分かります。バージョン、起動の有無、待ち受けポート。上部のボタンが日々使う操作です — StartStopRestartValidate Config。検証は apachectl -t(本物の構文チェック)を実行し、結果を Last Result に表示するので、リロード前に変更が妥当だと確認できます。

FrontierStack は macOS のシステム版ではなく Homebrew 版 Apache を推奨します。Homebrew 版は /opt/homebrew(Intel Mac では /usr/local)以下に置かれ、brew services 経由で毎回 root を求められずに自分の権限で動き、System Integrity Protection に縛られません — だから最新の mod_php がきれいに読み込まれ、スタック全体が 1 つのツールチェーンに揃います。/etc/apache2 のシステム版は OS アップデートで消去され、Apple 同梱の libphp に縛られます。Homebrew 版 Apache が未インストールなら、ペインがワンクリックの Install Homebrew Apache… を提示します。

複数の Apache ビルド(Homebrew 版、旧来のローカルビルド、リモートサーバのもの)を併用する場合は、バイナリ選択(Add Homebrew ApacheAdd Local Build…)で登録し、それぞれのバージョンとポートを見ながら切り替えられます。

メモFrontierStack が Apache に加えた独自の追加はすべて、アプリ管理の設定ツリー /opt/homebrew/etc/httpd/frontierstack/ に置かれ、httpd.conf からの IncludeOptional で取り込まれます。アプリの vhost・MIME タイプ・管理対象 include をそこにまとめることで、手書きの httpd.conf は綺麗なまま保たれ、FrontierStack が何を追加したか常に分かります。

4.2モジュール・ポート・管理対象の設定

Apache ペインの下部には、最も頻繁に編集する設定が、ファイルではなくコントロールとして並びます。

セクション役割
PortsHTTP と SSL の待ち受けポートを設定(既定 80・443)。Nginx が 80/443 を使うなら Apache をそこから外します。ApplyListen ディレクティブを書き換えてリロード。
Apache Modules(Modules…)読み込み済みモジュールを一覧し、有効/無効を切り替え。未使用モジュールの無効化は最も手軽な堅牢化です。
PHP ModuleWeb サイト向けに Apache が読み込む mod_phplibphp.so)のバージョンを選択 — 次節参照。
WebDAV共有フォルダ向けに mod_dav を有効化。任意の Basic 認証ユーザ付きで、管理対象 include に書き込まれます。
Edit MIME Types…FrontierStack 管理の MIME ファイルに AddType マッピングを追加/削除。ディストリの mime.types には触れません。

コントロールとして出ていない項目には、設定行から Edit Managed Config…(FrontierStack の include)と Edit httpd.conf…(メインファイル)を直接編集できます。保存のたびに apachectl -t で検証し、グレースフルにリロードし、新しい設定が構文エラーならロールバックします — 誤った編集は、稼働中のサーバを壊す前に捕捉されます。

注意httpd.conf の手編集は強力で、無防備でもあります。アプリは構文エラーで検証・ロールバックしますが、構文は通るのに document root が誤った場所を指す設定は、なおファイルを露出させ得ます。FrontierStack 独自の追加は管理対象 include を優先し、大きな変更は控えを取ってください。

モジュールを切り替えると、その LoadModule 行を書き換えて再検証します。変更で httpd -t が失敗した場合(代表例は proxy なしで proxy_fcgi を有効化するケース。アプリが自動で proxy も有効化します)、モジュールウィンドウはエラーを表示し、黙って閉じません。修正するか、Save anyway(このまま保存)を選びます。Apache が固まって起動しない場合(Homebrew の典型的な Bootstrap failed: 5: Input/output error。既にロード済み、または sudo brew services が httpd のパスを root 所有にしてしまったのが原因)、ペインの Recovery & reset(復旧とリセット)セクションに 3 段階の対処があります:Restart cleanly(ユーザとシステム両方の launchd ドメインで httpd を停止してから 1 回だけ起動)、Reset config to defaulthttpd.conf をバックアップして Homebrew の既定を復元)、Remove & Reinstall(root 所有のパスを消して formula を再インストール)。いずれもアプリ内コンソールで実行され、sudo プロンプトと出力を確認できます。Service Watchdog のキープアライブが Apache に対して有効な場合、httpd を自動で再起動することがあります(想定内ですが、手動復旧と競合するなら一時停止してください)。

4.3PHP バージョンの選択

PHP ペインを開くと、Mac にインストールされた PHP ランタイムを管理できます。Homebrew は複数のメジャーバージョン(例:[email protected] から最新版まで)を併存させられ、FrontierStack はそれらを、単一のグローバルインストールではなく、切り替える集合として扱います。

選択は 2 つに分かれます。

  • Apache モジュール。Apache ペインの PHP Module セクションの Load for websites ピッカーで、Apache が読み込む libphp.so のバージョンを選びます。変更すると管理対象設定を書き換えて Apache をリロードします。
  • サイトごとの PHP。ローカル開発サーバ(下記 Localhost ペイン)には独自の PHP VersionPHP Binary 欄があり、あるプロジェクトを古い PHP で、別を最新で動かせます — マシンの他の部分が使うものを変えずに。旧来アプリと新規アプリを同時に成り立たせる、いつもの方法です。

Runtime Health ペインはより広い全体像を示します — PHP に加え Python・Node.js・Java・Go・Rust・Ruby・Perl・.NET — 欠落やサポート終了のランタイムを、問題になる前にフラグするセルフチェック付きです。

Runtimes セクションにはフロントエンド向けの React ペインもあります。新規アプリのスキャフォールド(Vite・TanStack Start・Next.js)、任意の React プロジェクトの指定、そして役割別に整理された厳選ライブラリ一覧を提供します — 状態管理(Zustand・Jotai・Redux Toolkit)、データ取得とサーバ状態(TanStack Query — 旧称 React Query — と SWR)、フルスタックフレームワーク(TanStack Start・Next.js)、ルーティング、バリデーション(ArkType・Zod)、フォーム、認証(Clerk)。各行にはドキュメントへのリンク、選択中プロジェクトでの使用状況、そのプロジェクトへのワンクリック npm install が並びます。

4.4サイトとバーチャルホスト

Apache ペインの Websites リストがバーチャルホストの管理場所です。各行にサイト名、バインドアドレス、ポート(例::8080)、そしてライブ状態を示す Running トグルが表示されます。ボタンで Add Site…、編集、複製、無効化、Push to Server…(連携サーバへ vhost をコピー)、ブラウザで開く、が行えます。Import Sites…Copy from… は、MAMP・XAMPP・Apple の Server.app・別の Apache から既存 vhost を取り込み、既定で localhost にバインドします。

サイトの追加・編集では、vhost が必要とする要点を設定します。ServerName(ドメイン)、document root(フォルダを Choose…)、バインドのアドレスとポート。サイトを有効化するとライブ状態ドット付きで一覧に現れます。FrontierStack は vhost を管理対象ツリー下の .conf ファイルに書き込み、検証し、リロードします。vhost・証明書・Cloudflare DNS レコードをまとめて作るには New Site + DNS… を使います — 第 7 章で解説する一括ウィザードです。

スクリーンショット追加予定
図 4.1. バーチャルホストの設定:ServerName、document root、バインドアドレスとポート、TLS と PHP のオプション。撮影手順: Apache ペインを開き、Websites リストでサイトを選択し、ServerName と document root を入力した設定エディタを表示
ヒント開発中はサイトを 127.0.0.1 にバインドすれば、Mac からしか到達できません — 作業中の最も安全な既定です。他のマシンから本当に到達させたいときだけ、バインドアドレスを 0.0.0.0 や LAN IP に変えてください。

4.5サイトの TLS 証明書

Certificates ペインは、サイトに鍵マークを付ける証明書を発行・管理します。用途に応じた 3 つの方法があります。

方法用途
mkcertGet Certificate (mkcert)信頼されたローカル HTTPS。mkcert は Mac が信頼するローカル認証局をインストールするので、https://myapp.test がブラウザ警告なしで動きます — 開発に最適。Install mkcert でまず準備します。
Let’s Encrypt (ACME)実ドメイン向けの、公開・ブラウザ信頼の証明書。acme.sh または certbot 経由。webroot(ドメインが既に HTTP を提供)または Cloudflare 経由の DNS-01(インバウンド HTTP 不要)で発行。Renew All Now と更新 cron で最新に保ちます。
Create Self-Signed Certificateブラウザ警告が許容される内部用・テスト用の手早い証明書。

発行後、Deploy to Apache が証明書をサイトの vhost に組み込みます。Expiry Monitoring セクションは証明書(および Watch で追加した任意のドメイン)を監視し、期限切れの十分前に通知します — HSTS や最新の暗号方針を含むより深い堅牢化は第 10 章です。

セキュリティmkcert のローカル CA はそれを実行する Mac だけが信頼し、Let’s Encrypt 証明書は本物の公開証明書です — 一般公開するサイトに自己署名証明書を使わないでください。DNS-01 発行用の Cloudflare API トークンは CF_TOKEN ボールトシークレットとして保存され、実行時に注入されます。クラウド AI には決して送られません。

4.6.htaccess エディタ

ディレクトリ単位の Apache ルール(リライト・リダイレクト・アクセス制御)は .htaccess ファイルに置かれます。FrontierStack はそれ専用のエディタを、行番号と構文の妥当性チェック付きで提供します。Use Site Root でサイトの document-root の .htaccess を開くか、custom path を指定します。Insert Recipe は、よくある正しいスニペット(フロントコントローラのリライト、HTTPS 強制ブロック)を挿入するので、記憶ではなく動くルールから始められ、保存前に明らかな問題をフラグします。Export PHP Router….htaccess のリライトルールを、組み込み PHP 開発サーバ用のルータファイルに変換します — サイトを Localhost ペインに移すときに便利です。

4.7Nginx とリバースプロキシ

FrontierStack は Nginx を、代替の Web サーバとして、またはアプリの前段のリバースプロキシとして管理します。両方がインストールされていると、Domains ビューはサイトをサーバごとに分類し — Apache のバーチャルホストと Nginx の server ブロックを並べて — 各 Nginx server ブロックの listen ポート・root・TLS 状態を読み取ります。リバースプロキシは、高位ポートで HTTP を話すアプリ(Node・.NET・Python のサービス)の前に立てる標準パターンです。Nginx が 443 で TLS を終端し、アプリへ転送します。Apache も Nginx も既定で 80/443 を欲しがるため、併用する場合は Apache ペインの Ports セクションで一方をそこから外してください。

4.8Localhost・DNS・開発スタック

ローカルの全体像を完成させる、もう 3 つのペインがあります。

  • Localhost — 即席のローカル開発サーバのマネージャ。New Local Server を追加し、Runtime(PHP・Python/Django・Node/Vite…)とフォルダを選び、ポートと任意の ServerName を設定して Start。サーバごとの Environment Globals.test リゾルバmyapp.test がローカルに解決されます。Free Port ヘルパーと localhost を掴んでいるものを止める操作で、よくある競合を解消します。
  • DNS — ローカルの名前解決と権威ホスティング。dnsmasqunboundnsd を実行し、ゾーンファイルをインポート/エクスポートし、レコード変更時にリゾルバをフラッシュして、Mac が古い応答を返さないようにします。
  • LAMP / DevStacks — ワンクリックのスタック。LAMP ペインはプリセット(Choose a Setup)を提供し、揃ったコンポーネント一式をまとめてインストール・起動(Install & StartStart AllStop All)。DevStacks はプロジェクトフォルダのフレームワークを検出し、それを動かす適切なコマンドと npm スクリプトを表示します。

Localhost の概観は、稼働中のローカルサーバをすべて並べて表示するので、世話の焼ける Terminal ウィンドウの壁なしに、多数のサイトを同時に動かせます。

AI が使うのと同じツール
本章の内容はすべて、AI 管理者(第 13 章)にも、MCP 経由の外部 AI ツール(第 14 章)にも、同じガード付き操作を通じて提供されます。vhost_create はバーチャルホストを作り、reload_webserver は Apache または Nginx を検証してグレースフルにリロードし、issue_certificate は Let’s Encrypt 証明書を取得します。いずれも変更を伴うツールなので、それぞれ承認カードを表示し、変更の有効化を必要とします — AI はこれらのペインであなたが行うことを正確に行い、許可されていないことは一切しません。

FrontierStack ユーザマニュアル · バージョン 1.0.0 · 第 4