laravelコマンドまとめ

2024-07-20

laravel
Example Image

ReactとLaravelでポケモン図鑑を作って、Xserverにデプロイした時のコマンドまとめ

プロジェクト作成

curl -s https://laravel.build/pokemon | bash

作成したプロジェクトのディレクトリに移動

Sail コマンドを使えるようにする

code ~/.bashrc
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

変更を反映

source ~/.bashrc

sail を起動

sail up

localhost に laravel が表示されるようになる

config/app.php を修正

'timezone' => env('APP_TIMEZONE', 'Asia/Tokyo'),
'locale' => env('APP_LOCALE', 'ja'),

Laravel Breeze パッケージをインストール

sail composer require laravel/breeze --dev

Laravel Breeze を React-typescript でインストール

sail artisan breeze:install react --typescript

フロントエンドの依存関係をインストール

sail npm install && sail npm run dev

Xserver に SSH 接続

サーバーパネルよりデータベースの作成、SSL化の設定をしておく
サーバーパネルの SSH 設定を ON にし、公開鍵認証用鍵ペアを生成する
生成した鍵をホームディレクトリの.ssh フォルダに移動
ターミナルも.ssh に移動

cd .ssh

鍵のパーミッションを変更

chmod 700 .ssh
chmod 600 [サーバー ID].key

ssh接続

ssh -l [サーバー ID] -i [サーバー ID].key [サーバー ID].xsrv.jp -p 10022

鍵生成時に設定したパスフレーズを入力すると SSH 接続が完了

Xserver で laravel の環境構築

PHP

サーバーパネルで PHP のバージョンをプロジェクトと同じものに設定する
ターミナルで使用する PHP のバージョンもプロジェクトと同じものに設定する
ホームディレクトリ内にbinディレクトリを作成

mkdir $HOME/bin

/usr/bin/php8.2 へのシンボリックリンクを $HOME/bin/php に作成(これにより、php コマンドを実行するときに、/usr/bin/php8.2 が使用されるようになる)

 ln -s /usr/bin/php8.2 $HOME/bin/php

パスを変更して、phpコマンドがbinディレクトリのシンボリックリンクを最初に見つけられるようにする

code ~/.bash_profile
変更前 ⇒ PATH=$PATH:$HOME/bin
変更後 ⇒ PATH=$HOME/bin:$PATH

変更内容を読み込む

source ~/.bash_profile

指定したphpのバージョンが使用されているか確認

php -v

コンポーザー

コンポーザー(PHPの依存管理ツール)のインストール
下記公式サイトのコマンドを実行

undefined

A Dependency Manager for PHP

favicon getcomposer.org

OGP image

ダウンロードしたファイルをbinディレクトリに移動

mv composer.phar $HOME/bin/composer

変更内容を読み込む

source ~/.bash_profile

バージョンの確認

composer -v

node.js をインストール

wget git.io/nodebrew
perl nodebrew setup
code ~/.bash_profile

bash ファイルに下記を追記し、nodeblrew のパスをとおす

export PATH=$HOME/.nodebrew/current/bin:$PATH

変更内容を読み込む

source ~/.bash_profile

最新版をインストールするとエラーが出るので、安定板をインストールする

nodebrew install v18.0.0
nodebrew use v18.0.0
node -v

Xserver より guthub に接続

SSH 接続したターミナルにて、下記のコマンドで鍵を生成

ssh-keygen -t rsa -b 4096

出力先はデフォルトのまま(何も入力せずエンター)
パスフレーズを任意で入力
生成した鍵をターミナルに出力

cat $HOME/.ssh/id_rsa.pub

出力された文字列をコピー
github のプロジェクト用リポジトリの setting、deploy key にペースト。Add Key ボタンをクリック

xserver のターミナルに戻る

プロジェクト用のディレクトリを作成し、github よりクローンする

mkdir pokemon-laravel-xserver
cd pokemon-laravel-xserver
git clone git@github.com:risu043/pokemon-laravel-github.git

プロジェクト直下のディレクトリでコンポーザーをインストール

cd pokemon-laravel-github
composer install

.envファイルを作成しAPP_KEYを生成

cp .env.example .env
php artisan key:generate

.env ファイルを修正

APP_ENV=production
APP_DEBUG=false
APP_URL=https://[ドメイン]

データベース名、ユーザ名、パスも修正(サーバーパネルで設定したものに修正)
DBをlaravelのDBに移行させる

php artisan migrate

プロジェクト直下でビルドを行う

npm install
npm run build

シンボリックリンク作成

ln -s $HOME/pokemon-laravel-xserver/pokemon-laravel-github/public $HOME/[ドメイン]/public_html

プロジェクト直下でストレージのリンク作成

php artisan storage:link

public_html の.htaccess を修正(常時SSL化し、シンボリック先の公開フォルダが表示されるようにする)

RewriteEngine On

#ssl 通信
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

#シンボリックリンク
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [QSA,L]

完成!

share