Laravel 稼働サーバー

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