前提
・この手順は、XserverのサブドメインへLaravelアプリを公開する場合を基本
0. 準備
↑ 上記の講座の ↓ 以下内容を済ませておく。
セッション2 | セッション3 | セッション4 |
---|---|---|
SSHによるサーバーへの接続 | アプリ実行中に利用されるPHPの設定 | Gitの設定 |
コンソール上で利用されるPHPの設定 | composerのバージョンアップ | |
データベース(MySQL)の作成 | ||
データベース(MySQL)の作成 |
1. サブドメイン作成
エックスサーバーのサーバーパネルでログイン
↓
「サブドメイン設定」をクリック
↓
以下画像箇所を入力
↓
「確認画面に進む」→「追加する」
2. SSHによるサーバーへの接続(SSH接続)
「XXX.key」ファイルがある階層で行う
pwd
→ /Users/(ユーザー名)/Laravel/Xserver
↓
ssh -i XXX.key (サーバーID)@(サーバー情報).xserver.jp -p 10022
↓
自身で設定した(パスフレーズ)を入力
3. Xserverを初期化(メインドメインやサブドメインを全部初期化したい場合)
エックスサーバーのサーバーパネル「ログイン」→「ドメイン設定」で行う。
まずは「初期化」をクリック
↓
「ドメイン設定の初期化」をクリック → 「確認画面へ進む」をクリック → 「実行する」
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
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