投稿日:2024年9月30日
ローカルにインストールしたLaravelをGitHub管理し、GitHubからさくらサーバーへデプロイ(クローン)したことを備忘録として書き残しておきます。
GitHubアカウントを所持していることを前提とします。
手順
❶ Laravel リモートリポジトリへプッシュ

▲cdで任意のディレクトリに移動し、Laravelをインストールします。
今回はdeploy_testというプロジェクト名にしました。

▲Laravelがインストールされました。

▲Github管理するため、Sourcetreeを使い新規ローカルリポジトリを作成します。

▲ディレクトリを指定しリモートリポジトリも作成するにチェックして作成します。

▲GitHubのアカウントを指定します。
今回はプライベートリポジトリにします。

▲リポジトリができました。ダブルクリックして開きます。

▲コミットしプッシュします。

▲プッシュ先を確認しOKをクリックします。

▲プッシュされました。
❷ GitHubのSSH接続
前回のブログではSSHでのさくらサーバーへの接続の際にはパスワードを使ってログインしました。
GitHubへのアクセスには秘密鍵と公開鍵が必要になります。
SSHでさくらサーバーに接続し、鍵の設置場所へ移動し秘密鍵と公開鍵を作成します。
ssh xxxxx@xxxxx.sakura.ne.jp
▲Macの場合、ターミナルを起動しさくらサーバーへ接続します。
cd ~/.ssh/
▲上記を入力します。
不可視ディレクトリの.sshが鍵の設置場所になります。
ssh-keygen -t rsa
▲上記を入力し秘密鍵と公開鍵を作成します。

▲この表示のままエンターを押します。

▲任意でパスフレーズを入力します。未入力でクリックすると空欄で設定されます。
今回は空欄で進めます。

▲この表示が出れば完了です。

▲lsで中身を確認してみましょう。
id_rsaが秘密鍵。id_rsa.pubが公開鍵になります。
▼viコマンドでid_rsa.pubを開きます。
vi id_rsa.pub

▲開いた公開鍵をコピーし、GitHubの設定画面に貼り付けます。
コピーしたら:wqと入力し編集モードを終了します。

▲GitHubのSettingsからSSH and GPS keysに入り任意のタイトルを入力。先ほどの公開鍵をKeyに貼り付けAdd SSH keyをクリックします。

▲公開鍵が設定されました。
▼下記コマンドを入力し接続テストを行います。
ssh -T git@github.com

▲ターミナルでこの表示が出れば接続成功です。
❸ さくらサーバーへデプロイ
LaravelのデプロイはGitHubからクローンという形で行います。
SSHでさくらサーバーへ接続後、cdでデプロイしたいディレクトリに移動します。
移動したらクローンを行うディレクトリを作成します。
下記コマンドでGitHubからのクローンを行います。
mkdir deploy_test
▲今回はdeploy_testというディレクトリにクローンを行います。
▼下記のコマンドでクローンします。
git clone git@github.com:onebitious/deploy_test.git
クローンを行なってもLaravelに必要なvenderフォルダと.envファイル、database.sqlite(Laravel11をインストールした場合、データベースはデフォルトでSQLiteになっています。)はデプロイされません。
それぞれ対処しましょう。
❹ デプロイ後の調整
cd deploy_test
▲先ほど作成したディレクトリに移動します。
composer.phar install
▲vendorをインストールするためcomposerをインストールします。
cp .env.example .env
▲.env.exampleを複製し.envを作成します。
.envを開いて必要な設定に変更します。
php artisan key:generate
▲.envのAPP_KEYを更新します。
これを行わないと500のサーバーエラーが出ます。
touch database/database.sqlite
▲SQLiteを作成します。
php artisan migrate
▲データベースを作ったのでmigrateします。
これでデプロイは完了です。
~/deploy_test/deploy_test/public/にアクセスすればLaravelが表示されます。

色々なサイトを調べてようやくここまで至りました。
なかなかストレートに分かる記事がなく苦労しました。
ご覧のようにURLが良くなかったり、サブドメイン設定やシンボリックリンク設定など必要です。
次回以降も検証したいと思います。
最後までお読みいただき、ありがとうございます。