Server

XServerへPHPサイトをSSHで公開する手順

執筆・編集:遊馬 祥一郎公開:内容更新:

この記事には広告(アフィリエイトリンク)を含みます。

ファイルを手作業で毎回アップロードせず、公開対象を確認しながらサーバーへ同期する方法です。接続情報を公開しないための管理と、反映後に見るポイントを整理します。

ローカルのサイトファイルをSSHでサーバーへ安全に公開し、公開サイトを確認する流れを表したイラスト
説明用のイラストです。公開作業は、接続情報の管理、同期、ブラウザ確認までを一連の手順として残しておくと安全です。

このサイトで行っている公開の考え方

ホームページ運用ナビでは、公開用の接続情報をサイトのソースファイルに書かず、ローカルにだけ置く設定ファイルとSSH鍵を使って公開しています。現在は本番との差分を一覧化し、非公開の候補環境で検査してから、その検査に合格したファイルだけを公開する構成です。rsyncの転送成功だけを公開完了とは扱っていません。

大切なのは、便利なコマンドを使うことよりも、どのファイルが公開されるかを把握することです。設定ファイル、下書き、秘密情報、不要なOSファイルは同期対象から外します。

1. 接続情報を公開対象から分ける

FTPやSSHのパスワード、秘密鍵、サーバーの接続情報をHTMLやPHPファイルに直接書くと、誤って公開したときに取り返しがつきません。接続情報は、サイト本体とは別のローカル設定ファイルに置き、公開時だけ読み込ませます。

  • 秘密鍵や接続設定は、公開フォルダに置かない
  • ローカル設定ファイルはバージョン管理や同期の対象から外す
  • 公開先のパスを、ドメインごとに確認してから実行する
  • 作業者が変わっても確認できるよう、公開手順を短く残す

2. rsyncはドライランで対象と行き先を確認する

次は転送対象を確認するための説明用コマンドです。--dry-runが付いているためファイルは書き換えません。SSH接続は行われます。USER・SERVER・鍵・公開先は仮の値なので、自分の契約の情報と照合してから使います。接続エラーを解消するためにホスト鍵の検証を無効化しないでください。

rsync -az --dry-run --itemize-changes \
  --exclude='.git/' \
  --exclude='.DS_Store' \
  --exclude='drafts/' \
  --exclude='.env*' \
  --exclude='*.key' \
  --exclude='*.pem' \
  --exclude='contact-config.php' \
  -e "ssh -p 10022 -i ~/.ssh/site_deploy_key" \
  ./public-export/ USER@SERVER:/home/USER/example.com/public_html/

public-export/は、公開してよいファイルだけを別途そろえたフォルダの例です。除外名を列挙するだけでは、別名の秘密情報やバックアップの混入を防ぎ切れません。表示された候補の全件を確認します。元フォルダ末尾の/は、中身を宛先へコピーする意味で、付けない場合とは階層が変わります。

エックスサーバーの公式SSH案内では、公開鍵認証・SSH設定の有効化・接続ポート10022が示されています(2026年10月8日確認)。契約サービスによって前提が違うため、自分の管理画面で照合してください。ドライランの意味はrsync公式マニュアルでも確認できます。

候補に意図しないファイルが1件でもあれば、その時点で止めます。実際に反映する前には、対象ファイルの退避と、同じ条件での候補環境の検査を済ませます。--dry-runを外すと書き込みになるため、確認なしにそのまま実行しないでください。削除同期はこの手順に含めません。

3. 公開後はブラウザで確認する

同期が成功した時点では、まだ公開が完了していない場合があります。PHPのエラー、権限、キャッシュ、リンク切れは、サーバー上でファイルが更新されていてもブラウザで初めて気付くことがあります。

  1. トップページを開く: 期待したデザインと本文が表示されるか確認します。
  2. 主要ページを開く: 記事、プロフィール、プライバシーポリシー、問い合わせページを確認します。
  3. フォームを確認する: 送信前の入力表示と、受信先メールの設定を確認します。
  4. スマホでも開く: 画像、表、ボタンが押しやすく表示されるかを見ます。

4. 反映しないときの確認順

更新したはずの内容が見えないときは、まず公開先ディレクトリと同期元フォルダを確認します。その後、ブラウザのキャッシュ、PHPエラー、ファイルの権限、ドメイン設定を順に見ます。

接続情報やサーバーの設定を記事やSNSに貼らないことも重要です。調査のために画面を共有する場合は、サーバーID、メールアドレス、鍵のパス、IPアドレスなどを伏せてください。

当サイトの実例:8ファイルを検査してから公開した

2026年10月8日、バックアップと広告掲載の記事を改訂した際は、記事2点・一覧データ1点・資料5点の計8ファイルだけを反映しました。次の数値は当サイトの公開記録であり、上の一般化したrsync例だけで実現する機能ではありません。

表は横にスクロールできます。

2026年10月8日の記事更新で実施した順序
段階実際に確認したこと次へ進める条件
差分変更8ファイル。削除なし秘密設定や別作業のファイルを含めない
候補検査PHP123ファイル、描画103ページの検査で問題0件本番へ書き込まず候補だけを検査
反映検査済みの同じ差分だけ公開検査後の変更・競合があれば停止
公開後記事応答と資料5点のSHA-256一致不一致なら復旧対象を確認

サーバー上の候補環境ではメール送信を無効にし、リンクやPHPの描画を検査しました。実際の通知メール到着、WordPressのDB復旧、すべての端末の動作を確認した記録ではありません。公開後の確認範囲は分けて残します。

戻す場合は、変更前に退避した同じファイル群を対象にします。公開後に別の編集が入ったら、古い一式を上書きせず差分を確認します。フォームの受信データやDBは、このファイル復旧には含まれません。3ファイルの復元検証では、保存物の照合方法を確認できます。

PR

XServerのSSH・公開機能を公式で確認する

当サイトはエックスサーバーで運用しており、この記事の流れでSSHを使って更新しています。SSHの利用条件、サーバー機能、料金、契約条件は変わる場合があります。利用前に公式情報で自分の契約プランと設定方法を確認してください。

エックスサーバー

公開作業は、毎回同じ手順で確認できる状態にしておくと、更新の怖さが減り、サイト改善に時間を使いやすくなります。
運営者の実務メモ

上書きする前に、今のファイルを残しておく

SSHで公開するときは、いきなり本番のフォルダに上書きせず、先に今のファイルを残してから入れ替えるようにしていました。上書きしたあとに不具合が見つかっても、すぐ元に戻せるためです。

運営者の実務経験にもとづくメモです。すべての場合に当てはまるとは限りません。

公開日: 2026-09-08

最終更新日: 2026-10-08

追記履歴

  • 2026-10-08 SSHポート、ドライラン、公開対象の制限を訂正し、実際の8ファイル公開と復旧判断を追加。
  • 2026-09-08 初版公開
  • 2026-09-08 自社運用メディアでの公開フローをもとに、接続情報の管理と公開後確認を追記