2026年10月2日
2026年10月2日
Nginxでサブディレクトリにアプリをデプロイする方法
はじめに
本記事では、Nginxを使用してWebアプリケーションをサブディレクトリにデプロイする方法について解説します。実際の例としてWordPressの設定を詳しく示しますが、この手法は他の静的なまたは軽量なCMSやフレームワークにも適用可能です。
症状・背景
1. サブディレクトリへのデプロイが必要な場面
- ホスティング提供元の制約により、ドキュメントルートに直接アプリケーションを配置できない場合。
- アプリケーションと静的ファイル(画像やCSS)を分離して管理したい場合。
- 既存のウェブサイト上に新しいアプリケーションを追加したいが、ルートディレクトリに影響を与えないようにする必要がある場合。
手順・設定方法
ステップ1: WordPressファイルをサブディレクトリへ配置
# WordPressファイルを「/var/www/html/subdirectory」に配置します。
$ sudo mkdir -p /var/www/html/subdirectory
$ sudo cp -r /path/to/your/wordpress/* /var/www/html/subdirectory/
ステップ2: Nginxのコンフィグファイルを編集
# Nginxの主要な配置ファイル(通常は/etc/nginx/nginx.confまたは/etc/nginx/sites-available/default)を開きます。
$ sudo nano /etc/nginx/sites-available/default
# サブディレクトリにアプリケーションをデプロイするための設定を追加します。以下の例では「/var/www/html/subdirectory」を参照しています。
server {
listen 80;
server_name example.com;
root /var/www/html/subdirectory;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # PHP-FPMのソケットファイルを指定
}
error_page 404 /404.html;
location = /404.html {
internal;
}
}
ステップ3: Nginx設定の適用と再起動
# 設定が正しく保存されていることを確認します。
$ sudo nginx -t
# 旧バージョンを無効にして新しい設定を有効化します(必要に応じて)。
$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
# Nginxを再起動して変更内容を適用します。
$ sudo systemctl restart nginx
ステップ4: 実践/トラブルシュート/監視
# デプロイが完了したら、ブラウザから「http://example.com/subdirectory」にアクセスして確認します。
$ curl http://example.com/subdirectory
# Nginxのログファイルをチェックして問題が発生していないか確認します。通常は「/var/log/nginx/error.log」に記録されます。
$ sudo tail -f /var/log/nginx/error.log
注意事項
- セキュリティ上の注意: すべてのファイルとディレクトリのアクセス権限を適切に設定し、不必要なアクセス権限は削除します。特にphpファイルやワードプレス関連のフォルダには書き込み権限がないようにしてください。
- パフォーマンス/運用上の注意: 複数のアプリケーションをサブディレクトリで管理する場合は、各アプリケーション固有のNginx設定ファイルを使用して管理しやすくします。
まとめ
1. 準備段階: WordPressファイルを適切なサブディレクトリに配置します。
2. Nginx設定: 設定ファイルに新しいデプロイ情報を追加し、必要に応じてシンボリックリンクを作成します。
3. 適用と確認: Nginxの再起動で変更を適用し、ブラウザやログファイルからデプロイが正常に行われていることを確認します。
関連記事: