【簡単】GitHubでLaravelをXserverへデプロイする方法その1-SSH接続編-

laravel-deployment1

こちらの記事は、「GitHubでLaravelをXserver へデプロイする方法」のSSH接続に関する解説です。

laravel-deployment2【簡単】GitHubでLaravelをXserverへデプロイする方法 その2-クローン編-

なぜXserver なのか。それは私がXserver 大好きだから!!!

SSHとFTP?本番環境へファイルをアップロードする2種類の方法!

まず、Xserver にファイルをアップロードするに当たって、どのような通信方法があるのかご紹介します。

FTP(ファイル・トランスファー・プロトコル)

FTPは、名前の通りファイルを転送する通信技術です。Xserver が用意したFTPサーバーを通して、Webページのデータを書き換えることができます。

しかし、そのためにはクライアント側専用のソフトが必要です。ファイルのアップロードを行うためには、まずこの専用ソフトを手元のPCに用意しなければなりません。ソフトにはFFFTPやFileZillaというものがあります。

SSH(セキュア・シェル)

SSHも同じく通信技術で、外部のコンピューターにリモートで接続することができます。sshという暗号化されたルールを使うため、より安全な通信が行えるとのことです。

今回はこちらを使用します。まずは Xserver の設定から始めましょう。

SSH接続のためのXserver各種設定

Xserverのサーバーパネルにログインし、アカウント > SSH設定へ進みます。まずは、XserverのSSH接続をONに。

XserverのSSH設定をONにする

次に、公開鍵認証用鍵ペアの生成するため、半角英数字6~32字でパスフレーズを登録します。SSH接続のときに必要なので覚えておきましょう。忘れても再設定できますが、このあとの設定をし直す必要があります。

「確認画面へ進む」をクリック。

XserverのSSH設定

そして「生成する」をクリックすると、秘密鍵が自動的にダウンロードされます。秘密鍵の名前は、「XserverのユーザーID.key」になっています。(ここではuser.keyにしておきます)

XserverのSSH設定

【SSH接続】秘密鍵の設定3ステップ -ターミナル操作-

ここからターミナルをさわっていきます。

【SSH接続】秘密鍵の移動と名前変更

Last login: Tue Dec 17 09:08:36 on ttys000
You have new mail.
Me-no-MBP:~ Me$ 

ターミナルを開くと、はじめにこんなのが出てきますね。1行目は、前回ターミナルを開いた日時です。ttys000は、ターミナルを操作するときに割り当てられるIDのようなものらしいです。ターミナルをいくつも開けていると、ttys001、ttys002と増えていきます。

ではまず、.sshディレクトリを作成し、秘密鍵をそこへ移動します。

Me-no-MBP: ~ Me$ mkdir ~/.ssh
Me-no-MBP: ~ Me$ mv ~/Downloads/user.key ~/.ssh

mkdirは make directory の略で、ディレクトリを作成するコマンドです。

mvコマンドには2種類の意味があります。1つはファイル名/ディレクトリ名の変更、もう1つはファイル/ディレクトリの移動です。

例えば次のコマンドであれば、1つ目が名前の変更で、2つ目が移動です。

mv a.html b.html (a.htmlファイルをb.htmlに変更)
mv a.html b (a.htmlをbディレクトリに移動)

今回は.sshディレクトリを作成し、Downloadsに入っていたuser.keyを.sshディレクトリに移動しました。

次にuser.keyの名前を変更します。まずは.sshディレクトリに(自分が)移動します。自分が移動するには、cdコマンドを使います。

Me-no-MBP: ~ Me$ cd ~/.ssh
Me-no-MBP: .ssh Me$

さっきまで「~(チルダ)」ホームディレクトリにいましたが、今は.sshディレクトリにいます。では、mvコマンドで秘密鍵の名前を変更しましょう。

Me-no-MBP: .ssh Me$ mv user.key id_rsa

id_rsaというのは秘密鍵として使われる通称です。RSA暗号という仕組みを利用しています。サーバーをいくつも管理していて、秘密鍵も複数ある場合は別の名前でも問題ありません。

【SSH接続】秘密鍵の権限を変更する

権限を変更する際に使用するのがchmod(change mode)コマンドです。対象のディレクトリ・ファイルに対して、実行、編集、あるいは読み取りだけといった権限の範囲を変更できます。

  • 読み取り 4
  • 編集 2
  • 実行 1

のように、それぞれの権限に数字が割り当てられています。これらを、権限の範囲ごとに加算します。例えば、すべての権限を与えるなら7、実行と読み取りなら5、という具合です。

そして、所有者・グループ・その他のユーザーの順番に権限の数字を指定します。

今回は、次のように設定します。

Me-no-MBP: .ssh Me$ chmod 700 ~/.ssh
Me-no-MBP: .ssh Me$ chmod 600 ~/.ssh/id_rsa

0は権限なし、つまり所有者以外のユーザーには何も権限がないということです。

【SSH接続】簡単接続設定【最後にひと手間】

SSH接続は、ターミナルでsshコマンドを打って接続します。しかし、これが長い!!

ssh -i id_rsa xserver.xsrv.jp -p 10022

めんどくさい。そして、何も設定しないとすぐに接続が切れます。その度にまたこの長いコマンドを打たなくてはなりません。

そこで、簡単に自動切断なしの接続ができるように、「configファイルに設定を書き込む」という作業を行います。

まず、touchコマンドで.sshディレクトリの中にconfigという名前の新規ファイルを作成します。

Me-no-MBP: .ssh Me$ touch ~/.ssh/config

このままvimモードにして編集することもできますが、今回はファイルを直接操作します。.sshディレクトリを開きます。

Me-no-MBP: .ssh Me$ open .

macのFinderがひらいて、configファイルにアクセスして、テキストエディットなどで下記を追記します。

Host xserver
  HostName サーバーID.xsrv.jp
  Port 10022
  User サーバーID
  IdentityFile ~/.ssh/id_rsa
  ServerAliveInterval 60 

一行目Hostのとなりにある「xserver」は、SSH接続するときのコマンドです。

ssh xserver

と打つとエックスサーバーのサーバーに接続できます。自分でわかりやすい名前をつけておきましょう。

ServerAliveIntervalはサーバーの自動切断を防ぎます。60秒ごとにサーバーにメッセージを送って接続を確認し、3回応答がなければ切断されるようです。

これで準備完了です。

Me-no-MBP: ~ Me$ ssh xserver

と打つと、1回目はThe authenticity of host ‘サーバーID’ can’t be established.と出ます。このサーバー信頼できるかわかりませんけど?ほんまに繋ぎます??いうことですね。yesを入力して繋げると、秘密鍵のパスフレーズを聞かれるので答えます。パスフレーズが合っていれば無事繋がります♪

お疲れ様でした。

次はクローン編だよん

laravel-deployment2【簡単】GitHubでLaravelをXserverへデプロイする方法 その2-クローン編-

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)