ゆいのページ

にゃーん

ゆいのアイコン

個人サイトをセルフホストしてみた ①サーバー編

公開 yyyy/mm/dd


Windows環境でかんたん自宅サーバーを始めましょう。

はじめに

そういえばゆいのページについて書いてなかったなぁと思ったので紹介します。今回はサーバーについてのあれこれを書いて、(あるとしたら)次回はブログシステム(?)などのコンテンツについてのあれこれを書こうと思います。元情報が自分用メモで変なところがあるかも。

簡単な構成図

Windows上のApacheで建てたサーバーを、Cloudflare Tunnelを使ってインターネットに公開しています。ドメインはCloudflareで管理しています。ふつう自分のサーバーをインターネット上に公開するにはグローバルなIPアドレスの用意やポート開放などの作業が必要ですが、Cloudflare Tunnelを使うと、簡単に公開できます。

簡単(雑)な構成図 Cloudflare Tunnelでインターネットに公開

物理部分

サーバーを動かす物理部分の紹介です。

サーバー本体の写真 上:ルーター(RTX830)下:サーバー本体(Macmini8,1)

サーバー本体(PC)

家に転がっていたMacmini8,1に、Windowsを入れて使っています。環境は以下の通りです。Macの課題として、Wake on LANが使えないので、なんとかしないとなーと思っています。

  • CPU: Intel Core i7-8700B
  • RAM: 32GB
  • SSD: 1TB NVMe
  • OS: Windows 11 Pro
  • Macs Fan Controlを入れて、ファン速度を一定に
  • 自動のWindowsアップデートを無効化
サーバーを立ててみたい人は、電気代や発熱、騒音を考えて消費電力が低く、静穏性が高いPCを選ぶといいと思います。(最近だとN100とかN150とかを載せたミニPCとか?)

ネットワーク

自宅のアパートでは、集合管理のルーターでVLANが切られ、各部屋まで来ているっぽいです。自分の部屋にルータ(Yamaha RTX830)を置いてネットを構築しています。サーバーは有線LANで接続しています。

ソフト部分

Apacheで建てたwebサーバーをCloudflare Tunnelでインターネットに公開しています。動的処理はPHPを使っています。

Apache

インストールは公式のページがわかりやすいです(Manual installation of pre-built binaries)。いくつか設定を変えて運用しています。細かい設定例は気が向いたら書きます。

  • conf/path.conf を追加し、サーバーやソースフォルダのパスを設定しやすいようにした
  • アクセスカウンターのファイルパスを環境変数として保存し、PHPで実行時に参照するようにした
  • PHPの読み込み
  • httpd_vhosts.conf を編集
    • twitter.yuino.devのリダイレクト
    • 末尾に「/」が付くと壊れるのの修正

PHP

特に設定は変えておらず、標準のまま使っています。アクセスカウンターやサイト内検索ブログ検索(ブログ記事を開き、トップのタグをクリックでタグ検索)が動いています。

Cloudflare Tunnel

インストールは公式のページがわかりやすいです(Cloudflare Tunnel Run as a service)。よくレジストリの設定を忘れてサービスを停止できなくなるミスをやるので注意してください。サービスとして動かすと、PCの起動時に自動で立ち上がるので便利です。

ドメイン

ドメインはCloudflareで管理しています。Cloudflare Tunnelを使っているので、ついでにDNSも管理できて楽です。ちなみに年間1000円くらいです。 ドメインをCloudflareに移管した

おわりに

最後まで読んでくれてありがとうございました。毎度のことながら遅れてすみません(なんとかクリスマスまでには間に合わせた)。自宅サーバーって意外に簡単に始められるんだなーっていうのが伝わればうれしいです。