LoginSignup
4
5

More than 5 years have passed since last update.

(メモ) Laravel 5入門 (認証、メール送信)

Last updated at Posted at 2017-08-15

ubuntu 17.04 にて実施

準備

パッケージインストール
sudo apt install -y \
 composer \
 \
 php-zip \
 php-mbstring \
 php-codecoverage \
 phpunit \
 \
 php-mysql \
 mysql-server
~/.config/composer/vendor/以下にlaravelインストール
composer global require "laravel/installer"
雛形作成(48MBほど生成)
laravel new blog
port8000でlisten
php artisan serve

# もしくは
php -S 127.0.0.1:8000 -t 'public/'
database作成(.envにてid/pass指定)
mysql -uroot -proot

create database homestead;
GRANT ALL PRIVILEGES ON homestead.* TO homestead@localhost IDENTIFIED BY 'secret' WITH GRANT OPTION;

認証

php artisan make:auth
php artisan migrate
  • トップページ
    • ./resources/views/welcome.blade.php

スクリーンショット_2017-08-15_15-39-47.png

  • ユーザー登録
    • ./app/Http/Controllers/Auth/RegisterController.php
    • ./resources/views/auth/register.blade.php

reg.png

  • ログイン後
    • ./app/Http/Controllers/HomeController.php
    • ./resources/views/home.blade.php

home.png

メール

composer require guzzlehttp/guzzle

php artisan make:mail OrderShipped
  • ./config/mail.php
  • ./app/Mail/OrderShipped.php

./vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php も参考になる。

デプロイ方法

  • composeコマンドは無くても動く
  • /srv/blog/ に設置する場合
mod_rewrite
cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load .
/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>

    ServerAdmin webmaster@localhost

    DocumentRoot /srv/blog/public
    <Directory /srv/blog>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
  • ログ出力設定
/etc/php/7.0/apache2/php.ini
+ error_log = /var/log/php_errors.log
ログ出力
touch /var/log/php_errors.log
chown www-data:www-data /var/log/php_errors.log

service apache2 restart
migrate
php artisan migrate
.envを書き換えた場合
php artisan config:cache

動作確認

  • ユーザー登録
  • ログイン
  • パスワードリセットのメール送信 * メール中のリセットボタンでリセットできること

reset.png


雑記

認証その2

laravel new login1

create database sample;

laravel/.env
    DB_DATABASE=sample
    DB_USERNAME=your_username
    DB_PASSWORD=your_password


php artisan migrate

# コマンドで認証に必要となるルート定義とビューを生成する
php artisan make:auth

php artisan serve
/etc/apache2/sites-enabled/000-default.conf
(略)
DocumentRoot /www/login1/public
<Directory "/www/login1/public">
        Options All
        AllowOverride All
        Require all granted
</Directory>
(略)
sudo systemctl restart apache2

Basic認証

composer require olssonm/l5-very-basic-auth:5.*

# 設定ファイルの公開
php artisan vendor:publish \
 --provider="Olssonm\VeryBasicAuth\VeryBasicAuthServiceProvider"
  • config/very_basic_auth.php (id:pass)

  • routes/web.php (basic認証を利用するページの設定)

Route::group(['middleware' => 'auth.very_basic'], function() {
    Route::get('/', function () { return view('welcome'); });
});

filesystemを使う (s3など)

  • config/filesystems.php
php artisan storage:link

DBのバックアップ

php artisan make:command BackupDatabaseCommand --command="command:backupdb"

vim ./app/Console/Commands/BackupDatabaseCommand.php

# backup実施
php artisan command:backupdb

migration (カラムの追加/削除)

# マイグレーション生成
#php artisan make:migration create_books_table --create=books
php artisan make:migration add_users_table
  • database/migrations/2018_09_05_100800_add_users_table.php
    public function up()
    {
+       Schema::table('users', function (Blueprint $table) {
+               $table->text('hoge1'); // INT
+       });
    }
    public function down()
    {
+       Schema::table('users', function (Blueprint $table) {
+               $table->dropColumn('hoge1');
+       });
    }
php artisan migrate
php artisan migrate:rollback --step=1

Seeder

php artisan make:seeder UsersTableSeeder

vim database/seeds/*Seeder.php

php artisan db:seed
migrationの場合
# 全データー削除してから登録したい場合
php artisan migrate:refresh --seed

# 初回の場合
php artisan migrate --seed
  • 大量のダミーデーター生成には Faker ライブラリを使うのが良い。

Laravelのバージョンアップ

# バージョン確認
php artisan --version

# バージョン指定の修正
vim composer.json

# アップグレード
composer update

# キャッシュをクリア
php artisan cache:clear

SNSソーシャルログイン

composer require laravel/socialite

Vue.js

routes/web.php
// どのアクセスからでも app に渡す
Route::get('/{any}', function () {
    return view('app');
})->where('any', '.*');
npm install

# resources/js/app.js => public/js/app.js に更新
npm run watch-poll
# public/js/app.js が巨大なため縮小する (1.3mb->330kb程度になる)
npm run production
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5