てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

今回構築する環境は Laravel 11 + Breeze ( React/TypeScript + Vite ) という 環境を 構築する方法を紹介します

使用した環境

今回使用したサーバーは sv16001.xserver.jp 以降のサーバーです
このサーバーでは Node.js の導入が 比較的簡単に行えます

sv16001.xserver.jp 以降のサーバーのサービス仕様について │ エックスサーバー
https://www.xserver.ne.jp/spec_sv16001.php

sv16000.xserver.jp 以前のサーバー では 新しい バージョンの Node.js が nodebrew では 導入 できません
この場合 unofficial-builds を 使って インストール する必要があります

Node.js unofficial-builds project - GitHub
https://github.com/nodejs/unofficial-builds

bashrc 作成

~/<ドメイン名>/deploy/<公開ドメイン名>/.bashrc に ファイル を 作成
( すでにあれば作成不要 )

export PATH=$HOME/<ドメイン名>/.bin:$PATH

export NODEBREW_ROOT=$HOME/<ドメイン名>/.bin/nodebrew
export PATH=$HOME/<ドメイン名>/.bin/nodebrew/current/bin:$PATH

php 8.3 導入

~/<ドメイン名>/.bin に ディレクトリ を 作成
( すでにあれば作成不要 )

source ~/<ドメイン名>/deploy/<公開ドメイン名>/.bashrc
cd ~/<ドメイン名>/.bin/

ln -s /opt/php-8.3/bin/php .

Composer 導入

~/<ドメイン名>/.bin に ディレクトリ を 作成
( すでにあれば作成不要 )

source ~/<ドメイン名>/deploy/<公開ドメイン名>/.bashrc
cd ~/<ドメイン名>/.bin/

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

mv composer.phar composer

nodebrew 導入

~/<ドメイン名>/.bin に ディレクトリ を 作成
( すでにあれば作成不要 )

source ~/<ドメイン名>/deploy/<公開ドメイン名>/.bashrc
cd ~/<ドメイン名>/.bin/

export NODEBREW_ROOT=$HOME/<ドメイン名>/.bin/nodebrew
curl -L git.io/nodebrew | perl - setup

node 導入 ( nodebrew 導入済み )

source ~/<ドメイン名>/deploy/<公開ドメイン名>/.bashrc

nodebrew ls-remote

nodebrew install v22.11.0
nodebrew use v22.11.0

上記の例では nodebrew ls-remote で 最新バージョン が v22.11.0 だったので そちらを インストールしました
最新バージョンがリリースされていれば そちらを使用する事を おすすめします

最後に

~/<ドメイン名>/deploy/<公開ドメイン名>/.bashrcの位置について「ちょっと変じゃない?」と思った方もいるかもしれません

私の場合 ~/<ドメイン名>/deploy/<公開ドメイン名>/ 以下に シェルスクリプトを記述しており
そのシェルスクリプトを実行することで 公開に必要な一連の手順を 一度に実行できるようにしています
( source を読み込み git pull をして ライブラリ の インストール や マイグレーション ビルド など )

この方法を使えば Circle CIJenkins に 自動で実行させることもできますし
他の方と スクリプトのパスを共有すれば 決まった手順で デプロイできるので 非常に便利です

そのため ビルドに必要なファイルとして この場所に bashrc を 配置しています