LaravelのLinuxサーバーへの環境構築をXServerで試してみた。
node.jsのインストールが必要。
結果、JetStreamのInertia版はXAMPP同様に動作しないが、Live Wire版は動作しているようにみえて動作していない。
理由は、Laravelのpublicフォルダーはドキュメントルートの直下に置くというルールがあるから。
レンタルサーバだと、マルチドメインを利用することになる。
サブドメインの作成
レンタルサーバーでなければ不要なことかもしれないが、一応メモ。
いままで、公開フォルダー(XServerではPublic_html)にLaravelのプロジェクトを作成していたが、ドメイン直下にプロジェクトを作成する。(アクセスできない場所?)
サブドメインを作成する。プロジェクト名と同じものが簡単。仮にwiredとする。
/home/アカウント名/ドメイン名/public_html/wired
というように、wiredというサブドメインのディレクトリができる。これは不要なのでwiredsなどリネームしておく。(削除可)
サブドメインの名前で、laravelプロジェクトのpublicフォルダーのシンボリックリンク作成。(このためにリネーム)
こうすると、サブドメインのドキュメントルートがlaravelプロジェクトのpublicということになる。
PHPのバージョン
PHP は8以上のバージョンが必要。
XServerでは、Web上で動作しているPHPとは別に、CLI版のPHPがあってそのバージョンも8以上が必要だった。
Composerのインストール
PHPのパッケージ管理ツールであるComposerが必要。
ComposerダウンロードページのCommand Line Installationをコピペ。
composer.pharと.configディレクトリが作成される。
composer/vendor/bin/というディレクトリを作成し、composer.pharをcomposerという名前に変更して.config/composer/vendor/bin/の下に保存。
mkdir -p .config/composer/vendor/bin/
mv composer.phar .config/composer/vendor/bin/composer
.config/composer/vendor/bin/にはパスが通っていないためパスを設定する必要がある。
XSeverでは、bashのshellで、
PATH=$HOME/.config/composer/vendor/bin:$HOME/bin:$PATH
source .bash_prfoile
Laravelコマンドパッケージのインストール
インストールすると、laravel new でプロジェクト作成が可能になる。
composer global require laravel/installer
Laravelプロジェクトの作成
laravel new superlockers - - jet
jetオプションで、JetStream込みでインストールされる。
ただし、JetStreamでもBreezeでも、またCSSのTailwindでもnode.jsが必要となる。
また、利用するデータベースのインストール、セットアップも当然必要となる。
セットしたデータベースに合わせて、.プロジェクト直下の.envのデータベースの項を変更する。
既定はmysql
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=takapon-test
DB_USERNAME=takapon
DB_PASSWORD=takapon
接続できていれば、migrate可能だが、node.jsの設定を先に行った方がよいと思われる。
nodeのインストール
nodeにはさまざまなバージョンがあり更新も頻繁。nodeのバージョンの切替が簡単に行うことができるnodebrewをインストール。
wgetコマンドでnodebrewのファイルをダウンロード。
wget git.io/nodebrew
perl nodebrew setup
ホームディレクトリ下に.nodebrewが作成されるのでパスを設定。変更後のパス。
PATH=$HOME/.nodebrew/current/bin:$HOME/.config/composer/vendor/bin:$HOME/bin:$PATH
nodeのホームページで最新の安定版(LTS)のバージョンを調べる。
現時点でLTSのバージョンは、16.14.0 だったので、
nodebrew install v16.14.0
使うバージョンを指定する必要があるみたい。(そういう便利な仕様だから)
use v16.14.0
これで、node.jsが使用可能となる。npm(ノードのパッケージ管理ユーティリティ)を試す。
npm -version
ビルド
nodeのインストールが完了したのでLaravelのプロジェクトディレクトリでnpmコマンドを実行。
JavaScriptライブラリのインストールとビルドが行われる。
npm install && npm run dev
これで、データベースへのmigrationがうまくいけば完了。
php artisan migrate