HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2020/03/01

Laravel 6の初期設定、.envの MySQLの DB定義、MySQLに Laravelユーザー追加等 Laravel 6の初期設定、.envの MySQLの DB定義、MySQLに Laravelユーザー追加等

(Laravel 6の初期設定、.envの MySQLの DB定義、MySQLに Laravelユーザー追加等)

Tags: [Raspberry Pi], [電子工作]




● Laravelフレームワークを使う為のミドルウェア部分の初期設定等

 ラズパイで PHPフレームワークの Laravelサーバを構築したので、次に Laravelフレームワークを使う為のミドルウェア部分の初期設定等を行ないます。


● Laravelとは?

 Laravelとは Symfonyをベースにした PHPフレームワーク。

ウェブ職人のためのPHPフレームワーク。

 必要になりそうなので自分専用の実験環境を作成します。


● Laravel Framework 6

 Laravel Framework 6は LTSリリース

Laravel 6.x


● Laravel 6.xでの構築手順

 ・Laravelフレームワークで使用する MySQLのユーザーアカウントの追加

 ・Laravel用のデータベース laravelを作成する

 ・Laravelフレームワークの .env設定ファイルに MySQLのアカウント情報を設定

 ・phpMyAdminのインストール
  phpMyAdminは MySQLのデータベースをブラウザ経由で管理できるアプリ
phpMyAdmin


● MySQLに Laravel用のアカウント laravelを作成する

MySQL 5.6 リファレンスマニュアル GRANT 構文
sudo mysql -u root mysql

# MySQLにアカウント laravelを作成する
# パスワードは password
# GRANT OPTION を除き、指定されたアクセスレベルにあるすべての権限を付与します
# ALL PRIVILEGES = 最強権限
# ALL = 強権限
# とりま自分の勉強用なので「強権限」で作成する
# ※ セキュリティの観点から公開する場合は必要最小限の権限にして管理、適切に設定しましょう。
GRANT ALL ON *.* TO 'laravel'@'localhost' IDENTIFIED BY 'password';

SELECT user, host FROM mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| laravel | localhost |
| root    | localhost |
+---------+-----------+
$ mysql -u laravel -ppassword
$ mysql --user=laravel --password=password

# phpMyAdminのログインもこのアカウント情報を使用します


● Laravel用のデータベース laravelを作成する

$ mysql -u laravel -ppassword

CREATE DATABASE laravel;
exit


● Laravelフレームワークの .env設定ファイルに MySQLのアカウント情報を設定

cd /var/www/laravel
nano .env

DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=password

● artisan make:model Hogeで Hogeモデルを作成する
 末尾の -mはバージョン管理するためのマイグレーションファイルも一緒に作成する為のオプション指定 --migrationの省略形 -m
php artisan make:model Hoge -m
# Model created successfully.
# Created Migration: 2020_03_xx_xxxxxx_create_hoge_table
# 作成したモデル
ls -l ./app/Hoge.php

# 作成したマイグレーションファイル
ls -l ./database/migrations/
# 必要に応じて public function up()中身を書き換える
nano ./database/migrations/2020_03_xx_xxxxxx_create_hoge_table.php

● artisan migrateコマンドで DBに hogesテーブルを作成する
php artisan migrate

 DB laravelに、hogesテーブルを作成します。
 テーブル名の命名は作成したモデル名 Hogeを小文字にして複数形の sを付けた文字列で自動的に決定します。


● CREATE DATABASE laravelで laravel用のデータベースを作成していない場合は下記のエラーが出ます

   Illuminate\Database\QueryException  : SQLSTATE[HY000] [1049] Unknown database 'laravel' (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')



● Laravelフレームワークの .env設定ファイルに MySQLのアカウント情報を設定

 MySQLの権限を明示的に設定して Laravelフレームワークを運用する場合の設定方法。

MySQL Database User GRANT permissions for Laravel
production
insert, delete, update, select
# GRANT INSERT, DELETE, UPDATE, SELECT ON *.* TO 'laravel_product'@'localhost' IDENTIFIED BY 'password';

migrations
alter, create, drop, index
# GRANT ALTER, CREATE, DROP, INDEX ON *.* TO 'laravel_migrate'@'localhost' IDENTIFIED BY 'password';

seeders(migrationsに追加)
select, insert, references
# GRANT ALTER, CREATE, DROP, INDEX, SELECT, INSERT, REFERENCES ON *.* TO 'laravel_migrate'@'localhost' IDENTIFIED BY 'password';

config/database.php

// This is the default the app is going to use for insert, delete, update, select
'product' => array(
          'driver' => 'mysql',
          'host' => 'prod_server',
          'port' => '3306',
          'database' => 'prod_database',
          'username' => 'laravel_product',
          'password' => 'secret',
          'charset' => 'utf8',
          'collation' => 'utf8_unicode_ci',
          'prefix' => '',
      ),

// This is meant to be used only when migrations need to be executed
'migrate' => array(
          'driver' => 'mysql',
          'host' => 'prod_server',
          'port' => '3306',
          'database' => 'prod_database',
          'username' => 'laravel_migrate',
          'password' => 'secret',
          'charset' => 'utf8',
          'collation' => 'utf8_unicode_ci',
          'prefix' => '',
      ),
php artisan migrate --database=migrate
database.php configuration
'default' => 'product'

MySQL Database User GRANT permissions for Laravel ?
 Laravelが必要な MySQLの権限
ALL PRIVILEGES
✓ ALTER
ALTER ROUTINE
✓ CREATE
CREATE ROUTINE
CREATE TEMPORARY TABLES
CREATE VIEW
✓ DELETE
✓ DROP
EVENT
EXECUTE
✓ INDEX
✓ INSERT
LOCK TABLES
REFERENCES
✓ SELECT
SHOW VIEW
TRIGGER
✓ UPDATE


● phpMyAdminのインストール

 phpMyAdminは MySQLのデータベースをブラウザ経由で管理できるアプリ
 ブラウザでマウス操作でデータベースをいじくれるので便利です。

 ブラウザ経由で MySQL DBを管理する必要が無ければインストール不要です。
# phpMyAdmin MySQLサーバーをブラウザ経由で管理するアプリ
# phpMyAdmin バージョン情報: 4.6.6deb5 2020/03現在
sudo apt -y install phpmyadmin

# インストールの途中で質問のダイアログが表示されます。
# Web server to reconfigure automatically: - [*] Apache2 - <Ok>
#
# Configuring phpmyadmin - <Ok>
#
# Configure database - <Yes>
# MySQL application password for phpmyadmin: - パスワード(任意)
# Password confirmation: - 確認用パスワード(上で入力したの同じ)
# ※ phpMyAdminのユーザー名は phpmyadminです。
# ※ 「パスワード無し」も設定できるがトラブルが多いので非推奨

Creating config file /etc/phpmyadmin/config-db.php with new version
phpMyAdminの設定ファイル
/etc/phpmyadmin/config-db.php

checking privileges on database phpmyadmin for phpmyadmin@localhost: user creation needed.
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.

# 下記の URLをブラウザでアクセスします
# http://{ラズパイの IPアドレス}/phpmyadmin/
# http://raspberrypi.local/phpmyadmin/
 この段階で、「phpMyAdmin MySQLサーバー管理アプリにログインする」の確認ができます。

● phpMyAdminへのログインは laravelアカウントで行ないます



# パスワードなしログインは設定 (AllowNoPassword 参照) によって禁止されています
sudo nano /etc/phpmyadmin/config.inc.php

 /* Uncomment the following to enable logging in to passwordless accounts,
  * after taking note of the associated security risks. */
 // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

ALTER USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'phpmyadmin';



Tags: [Raspberry Pi], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

Raspberry Piで Googleの Go言語 + Gin Webフレームワークをインストールして Webアプリを作る
Raspberry Piで Googleの Go言語 + Gin Webフレームワークをインストールして Webアプリを作る

  Raspberry Piで Googleの Go言語 + Gin Webフレームワークをインストールして Webアプリを作る

Raspberry Piで WebAPIモックサーバー JSON Serverを動かしてみるテスト
Raspberry Piで WebAPIモックサーバー JSON Serverを動かしてみるテスト

  Raspberry Piで APIモックサーバー JSON Serverを動かしてみるテスト

Raspberry Piに LAMP構成の Apache MySQL PHP Perl phpMyAdminの Webサーバを構築する方法
Raspberry Piに LAMP構成の Apache MySQL PHP Perl phpMyAdminの Webサーバを構築する方法

  ラズパイで一般的な Webサービスを動かす場合に必要なアプリが入った LAMP stackを構築

Raspberry Piに LLMP Lighttpd + MySQL + PHP + Perl 構成の Webサーバを構築する方法
Raspberry Piに LLMP Lighttpd + MySQL + PHP + Perl 構成の Webサーバを構築する方法

  ラズパイで Webサービスを動かす、Lighttpd + PHP + Perl + Python + Ruby CGIの LLMP stackを構築

Raspberry Piに nginx + MySQL + PHP + Perl 構成の LEMP Webサーバを構築する方法
Raspberry Piに nginx + MySQL + PHP + Perl 構成の LEMP Webサーバを構築する方法

  ラズパイで Webサービス LEMP Stackを構築、nginx + PHP + Perl(UNIXドメインソケット方式)

Raspberry Piの Webサーバに PHP MySQL PDOを入れて PHP CGIから MySQLを操作する方法
Raspberry Piの Webサーバに PHP MySQL PDOを入れて PHP CGIから MySQLを操作する方法

  Raspberry Piの Webサーバに PHP MySQL PDOを入れて PHP CGIから MySQLを操作する方法

Raspberry Pi 3 Model Bで CMSフレームワーク WordPressをセットアップする方法
Raspberry Pi 3 Model Bで CMSフレームワーク WordPressをセットアップする方法

  ラズパイ3で WordPressをインストールする方法

Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法
Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法

  ラズパイ3でローカルの Gitサーバを動かす方法。GitLabをインストールする方法

Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法
Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法

  Raspbian Jessieで Postfix Mail serverを Gmailの SMTPを中継サーバとして設定する方法

Gitでリモートにプッシュした内容を完全に無かった事にする方法
Gitでリモートにプッシュした内容を完全に無かった事にする方法

  いわゆる Gitでやらかした時に使える最強奥義 git reset --hard HEAD~; git push -f

Raspberry Piに Avahi Bonjourサービスを入れて、ホスト名で接続できる様にする方法
Raspberry Piに Avahi Bonjourサービスを入れて、ホスト名で接続できる様にする方法

  ラズパイに Bonjourサービスを入れて IPアドレスが分からなくてもホスト名で簡単に接続する方法

Raspberry Piや Jetson NANO等をネットワークに接続した場合の IPアドレスの便利ツール xfinder
Raspberry Piや Jetson NANO等をネットワークに接続した場合の IPアドレスの便利ツール xfinder

  DHCPで自動で IPアドレスが割り当てられる場合に、ワンボードマイコンの IPアドレスを調べる場合に便利

Apache Webサーバを過剰なアクセスや DoS攻撃から守る modモジュールの紹介
Apache Webサーバを過剰なアクセスや DoS攻撃から守る modモジュールの紹介

  対 DoS攻撃用の Apache2モジュール mod_evasive、mod_dosdetector、mod_limitipconn、fail2ban等の紹介

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法

  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳

  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳

ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core
ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core

  オレンジパイはラズパイよりもコスパは良いが情報が無いので利用者側に一定のスキルが必要

Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64
Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64

  ラズパイを意識した別物製品、オレンジパイはラズパイよりもコスパが良い、でも情報が無い

Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2020 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_web_server_php_laravel_6_setup/