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
- ユーザー登録
- ./app/Http/Controllers/Auth/RegisterController.php
- ./resources/views/auth/register.blade.php
- ログイン後
- ./app/Http/Controllers/HomeController.php
- ./resources/views/home.blade.php
メール
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
動作確認
- ユーザー登録
- ログイン
- パスワードリセットのメール送信 * メール中のリセットボタンでリセットできること
雑記
認証その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
- resources/views/app.blade.php
- resources/js/app.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