takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

Laravel 環境構築の備忘録 for Ubuntu Server 22.04

目的

自分の備忘録

前提条件

1 app / lxc container であること
こうすることで、root でアプリを作っても問題が起きない

まずベースの環境を作る

LXC を使う

# container_name
cn='container_name'
lxc launch ubuntu:22.04 ${cn}
lxc shell ${cn}

コンテナ内の設定

# root で作業
timedatectl set-timezone Asia/Tokyo
apt update
apt install vim-nox
update-alternatives --set editor /usr/bin/vim.nox
update-alternatives --display editor | head -3 # もし確認するなら

takashikono.hatenadiary.jp

必要に応じて lxc にインターフェースを追加するなりすること

必要パッケージインストール

PHP 周り

# root でしています
# 一般ユーザーの場合は sudo をつける
apt install php8.1 php8.1-{sqlite3,xml,curl}

composer install

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

# global で使えるようにする
mv composer.phar /usr/local/bin/composer

別の方法

# 別の方法
apt install composer

Node.js

参考

https://nodejs.org/janodejs.org

github.com

# root でしています
# 一般ユーザーの場合は sudo をつける
apt update
apt install ca-certificates curl gnupg
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | \
  sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

# Major version を指定する
NODE_MAJOR=18
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | \
  tee /etc/apt/sources.list.d/nodesource.list

# install
apt update
apt install nodejs

Database

とりあえず SQLite3 を使うのでそれだけ入れる

apt install sqlite3 

アプリ作成

参考

Installation - Laravel 9.x - The PHP Framework For Web Artisans

プロジェクトディレクトリを作る

# project name
pn='some_project_name'
composer create-project laravel/laravel ${pn}
composer create-project laravel/laravel:^9.0  ${pn}  # version 指定?
composer create-project laravel/laravel:^10.0  ${pn}  # version 指定?
# 配布版パッケージのみ利用する(各パッケージにドキュメントとか不要な場合こちら
composer create-project --prefer-dist laravel/laravel ${pn} 
cd ${pn}

DB 設定

今回は sqlite3 を利用する

sed '/DB_/s/^/# /' .env -i
sed '/DB_CONNECTION/i DB_CONNECTION=sqlite' .env -i
touch database/database.sqlite

Jetstream インストール

参考

Installation | Laravel Jetstream

composer require laravel/jetstream
php artisan jetstream:install livewire

npm 周り

npm i
npm run build

テーブル作成

php artisan migrate

サーバー起動

# 127.0.0.1:8000 で起動
php artisan serve
# 任意の IP / Port で起動
php artisan serve --host=192.168.1.10 --port=8080

2023-09-26 追記

必要に応じてパッケージを追加する

sudo apt install php8.1-{dom,mbstring,tokenizer,xml,xmlwriter}
sudo apt install php-json