0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】エックスサーバー(サブドメイン)でデプロイ手順

Last updated at Posted at 2025-04-16

前提

・この手順は、XserverのサブドメインへLaravelアプリを公開する場合を基本

0. 準備

↑ 上記の講座の ↓ 以下内容を済ませておく。

セッション2 セッション3 セッション4
SSHによるサーバーへの接続 アプリ実行中に利用されるPHPの設定 Gitの設定
コンソール上で利用されるPHPの設定 composerのバージョンアップ
データベース(MySQL)の作成
データベース(MySQL)の作成

1. サブドメイン作成

エックスサーバーのサーバーパネルでログイン

「サブドメイン設定」をクリック

以下画像箇所を入力
スクリーンショット 2025-04-16 9.16.10.png

「確認画面に進む」→「追加する」

2. SSHによるサーバーへの接続(SSH接続)

「XXX.key」ファイルがある階層で行う

pwd
 /Users/(ユーザー名)/Laravel/Xserver

→ Xserverの後に「/XXX.key」がある状態
スクリーンショット 2025-04-15 15.39.58.png

ssh -i XXX.key (サーバーID)@(サーバー情報).xserver.jp -p 10022

自身で設定した(パスフレーズ)を入力

3. Xserverを初期化(メインドメインやサブドメインを全部初期化したい場合)

エックスサーバーのサーバーパネル「ログイン」→「ドメイン設定」で行う。
まずは「初期化」をクリック
スクリーンショット 2025-04-15 15.49.32.png

「ドメイン設定の初期化」をクリック → 「確認画面へ進む」をクリック → 「実行する」
スクリーンショット 2025-04-15 15.52.07.png

4. ドキュメントルートの確認

↓ が存在すればOK

/home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com

5. Git clone

# 階層移動
cd /home/(ユーザー名)/(メインドメイン)
例) /home/akkun1114/akkun1114.com

# clone(githubの画像のようにコピーしたのをペーストすればOK)
git clone git@XXX

スクリーンショット 2025-04-15 15.57.42.png

6. public/index.php, .htaccess をルートへコピー

Laravelアプリをサーバーのルートドメイン(https://example.com)で直接アクセスできるようにするための作業

cd /home/akkun1114/akkun1114.com/EXP-alert

cp public/index.php /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/
cp public/.htaccess /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com/

7. index.php を修正

cd /home/akkun1114/akkun1114.com/public_html/exp-alert.akkun1114.com

# index.phpがあるか確認
ll -a

vi index.php

# 編集モード
i



// 修正前
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

// 修正後(フルパスにする)
require '/home/akkun1114/akkun1114.com/EXP-alert/vendor/autoload.php';
$app = require_once '/home/akkun1114/akkun1114.com/EXP-alert/bootstrap/app.php';



# 保存、終了
esc
:wq

「vendor/autoload.php」の解説

「require '/home/.../vendor/autoload.php';」の部分

✔ 何してる?
・Composerのオートローダーを読み込んでます。
・Laravel本体・依存パッケージ(例:illuminate, guzzle, faker など)を使えるようにしてる。
・あらゆるuse クラス名やnew クラス名を自動で探して読み込むための仕組み。
・Laravel以外のPHPプロジェクトでも Composer を使っていればこのファイルはほぼ絶対使います。

「bootstrap/app.php」の解説

「$app = require_once '/home/.../bootstrap/app.php';」の部分

✔ 何してる?
・Laravelアプリケーション本体(Applicationインスタンス)を作成しています。
・サービスコンテナのインスタンスを $app に代入。
・ここで HTTPカーネルやCLIカーネルなどの初期バインドが行われる。
・この $app を使ってリクエストの処理がスタートする。

8. envの設定

セッション4:Laravelの導入:3:10~の箇所(コピーから)

9. Composer install

cd /home/akkun1114/akkun1114.com/EXP-alert
# 本番用
composer install --no-dev --optimize-autoloader

10. Laravelコマンド実行

php artisan key:generate
php artisan storage:link

# その他
# 画像圧縮の場合
composer require intervention/image

11. npm 系コマンド

npm install
npm run build

12. データベース初期化

php artisan migrate:fresh --seed

# 2回目以降行う場合で画像を削除したい場合(以下URLを参照)
php artisan storage:clear-item-images
php artisan migrate:fresh --seed

13. Vite build ファイルをルートへコピー

Laravel + Vite でビルドされたアセットファイル(CSS・JSなど)をサーバーの公開領域に配置するための操作
※ npm run build を実行した後に行う

cp -r public/build /home/akkun1114/akkun1114.com/public_html/サブドメイン名

14. storage シンボリックリンク作成

Laravelで保存した画像などのファイルをWebブラウザからアクセス可能にするための操作

cd /home/akkun1114/akkun1114.com/public_html/サブドメイン名

ln -s /home/akkun1114/akkun1114.com/EXP-alert/storage/app/public /home/akkun1114/akkun1114.com/public_html/サブドメイン名m/storage

15. index.html の削除

cd /home/akkun1114/akkun1114.com/public_html/サブドメイン名

rm index.html
# あとで使う場合は、名前を変更
# mv index.html index.html.bak

参考:ディレクトリ構成

ChatGPT Image 2025年4月16日 10_16_00.png
スクリーンショット 2025-04-16 10.17.20.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?