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】エックスサーバー(Docker & メインドメイン)でデプロイ手順

Last updated at Posted at 2025-09-17

最初に

サブドメインをデプロイさせたい場合はこちら ↓

0. 準備

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

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

1. 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

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

2. Xserverを初期化(1回目に色々設定をいじり、メインドメインへのデプロイ2回目以降の場合)

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

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

3. Git clone

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

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

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

結果:

[honaki@sv12345 アプリ名]$ ls
docker  docker-compose.yml  src

[honaki@sv12345 アプリ名]$ pwd
/home/honaki/メインドメイン/アプリ名

[honaki@sv12345 アプリ名]$ ls src
README.md  artisan    composer.json  config    lang               package.json  postcss.config.js  resources  storage             tests
app        bootstrap  composer.lock  database  package-lock.json  phpunit.xml   public             routes     tailwind.config.js  vite.config.js

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

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

cd /home/akkun1114/メインドメイン/

cp アプリ名/src/public/index.php /home/akkun1114/メインドメイン/public_html/
cp アプリ名/src/public/.htaccess /home/akkun1114/メインドメイン/public_html/

Laravelとしては
アプリ名/src/public/index.php にアクセスしてほしいけど、
サーバーとしては
public_html/index.php にしかアクセスできない。
だから、
cp アプリ名/src/public/index.php /home/akkun1114/メインドメイン/public_html/でLaravelをここから起動させる。
そして、
cp アプリ名/src/public/.htaccess /home/akkun1114/メインドメイン/public_html/でURLをいい感じに制御する。

5. index.php を修正

cd /home/akkun1114/メインドメイン/public_html

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

vi index.php

# 編集モード
i



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


# 修正後(フルパスにする)
$base = '/home/akkun1114/メインドメイン/アプリ名/src';

require $base . '/vendor/autoload.php';
$app = require_once $base . '/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 を使ってリクエストの処理がスタートする。

6. envの設定

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

src内で行う

以下を参考に

[honaki@sv12345 アプリ名]$ ls
docker  docker-compose.yml  src

[honaki@sv12345 アプリ名]$ pwd
/home/honaki/honaki.com/アプリ名

[honaki@sv12345 アプリ名]$ ls src
README.md  artisan    composer.json  config    lang               package.json  postcss.config.js  resources  storage             tests
app        bootstrap  composer.lock  database  package-lock.json  phpunit.xml   public             routes     tailwind.config.js  vite.config.js

7. Composer install

cd /home/akkun1114/メインドメイン/アプリ名/src
# 本番用
composer install --no-dev --optimize-autoloader

8. Laravelコマンド実行

php artisan key:generate
php artisan storage:link

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

9. npm 系コマンド

npm install
npm run build

10. データベース初期化

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

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

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

cp -r public/build /home/akkun1114/akkun1114.com/public_html

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

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

cd /home/akkun1114/メインドメイン/public_html

ln -s /home/akkun1114/メインドメイン/アプリ名/src/storage/app/public storage
# ↑ この操作は、↓ リンク(=ショートカット)を作成する
# /home/akkun1114/メインドメイン/public_html/storage → /home/akkun1114/メインドメイン/アプリ名/src/storage/app/public

13. index.html の削除

cd /home/akkun1114/メインドメイン/public_html

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

14. 初期画像がある場合

15. Gmailで再設定を実行する場合

参考:ディレクトリ構成

xserver_src_layout_with_docker.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?