Laravel 03日目:早速やらかす
起きたこと
Welcomeページ( http://localhost/ )は描画されているけれど 新規ページ( http://localhost/user )が描画されない。というか404エラーになる。
結果
nginxの設定が間違えてた。いつものCakeとは違う。 下記の記述が足りてなかった。
location / { try_files $uri $uri/ /index.php?$query_string; }
親切に書いてあるんやから、ちゃんとしたがおうな。という話。 Deployment - Laravel - The PHP Framework For Web Artisans ということで、過去記事も修正しておきます。
所感
ちょっと時間が取れず、controllerやrouterも少し触ったけれどまとめるのは後日にします。 流石に雑記事すぎるけれど、このブログ日記なので・・・!(逃
Laravel 02日目:データベース接続とSeedを使ったデータ投入やってくよ!
今日やること
- データベース接続
- マイグレーションでテーブル作成
データベース接続設定の修正
config/.env の設定値を環境に合わせて修正していく
DB_CONNECTION=mysql DB_HOST=[IP] DB_PORT=[ポート番号] DB_DATABASE=[データベース名] DB_USERNAME=[ユーザ名] DB_PASSWORD=[パスワード]
マイグレーションを使ってテーブル作成
マイグレーションファイル作成
database/migrations
の下にファイルが作成されている。
$ php artisan make:migration create_users_table Created Migration: 2019_12_02_232635_create_users_table
マイグレーションファイル修正
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } }
マイグレーション実行
$ php artisan migrate Migration table created successfully. Migrating: 2019_12_02_232635_create_users_table Migrated: 2019_12_02_232635_create_users_table (0.06 seconds)
ロールバックはこうする
$ php artisan migrate:rollback Rolling back: 2019_12_02_232635_create_users_table Rolled back: 2019_12_02_232635_create_users_table (0.04 seconds)
テーブルの確認
mysql> desc users; +------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+----------------+ | id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | email | varchar(255) | NO | UNI | NULL | | | password | varchar(255) | NO | | NULL | | | created_at | timestamp | YES | | NULL | | | updated_at | timestamp | YES | | NULL | | +------------+---------------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec)
Seed
Seedファイル作成
$ php artisan make:seeder UsersTableSeeder Seeder created successfully.
Seedデータ作成
database/seeds/UsersTableSeeder.php
<?php use Illuminate\Database\Seeder; class UsersTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(10).'@m.cybermergina.top', 'password' => bcrypt('password'), ]); } }
database/seeds/DatabaseSeeder .php
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { // ここを追加してSeed実行時に追加したSeedクラスが呼ばれるようにする $this->call(UsersTableSeeder::class); } }
Seed実行
$ php artisan db:seed Seeding: UsersTableSeeder Seeded: UsersTableSeeder (0.09 seconds) Database seeding completed successfully.
データ確認
mysql> select * from users; +----+------------+-------------------------------+--------------------------------------------------------------+------------+------------+ | id | name | email | password | created_at | updated_at | +----+------------+-------------------------------+--------------------------------------------------------------+------------+------------+ | 1 | 1t0gtLmC5G | bO2FYpxwHi@m.cybermergina.top | xxxx | NULL | NULL | +----+------------+-------------------------------+--------------------------------------------------------------+------------+------------+ 1 row in set (0.00 sec)
所感
今のところ特に何にも躓くこともなく順調にいっている。良き良き。 ただ、細かいところは読めてないので大枠作り終えたらドキュメントの隅まで見たいなという気持ち。
Laravel 01日目:初期構築やってくよ!
新規プロジェクト作っておくだけ! 公式ドキュメント見るのと変わらんでっせ! https://laravel.com/docs/6.x
環境
EC2インスタンス(おかねないのでゆるして) nginx,php-fpm,mysql,composerは導入済み
構築
インストーラー入れる
※ laravelコマンド使えるようにPATH追加も忘れずに
$ composer global require laravel/installer $ tail ~/.bash_profile export PATH=$PATH:$HOME/.config/composer/vendor/bin
新規プロジェクト追加
$ ls -la /usr/share/nginx/laravel total 3 drwxr-xr-x 3 ec2-user ec2-user 18 Dec 1 14:04 . drwxr-xr-x 8 root root 111 Dec 1 14:04 .. $ laravel new blog
nginxの設定
$ cat /etc/nginx/conf.d/laravel.conf server { listen 1111; server_name 127.0.0.1; root /usr/share/nginx/laravel/blog/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; } } $ sudo nginx -t $ sudo nginx -s reload
これでページみれるはず
所感
今日ぺちこんで懇親会まで行ったのでゆるしてほしい。。。
ここまで読んだ。明日はデータベース接続かな https://laravel.com/docs/6.x#configuration
アドベントカレンダーに乗っかっていこうかなって
ブログを一年放置、Qiitaも一年以上書いてない(たぶん) 転職してからアウトプット一切してない
ので、 アドベントカレンダーに乗っかって 毎日ブログを書いておこうと思います。
何やるか迷ったんですが、個人的に 「CakePHP大好きだけど、みんなLaravelにシフトチェンジしてるよね。。大昔に触ったきりだし触ってみよう(`・ω・´)」 と思ったので
毎日少しでもLaravelしていこうと思います! 頑張る!!!!ぞい!!!!!!
英語読む勉強にもなるかなーと思うので 基本的には英語の公式ドキュメント見ながら進めていく。
git-completion.bashが無い・・・!
背景
新しいEC2インスタンスにyumでgitを入れようとしました。 git v2.13.6が入ります。気にせずにgit向けの設定を用意していたら 下記のファイルが見つかりません
$ sudo find / -name git-completion.bash -type f
このファイルはsourceコマンドで呼び込むとgitコマンドの補完をしてくれる公式が配布しているファイルになります。
よく調べてみたところ、下記ディレクトリの下に「git-completion.tcsh」というファイルがありました。
$ sudo find / -name git-completion.*-type f /usr/share/git-core/contrib/completion/git-completion.tcsh
tcshファイルの設置を試してみる
$ yum install tcsh $ cp /usr/share/git-core/contrib/completion/git-completion.tcsh ~/.git-completion.tcsh $ chmod u+x ~/.git-completion.tcsh $ source ~/.git-completion.tcsh -bash: /home/ec2-user/.git-completion.tcsh: line 127: syntax error: unexpected end of file
シェルに詳しくないもので気づくのが遅かったのですが 単純にbashで実行されているだけですね
sourceはデフォルトで設定しているシェルで実行されるので 私の環境の場合はbashで実行されました。
なので、bashではなくtcshやcshをデフォルトのシェルとして使ってる環境では問題ないかと思います
が、私はbashやshで精一杯なので、tcshを使うのは辛いです!今は!
ということでGithubにアップされているgitブランチを確認すると
https://github.com/git/git/tree/v2.13.6/contrib/completion
git-completion.bashが・・・!
$ cd ~ $ wget https://github.com/git/git/tree/v2.13.6/contrib/completion/git-completion.bash $ tail -n 1 ~/.bash_profile source ~/.bash_profile $ source ~/.bash_profile
これでいけますた:)
GoでWebアプリを作りたい
資料を拝見
コチラの資料を見つけた
知らない名前のフレームワークやツールが多いので 気になったものをそれぞれちゃんと見てみる Webエンジニアとしてはこの辺の情報が固まってるの、とても有難い:pray:
ここより先は内容的に保証できないので、あまり参考にしないでください!
調べつつ追記していけたらと思います。
フレームワーク
Goji / Gorilla
シンプル(ルーティングのみ)
revel / mux
フルスタック(セッション管理などできる)
マイグレーション
goose
ORマッパー
GORM
高性能。ActiveRecordっぽい
genmai
クエリビルダに近い
テンプレートエンジン
Ace
SlimやJadeにちかい
パッケージマネージャ
Godep
スター数が多い
gom
Bundler + Gemfileに近い
オートビルドツール(?)
Flesh
ファイルが保存されたタイミングでリビルドしてくれる 導入コストも低い
$ go get github.com/pilu/fresh
$ fresh
どう組み合わせる?
まだ詳しくは分かってないけども、このような感じになるのかな・・・?
ミニマム
- フレームワーク: Goji(Gorilla)
- ORマッパー:genmai
- マイグレーション:goose
- オートビルドツール:Flesh
- テンプレートエンジン:Ace
- パッケージマネージャ:Godep(gom)