結論から書きます。エックスサーバーの共用レンタルサーバーでは、Node.jsの常駐アプリケーションは動かせません。これは機能の不足ではなく、共用サーバーの設計上の制約です。ただし「Node.jsで作ったサイトが公開できない」わけではありません。静的サイトとして書き出す構成なら問題なく公開できます。ここでは何ができて何ができないかを整理します。できることの全体像はできること一覧をご覧ください。
判断の分かれ目は「サーバー上でNode.jsを動かし続ける必要があるか」です。
・静的サイトとして書き出す(Astro、Next.jsのSSGなど)→ 共用サーバーで公開できます
・サーバー側でNode.jsが常駐する(APIサーバー、SSR、リアルタイム通信)→ VPSが必要です
共用サーバーでできないこと
Node.jsに関して、共用レンタルサーバーでは次ができません。
| できないこと | 理由 |
|---|---|
| 常駐プロセスの実行 | 1台を複数の利用者で共有するため |
| ポートの開放 | 他の利用者に影響するため |
| root権限での操作 | サーバー全体に影響するため |
| 任意のミドルウェアのインストール | 同上 |
| Dockerの運用 | 同上 |
出典:エックスサーバー公式の機能一覧(2026年9月3日確認)。個別の技術要件は公式ページで確認が必要です。
これはエックスサーバーに限った話ではありません。共用レンタルサーバー全般に共通する制約です。1台のサーバーを多数の利用者で分け合う以上、誰か1人が常駐プロセスでリソースを占有したり、ポートを開けたりできない設計になっています。
それでも公開できるケース
「Node.jsを使って開発する」ことと「サーバー上でNode.jsを動かす」ことは別です。
静的サイトジェネレータなら問題なし
Astro、Next.js(静的書き出し)、Nuxt(静的書き出し)、Hugo、Eleventy などで作ったサイトは、共用サーバーで公開できます。
理由は単純で、最終的に生成されるのはHTML・CSS・JavaScriptのファイルだけだからです。サーバー側はそれを配信するだけで、Node.jsを動かす必要がありません。
| 工程 | 実行場所 |
|---|---|
| 開発 | 手元のパソコン |
| ビルド(HTML生成) | 手元のパソコン、またはGitHub Actionsなど |
| 配信 | 共用サーバー |
公開の流れ
- 1 手元でビルドする
npm run buildなどで静的ファイルを生成する。通常distやoutフォルダに出力される - 2 生成されたファイルをアップロードするFTPまたはサーバーパネルのファイルマネージャで、
public_html内に配置する - 3 表示を確認するhttpsでアクセスして、正しく表示されるか確認する
毎回手作業でアップロードするのが面倒な場合、GitHub Actionsなどから自動でアップロードする構成も組めます。SSHの公開鍵認証を設定し、pushしたら自動でビルド・配置する形です。設定はSSH接続の記事にまとめています。
VPSが必要になるケース
次の要件がある場合は、共用サーバーでは対応できません。
| 用途 | 必要なもの |
|---|---|
| APIサーバー | 常駐プロセス、ポート |
| サーバーサイドレンダリング(SSR) | 常駐プロセス |
| WebSocketによるリアルタイム通信 | 常駐プロセス、ポート |
| Discordボットなどの常時稼働アプリ | 常駐プロセス |
| Dockerを使った環境 | root権限 |
| 独自のミドルウェア | root権限 |
これらはVPS(仮想専用サーバー)の領域です。VPSなら自分専用の環境が与えられ、root権限で自由に設定できます。
ただし運用の手間は大きく変わります。
| 共用サーバー | VPS | |
|---|---|---|
| サーバーの設定 | 不要 | 自分で行う |
| セキュリティ対策 | サーバー会社が実施 | 自分で行う |
| ソフトウェアの更新 | 不要 | 自分で行う |
| 障害対応 | サーバー会社が対応 | 自分で対応 |
| 必要な知識 | 少ない | Linux の基礎知識 |
VPSは「自由な代わりに、すべて自分の責任」という環境です。サーバー管理の知識がないまま運用すると、セキュリティ上の問題を抱えることになります。
自分の要件を確認する
「Node.jsを使いたい」と思ったとき、本当に常駐プロセスが必要かを確認してください。
静的サイトで足りるケース
- ブログ、企業サイト、ポートフォリオ
- ドキュメントサイト
- ランディングページ
- 更新頻度が高くないコンテンツサイト
これらは静的サイトジェネレータで作り、共用サーバーで公開できます。むしろ静的サイトのほうが表示が速く、セキュリティ上のリスクも小さくなります。
常駐プロセスが必要なケース
- ユーザーごとに動的に内容が変わる(ログイン後の画面など)
- リアルタイムでデータをやり取りする
- 外部からAPIを呼ばれる
- 定期的にバックグラウンドで処理を実行する
「動的な処理が必要だからNode.jsが要る」とは限りません。共用サーバーではPHPが動きます。フォームの送信処理、データベースの読み書き、ログイン機能といった一般的な動的処理は、PHPで実装すれば共用サーバーで動きます。WordPressもPHPで動いています。
外部サービスと組み合わせる
常駐プロセスが必要な機能だけを、外部サービスに任せるという構成もあります。
| 必要な機能 | 代替案 |
|---|---|
| フォームの送信処理 | 外部のフォームサービス |
| 会員機能 | 外部の認証サービス |
| 検索機能 | 外部の検索サービス |
| コメント機能 | 外部のコメントサービス |
| 決済 | 外部の決済サービス |
サイト本体は共用サーバーの静的サイト、動的な機能は外部サービスという構成なら、VPSを契約せずに済みます。
この構成は「Jamstack」と呼ばれ、表示が速く、セキュリティ上のリスクも小さいという利点があります。
SSHでのコマンド実行について
エックスサーバーはSSH接続に対応しています。Node.jsのコマンドが使えるかは環境によるため、公式のヘルプで確認してください。
ただし、仮に一時的なコマンド実行ができたとしても、常駐プロセスを維持する用途には使えません。SSHのセッションが終わればプロセスも終了します。
SSHでできること・できないことはSSH接続の記事にまとめています。
まとめ
エックスサーバーの共用レンタルサーバーでは、Node.jsの常駐アプリケーションは動かせません。常駐プロセス、ポートの開放、root権限が使えないためで、これは共用サーバー全般に共通する制約です。
ただし「Node.jsで作ったサイトが公開できない」わけではありません。Astro、Next.jsの静的書き出しなどで作ったサイトは、生成されたHTMLをアップロードするだけで公開できます。この場合、サーバー側でNode.jsを動かす必要がありません。
判断の分かれ目は「サーバー上でNode.jsを動かし続ける必要があるか」です。静的サイトとして書き出せるなら共用サーバーで十分、APIサーバーやSSRが必要ならVPSの領域になります。
VPSは自由な代わりに、設定・セキュリティ・障害対応がすべて自分の責任になります。要件を満たすなら共用サーバーのほうが運用は楽です。
動的な機能が必要な場合も、PHPで実装するか外部サービスと組み合わせるという選択肢があります。まず本当に常駐プロセスが必要かを確認してください。