0. 準備
↑ 上記の講座の ↓ 以下内容を済ませておく。
セッション2 | セッション3 | セッション4 |
---|---|---|
SSHによるサーバーへの接続 | アプリ実行中に利用されるPHPの設定 | Gitの設定 |
コンソール上で利用されるPHPの設定 | composerのバージョンアップ | |
データベース(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
結果:
[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
6. public/index.php, .htaccess をルートへコピー
Laravelアプリをサーバーのルートドメイン(https://xxx.com) で直接アクセスできるようにするための作業
cd /home/akkun1114/メインドメイン/アプリ名/src
cp public/index.php /home/akkun1114/メインドメイン/public_html/サブドメイン/
cp public/.htaccess /home/akkun1114/メインドメイン/public_html/サブドメイン/
7. 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 を使ってリクエストの処理がスタートする。
8. envの設定
セッション4:Laravelの導入:3:10~の箇所(コピーから)
src内で行う
以下を参考に
[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
9. Composer install
cd /home/akkun1114/メインドメイン/アプリ名/src
# 本番用
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/メインドメイン/public_html/サブドメイン
14. storage シンボリックリンク作成
Laravelで保存した画像などのファイルをWebブラウザからアクセス可能にするための操作
cd /home/akkun1114/メインドメイン/public_html/サブドメイン
ln -s /home/akkun1114/メインドメイン/アプリ名/src/storage/app/public /home/akkun1114/メインドメイン/public_html/サブドメイン/storage
15. index.html の削除
cd /home/akkun1114/メインドメイン/public_html/サブドメイン
rm index.html
# あとで使う場合は、名前を変更
# mv index.html index.html.bak
16. 初期画像がある場合
17. Gmailで再設定を実行する場合