Ghost + 静的サイト共存設定手順

Ghost + 静的サイト共存設定手順

背景

VPSですでにGhostを配信している.同じドメインで,別のWebページをアクセス可能にしたい.

本記事では,著者がGhost配信サーバーに静的サイトを配置したいために,このようなタイトルをつけている.任意の名前で複数のサイトを配置したい要望に応えられる内容になっている.

前提条件

  • ConoHa VPSでGhost CLIを使用してGhostをインストール済み
  • Nginxがリバースプロキシとして設定済み
  • 配置したいアプリ名( your-app-name )のディレクトリに設定

手順

1. 静的ファイル用ディレクトリの作成

sudo mkdir -p /var/www/html/your-app-name

2. 静的ファイルのアップロード

# SCPを使用する場合
scp /path/to/local/index.html username@your-server-ip:/tmp/
sudo mv /tmp/index.html /var/www/html/your-app-name/

# 直接編集する場合
sudo vi /var/www/html/your-app-name/index.html

3. ファイル権限の設定

sudo chown -R www-data:www-data /var/www/html/your-app-name
sudo chmod -R 644 /var/www/html/your-app-name/*

4. 現在のNginx設定確認

# 設定ファイル一覧を確認
ls -la /etc/nginx/sites-available/

# HTTP設定ファイルを確認
sudo cat /etc/nginx/sites-available/yourdomain.com

# HTTPS設定ファイルがあるかチェック(通常は-ssl.conf)
sudo cat /etc/nginx/sites-available/yourdomain.com-ssl.conf

5. Nginx設定の編集

HTTP用,HTTPS用の二つの設定ファイルを編集する必要がある.

追加位置は, location / { (Ghost用設定) の直前に挿入する.

# HTTP用設定ファイル
sudo vi /etc/nginx/sites-available/yourdomain.com

# HTTPS用設定ファイル(SSL設定がある場合)
sudo vi /etc/nginx/sites-available/yourdomain.com-ssl.conf

HTTP用とHTTPS用の両方のファイルに以下を追加

# 静的サイト用設定(HTTPとHTTPS両方のファイルに追加)
location /your-app-name/ {
    root /var/www/html;
    try_files $uri $uri/ =404;
}

6. Nginx設定のテストと再読み込み

# 設定ファイルのテスト
sudo nginx -t

# 設定の再読み込み
sudo nginx -s reload

7. 動作確認

# Nginxのステータス確認
sudo systemctl status nginx

# Ghostのステータス確認
sudo systemctl status ghost_yourdomain-com

ブラウザで以下にアクセスして確認する.

  • https://yourdomain.com/ → Ghost
  • https://yourdomain.com/your-app-name/ → 静的サイト
  • HTTP版も同様に動作確認

トラブルシューティング

404エラーが発生する場合

アクセスログの確認

sudo tail -f /var/log/nginx/access.log

エラーログの確認

sudo tail -f /var/log/nginx/error.log

ディレクトリとファイルの存在確認

ls -la /var/www/html/your-app-name/
ls -la /var/www/html/your-app-name/index.html

注意点

  • your-app-name を実際のアプリ名に置き換える
  • yourdomain.com を実際のドメイン名に置き換える
  • Nginxを使用してSSL設定をした場合はssl.confファイルが別途作成されることがある
  • HTTP用とHTTPS用両方のファイルに設定を追加する必要がある
  • 設定は location / { の直前に配置すること