開発環境構築

SFTPを使用してローカルで保存したソースコードをリモートサーバへ反映させる方法

hebishima.shogo

はい、hebiです。

Visual Studio Codeで修正したソースコードをCtrl +Sで保存した際に、瞬時にサーバに適用させる方法を記事にしたいと思います。

修正したソースコードをWinSCP等で適用するのはとてもめんどくさいので、この仕組みはとても便利です。

サーバ上のソースコードはバックアップされずに上書きされるので、ご注意ください。

環境はAmazon Linux 2023とします。

スポンサーリンク

サーバー側環境作成

ファイル転送を実現するために環境を構築します。

OpenSSHのインストール

ファイル転送を実現するためにOpenSSHをインストールします。

sudo yum install openssh-server
ポイント

私の場合、上記のコマンドを実行すると「already installed」と表示されました。Amazon Linux 2023にはデフォでインストールされているのかもしれません。

サービス起動

サービスを起動します。

sudo service sshd start

サービス自動起動設定

サーバーが再起動した際に自動的に立ち上がるように設定します。

sudo chkconfig sshd on

以上でサーバ側のインストールは完了です。

Visual Studio Codeの設定

Visual Studio Codeで保存した場合にソースコードを瞬時にアップするための設定を行います。

SFTP拡張機能のインストール

Visual Studio Codeの拡張機能「SFTP」をインストールします。

この拡張機能を使用すると、ローカルマシンとリモートサーバー間でファイルを同期することができます。

拡張機能に複数の「SFTP」がありました。この記事ではインストール数が多い方をインストールしています。

sftp.jsonファイル作成

Visual Studio Code上で「Ctrl + Shift + p」を押します。(Macの場合はCmd+Shift+P)
検索窓にsftp:configと入力して候補に出てくる「SFTP:Config」を選択すると、sftp.jsonが作成されます。

sftp.json修正

sftp.jsonを以下のように修正します。

{
    "name": "My Server",
    "host": "192.168.1.1",
    "protocol": "sftp",
    "port": 22,
    "username": "ec2-user",
    "remotePath": "/var/www/html/my_codeigniter_project",
    "privateKeyPath": "C:\\key\\codeigniter\\test.pem",
    "uploadOnSave": true,
    "ignore" : [
        "**/.vscode/**",
        "**/.git/**"
    ]
}
  • host:Amazon Linux 2023のIPまたはホスト名を入力します。
  • username:Amazon Linux 2023のログインユーザ名を入力します。
  • remotePath:サーバの保存先を入力します。
  • privateKeyPath:Amazon Linux 2023のEC2を作成した際のpemファイルのパスを入力します。
  • uploadOnSave:trueにするとローカルマシンでファイルを変更して保存すると、変更内容が即座にリモートサーバーに反映されます。
  • ignore:除外したいフォルダを指定します。

以上でVisual Studio Codeの設定完了です。

ソースコード転送確認

ではソースコードを保存してサーバ上に転送されることを確認してみましょう!

「出力」「sftp」の状態でCtrl + Sで保存すると、local → remoteのようなログが表示されます。

サーバ上のソースコードを開いて確認してみましょう!

変更した内容が適用されていると思います!

最後に

うまく転送されましたでしょうか?


この設定を行うことで、修正したらUP、修正したらUP…..のようなめんどくさい作業はなくなると思います。


ぜひ利用してみてください。

最後までお読みいただきありがとうございました(^^)/

スポンサーリンク
ABOUT ME
hebi
hebi
エンジニア
フルスタックエンジニアとして活躍中。
HTML5プロフェッショナル認定Level1、Level2所持者です。

未経験の方でも簡単にプログラミングを学べるようにと情報を発信しております。
記事URLをコピーしました