XServerへPHPサイトをSSHで公開する手順
この記事には広告(アフィリエイトリンク)を含みます。
ファイルを手作業で毎回アップロードせず、公開対象を確認しながらサーバーへ同期する方法です。接続情報を公開しないための管理と、反映後に見るポイントを整理します。
この記事には広告(アフィリエイトリンク)を含みます。
ファイルを手作業で毎回アップロードせず、公開対象を確認しながらサーバーへ同期する方法です。接続情報を公開しないための管理と、反映後に見るポイントを整理します。
ホームページ運用ナビでは、公開用の接続情報をサイトのソースファイルに書かず、ローカルにだけ置く設定ファイルとSSH鍵を使って公開しています。現在は本番との差分を一覧化し、非公開の候補環境で検査してから、その検査に合格したファイルだけを公開する構成です。rsyncの転送成功だけを公開完了とは扱っていません。
大切なのは、便利なコマンドを使うことよりも、どのファイルが公開されるかを把握することです。設定ファイル、下書き、秘密情報、不要なOSファイルは同期対象から外します。
FTPやSSHのパスワード、秘密鍵、サーバーの接続情報をHTMLやPHPファイルに直接書くと、誤って公開したときに取り返しがつきません。接続情報は、サイト本体とは別のローカル設定ファイルに置き、公開時だけ読み込ませます。
次は転送対象を確認するための説明用コマンドです。--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を外すと書き込みになるため、確認なしにそのまま実行しないでください。削除同期はこの手順に含めません。
同期が成功した時点では、まだ公開が完了していない場合があります。PHPのエラー、権限、キャッシュ、リンク切れは、サーバー上でファイルが更新されていてもブラウザで初めて気付くことがあります。
更新したはずの内容が見えないときは、まず公開先ディレクトリと同期元フォルダを確認します。その後、ブラウザのキャッシュ、PHPエラー、ファイルの権限、ドメイン設定を順に見ます。
接続情報やサーバーの設定を記事やSNSに貼らないことも重要です。調査のために画面を共有する場合は、サーバーID、メールアドレス、鍵のパス、IPアドレスなどを伏せてください。
2026年10月8日、バックアップと広告掲載の記事を改訂した際は、記事2点・一覧データ1点・資料5点の計8ファイルだけを反映しました。次の数値は当サイトの公開記録であり、上の一般化したrsync例だけで実現する機能ではありません。
表は横にスクロールできます。
| 段階 | 実際に確認したこと | 次へ進める条件 |
|---|---|---|
| 差分 | 変更8ファイル。削除なし | 秘密設定や別作業のファイルを含めない |
| 候補検査 | PHP123ファイル、描画103ページの検査で問題0件 | 本番へ書き込まず候補だけを検査 |
| 反映 | 検査済みの同じ差分だけ公開 | 検査後の変更・競合があれば停止 |
| 公開後 | 記事応答と資料5点のSHA-256一致 | 不一致なら復旧対象を確認 |
サーバー上の候補環境ではメール送信を無効にし、リンクやPHPの描画を検査しました。実際の通知メール到着、WordPressのDB復旧、すべての端末の動作を確認した記録ではありません。公開後の確認範囲は分けて残します。
戻す場合は、変更前に退避した同じファイル群を対象にします。公開後に別の編集が入ったら、古い一式を上書きせず差分を確認します。フォームの受信データやDBは、このファイル復旧には含まれません。3ファイルの復元検証では、保存物の照合方法を確認できます。
当サイトはエックスサーバーで運用しており、この記事の流れでSSHを使って更新しています。SSHの利用条件、サーバー機能、料金、契約条件は変わる場合があります。利用前に公式情報で自分の契約プランと設定方法を確認してください。
自分で進めるのが難しい場合は、運営者の制作・設定サポートの対応範囲と料金も確認できます。
SSHで公開するときは、いきなり本番のフォルダに上書きせず、先に今のファイルを残してから入れ替えるようにしていました。上書きしたあとに不具合が見つかっても、すぐ元に戻せるためです。
運営者の実務経験にもとづくメモです。すべての場合に当てはまるとは限りません。
公開日: 2026-09-08
最終更新日: 2026-10-08
追記履歴