投稿日:2024年9月30日

ローカルにインストールしたLaravelGitHub管理し、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と入力し編集モードを終了します。

GitHubSettingsから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

.envAPP_KEYを更新します。
これを行わないと500のサーバーエラーが出ます。

touch database/database.sqlite

SQLiteを作成します。

php artisan migrate

▲データベースを作ったのでmigrateします。

これでデプロイは完了です。
~/deploy_test/deploy_test/public/にアクセスすればLaravelが表示されます。

まとめ

色々なサイトを調べてようやくここまで至りました。
なかなかストレートに分かる記事がなく苦労しました。

ご覧のようにURLが良くなかったり、サブドメイン設定やシンボリックリンク設定など必要です。
次回以降も検証したいと思います。

最後までお読みいただき、ありがとうございます。

Laravel関連の記事

Pocket