本記事は、XサーバーとGitHubの連携作業の続編として、リモートサーバー上でのSSH鍵生成、WordPressテーマディレクトリへの移動、そしてGitリポジトリの初期化からGitHubへのプッシュまでの手順を記録した備忘録です。なお、個人情報や固有の名称は{サーバーID}、{ドメイン名}、{GitHubリポジトリ}などのプレースホルダーに置き換えています。
リモートサーバーへのSSHログイン
まず、ローカル環境からリモートサーバーへ接続します。以下は、{サーバーID}の鍵ファイル{サーバーID}.key を利用した接続例です。よく使うのでドキュメントなどに保存しておくと便利です。
PS C:\Users\ユーザー名\.ssh> ssh -l {サーバーID} -i {サーバーID}.key {サーバーID}.xsrv.jp -p 10022
Enter passphrase for key '{サーバーID}.key':
パスフレーズ入力後、正常にログインでき、リモートサーバー上のシェルが利用可能になります。
SSH鍵の生成
リモートサーバー上で、GitHub連携用の新たなSSH鍵を生成します。今回はRSA方式、鍵長4096ビットで鍵ペアを作成します。
[{サーバーID}@{旧ホスト名} ~]$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/{サーバーID}/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/{サーバーID}/.ssh/id_rsa.
Your public key has been saved in /home/{サーバーID}/.ssh/id_rsa.pub.
この操作により、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されます。公開鍵は後ほどGitHubのSSHキー登録で利用します。
公開鍵の確認
生成された公開鍵を確認し、必要に応じてコピーします。
[{サーバーID}@{旧ホスト名} ~]$ cat $HOME/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/… (以下省略) … {サーバーID}@{旧ホスト名}
この公開鍵をGitHubのリポジトリ設定(もしくはアカウント設定)に登録することで、パスフレーズ付きの鍵を利用した認証が可能となります。
Webサーバー上のディレクトリ移動
次に、Webサイトのディレクトリに移動し、WordPressのテーマディレクトリへアクセスします。
以下は、{サーバーID}.co.jp ドメインの公開ディレクトリ内の作業例です。
[{サーバーID}@{旧ホスト名} ~]$ cd {サーバーID}.co.jp
[{サーバーID}@{旧ホスト名} {サーバーID}.co.jp]$ ls
autoreply htpasswd log mail public_html script xserver_php
[{サーバーID}@{旧ホスト名} {サーバーID}.co.jp]$ cd public_html
[{サーバーID}@{旧ホスト名} public_html]$ ls
index.php wp-admin wp-content …(その他WordPress関連ファイル)
[{サーバーID}@{旧ホスト名} public_html]$ cd wp-content
[{サーバーID}@{旧ホスト名} wp-content]$ ls
plugins themes uploads …(その他ディレクトリ)
[{サーバーID}@{旧ホスト名} wp-content]$ cd themes
[{サーバーID}@{旧ホスト名} themes]$ ls
emanon-premium emanon-premium-child index.php
この例では、WordPressテーマが配置されている「themes」ディレクトリ内で作業を行います。
Gitリポジトリの初期化と連携
Gitリポジトリの初期化
対象ディレクトリ内でGitリポジトリを初期化します。
[{サーバーID}@{旧ホスト名} themes]$ git init
Initialized empty Git repository in /home/{サーバーID}/{ドメイン名}/public_html/wp-content/themes/.git/
ブランチ名の調整とリモートリポジトリの登録
初期状態では「master」ブランチとなっている場合があるため、ブランチ名を「main」に変更します。
[{サーバーID}@{旧ホスト名} themes]$ git branch -M main
[{サーバーID}@{旧ホスト名} themes]$ git branch
* main
その後、GitHub上に作成済みの{GitHubリポジトリ}をリモートとして登録します。
[{サーバーID}@{旧ホスト名} themes]$ git remote add origin git@github.com:{GitHubユーザー名}/{GitHubリポジトリ}.git
既に同じ名前のリモートが登録されている場合は、登録済みリモートを利用してください。
ファイルのステージングとコミット
すべての変更をステージングし、コミットします。初回コミット前にGitユーザー情報が未設定の場合、以下の設定を行います。
[{サーバーID}@{旧ホスト名} themes]$ git config --global user.email "tsubasa@{ドメイン名}"
[{サーバーID}@{旧ホスト名} themes]$ git config --global user.name "{GitHubユーザー名}"
その後、ファイルを追加してコミットします。
[{サーバーID}@{旧ホスト名} themes]$ git add .
[{サーバーID}@{旧ホスト名} themes]$ git commit -m 'push'
コミット完了後、ログで変更内容が表示されます(例:584ファイルが追加され、数十万行の挿入など)。
GitHubへのプッシュ
最終的に、リモートリポジトリへブランチ「main」をプッシュします。
[{サーバーID}@{旧ホスト名} themes]$ git push -u origin main
Counting objects: 676, done.
Delta compression using up to 128 threads.
Compressing objects: 100% (665/665), done.
Writing objects: 100% (676/676), 1.45 MiB | 0 bytes/s, done.
Total 676 (delta 186), reused 0 (delta 0)
remote: Resolving deltas: 100% (186/186), done.
To git@github.com:{GitHubユーザー名}/{GitHubリポジトリ}.git
* [new branch] main -> main
Branch main set up to track remote branch main from origin.
これにより、リモートの{GitHubリポジトリ}にテーマファイルがアップロードされ、今後のGit管理・連携が可能となります。
まとめ
今回の作業では、リモートサーバー上での以下のステップを実施しました。
- SSHログインによりサーバーへ接続
- GitHub連携用のSSH鍵(RSA 4096ビット)の生成と公開鍵の確認
- WordPressサイトのディレクトリ内({ドメイン名}のpublic_html/wp-content/themes)でGitリポジトリの初期化
- ブランチ名の変更(master → main)とリモートリポジトリの設定
- ファイルのコミットとGitHubへのプッシュ
以上の手順により、{サーバーID}上のWordPressテーマがGitHubに連携され、効率的なバージョン管理とチームでの共同作業が実現しました。
株式会社ピクシスでは、こうした技術情報の共有を通じて、業務効率の向上と最新技術の普及に努めています。
皆様のお役に立てれば幸いです。