AWS Lightsail3.5ドルにlaravel8をインストールして、JetStream+livewireでユーザ認証してみる。
参照URL
https://qiita.com/apricotcomic/items/c3b3cf3b5bc1f1c6ebc0
1, laravel8のインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# composerが1系で古いので、最新の2系にする sudo composer self-update --2 # メモリが512MBだとエラーになるのでスワップファイルを作っておく sudo dd if=/dev/zero of=/swapfile1 bs=1M count=1024 sudo chmod 600 /swapfile1 sudo mkswap /swapfile1 sudo swapon /swapfile1 # webドキュメントルートに移動 cd /opt/bitnami/apache2/htdocs # laravel インストール composer create-project laravel/laravel laravel # logファイルを読み書き可能にする chmod -R 777 laravel/storage/ # ブラウザで表示 http://IPアドレス/laravel/public/ |
2, DB作成&DB接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# MySQLのrootのパスワードは、ホームディレクトリにある cat /home/bitnami/bitnami_application_password # DBに接続する mysql -u root -p -- DBインスタンス作成。文字コードと照合順序も指定 mysql> CREATE DATABASE IF NOT EXISTS laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- ユーザ作成 mysql> CREATE USER laravel@localhost IDENTIFIED BY '任意のパスワード'; -- ユーザへの DB に対する権限付与 mysql> GRANT ALL PRIVILEGES ON laravel.* TO laravel@localhost; mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON laravel.* TO laravel@localhost; |
.envファイルに、設定したDB接続情報を記述する
DB_CONNECTION=mysql
DB_HOST=localhost # 127.0.0.1だと駄目だった
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=任意のパスワード
php artisan migrate でテーブルが生成されればOK!
3, ユーザ認証機能を作る。
laravelのユーザ認証の歴史
5系 make:auth
6-7系 laravel ui
8系 JetStream+livewire
JetStream+livewireとはlaravel専用のパッケージで、reactもveu.jsも使わずにphp+bladeだけで動的表示が出来るらしい。
とりあえず実装してみよう。
1 2 3 4 5 |
# パッケージのインストール composer require laravel/jetstream # laravelにJetStreamをインストール php artisan jetstream:install livewire |
Livewire scaffolding installed successfully.
Please execute “npm install && npm run dev” to build your assets.
と言われるのでコピペ実行すると、bash: npm: command not foundと出る。
lampスタックだから、node.jsは自分でインストールしないと駄目なのか…。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs npm --version 7.15.1 # 改めて npm install && npm run dev # ユーザ・テーブルも追加 php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (84.41ms) Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table (77.98ms) Migrating: 2014_10_12_200000_add_two_factor_columns_to_users_table Migrated: 2014_10_12_200000_add_two_factor_columns_to_users_table (84.97ms) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (63.71ms) Migrating: 2019_12_14_000001_create_personal_access_tokens_table Migrated: 2019_12_14_000001_create_personal_access_tokens_table (92.46ms) Migrating: 2021_06_07_063621_create_sessions_table Migrated: 2021_06_07_063621_create_sessions_table (137.30ms) |
これでトップ画面の右上には、Registerとloginが追加されているはず
表示されたけど、CSSが適用されていない感じだ。
http://IPアドレス/css/app.cssとapp.jsを見に行っているな…。
1 2 3 4 5 6 7 8 9 |
# htdocからlaravel/publicにwebルートを変更する vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf DocumentRoot "/opt/bitnami/apache2/htdocs/laravel/public" <Directory "/opt/bitnami/apache2/htdocs/laravel/public"> # Laravelプロジェクトの権限を変更する sudo chown -R bitnami:daemon /opt/bitnami/apache2/htdocs/laravel/* # apache再起動 sudo /opt/bitnami/ctlscript.sh restart apache |
registerしてすると自動ログイン。logout&loginもOK
ユーザ・プロフィール機能も、最初から付いている。