けこのアプリ開発奮闘記

アプリ開発で得た知見を共有していきます。なるべく文章が堅くならないように意識しています。

【AWS】デフォルトVPCがやばいって話

茶番

翔泳社 AWSではじめるインフラ構築入門』を熟読中...

www.shoeisha.co.jp

けこ「EC2って元からネットワークに繋がってるよね。なんでこの本EC2の前にVPC作ってるの?デフォルトじゃあかんのか」
けこ「(検索中...)」
けこ「あかん、これはあかん。セキュリティガバガバや!(冷や汗)」

AWS EC2の初期設定はやばい

デフォルトのVPC

AWS公式によると...

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc.html

デフォルト VPC を作成するとき、Amazon 側で次の設定を行います。

  1. サイズ /16 の IPv4 CIDR ブロック (172.31.0.0/16) の VPC を作成する。これは、最大 65,536 個のプライベート IPv4 アドレスを提供します。
  2. アベイラビリティーゾーンに、サイズ /20 のデフォルトサブネットを作成する。この場合は、サブネットあたり最大 4,096 個のアドレスが作成され、その中のいくつかは Amazon が使用するように予約されています。
  3. インターネットゲートウェイを作成して、デフォルト VPC に接続する。
  4. すべてのトラフィック (0.0.0.0/0) をインターネットゲートウェイにポイントさせるルートをメインルートテーブルに追加します。
  5. デフォルトのセキュリティグループを作成し、デフォルト VPC に関連付ける。
  6. デフォルトのネットワークアクセスコントロールリスト (ACL) を作成し、デフォルト VPC に関連付ける。
  7. デフォルト VPC を備えた AWS アカウントに、デフォルトの DHCP オプションセットを関連付けます。

まぁ3まではいいか...となりました。4が特にやばいです。

デフォルトのセキュリティグループ

インバウンドルールはセキュリティグループID(一意)で同じセキュリティグループのインスタンスのみ全ポートで通信可能 。すべてです、やばいです。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/default-custom-security-groups.html

セキュリティグループが同じ場合でしょ?ダイジョブダイジョブ。と私も思いましたが怪しいパッケージを入れてしまうかもしれませんし、ウイルスが感染したインスタンスがが他のインスタンスにウイルスを送り付ける...なんてシナリオも考えられます。 どの入門書を見ても弊社のインフラ担当マンに聞いてみても、セキュリティルールは最低限に絞るべきと書いています。Webサーバなら80番と443番だけ解放していればいいわけです。

インバウンドルールは最低限にする必要があります。必ずポートを絞りましょう。

アウトバウンドルールは必要な通信までブロックしてしまう可能性があり、十分な検証を行った後で問題ないならブロックしても良いという意見が見受けられました。Webサーバのように不特定多数と通信する場合はオープンで良いですが、DBサーバのような特定のWebサーバとしか通信しないインスタンスなら絞りましょう。

教訓

デフォルトが便利だからって甘んじてはいけない。
便利の裏には脆弱性が潜んでいる、踏み台攻撃に利用されないためにインバウンドルールはしっかり絞ろう。
アウトバウンドルールは場合による。不特定多数と通信する場合は変更なし、IP制限やポート制限をするなら絞るべき。
弊社ではしっかり制限してあります。この間は開発環境とstg環境の権限の差異によってS3からのデータが取れなくて難儀しました…セキュリティって難しいですね。

【STARTUP STUDIO】ゼロイチ事業作りに参加します。

雑談

( ゚д゚)ハッ!
独習PHP第4版を読んでいたら5日が経過していました…。けこです。
ここ数日色々とありまして、プログラミングボランティアに参加することになりました。
転職活動に精を出すぞと張り切ったはいいものの、実際にユーザの居るサービスを作っていないと弱いのでサービス開発にチャレンジするという動機です。
後はとにかくゼロイチ経験を積みたいというのもあります。

studio.creww.me

マッチングにはスタートアップスタジオというサイトを利用しました。世の中を変えたいと意気込んでいる活動家と技術者をマッチングするサイトです。試しに案件を見てみると案件があるわあるわ。今回はこのスタートアップスタジオを利用してプログラミングボランティアをして感じたことを共有していきます。

概要

スタートアップスタジオの基本方針はこちらにあります。

studio.creww.me

簡単にまとめると、世の中を変えたいと考える個人(以降、起業家)がてっとり早く事業を立ち上げるための仕組みを提供するサービスです。
私のようなエンジニアは起業家の方が作成したページに書いてある理念、思想、そしてプロジェクトの展望を見てプロジェクトに参加。無事リリースまで導くことができればスタートアップメンバーとして携わることができるという仕組みです。

私はその中で絶滅危惧種の動物を支援するという取り組みをしているプロジェクトに参加しています。

規約を一通り確認したところ、エンジニアにも起業家にもプロジェクトを完遂する義務はありません。つまり、別個に契約を結ばない限りはプロダクトを完成させる義務がありません。その代わり開発中の給与もありません

プロジェクトを選ぶ際のポイント

それでもいくつかプロジェクトを見てみて、ここは気にしておくべきというポイントがありました。

  1. プロジェクトマネージャーがいるか
  2. 他のメンバーの構成
  3. 起業家の人格

1のプロジェクトマネージャーがいるか、これは特に大事です。
起業家の方はもちろんやる気と行動力がある方が登録しているわけですが、その方にプロジェクトマネジメントができるかは別問題です。流石にプロジェクトマネージャで参加する方は経験豊富な方が多いので、私のような若輩エンジニアにとってはとても有り難い存在です。

2のメンバーの構成ですが、これは営業、エンジニア、デザイナーがバランス良くいるかということです。営業がいないので開発できませんでは話になりません、最悪エンジニアで参加して数ヶ月はずっと営業をしている…だなんてことも有りえます。ちゃんと見ましょう。

3の起業家の人格ですが、これはプロジェクトのメンバー募集ページを見て推し量るしかありません。最悪プロジェクトに参加してから気に入らないので抜けるというのもありですが、悪印象は強いでしょう。選ぶポイントとしては、プロジェクトの道筋をちゃんと考えている人か、感情の制御ができそうな人か、抱えている目標に賛同できるか。これらのポイントを重視するべきだと感じました。

私は幸いながら、1発目でこれらの要素の殆どを満たすプロジェクトに参加することができました。今後からはこのプロジェクトの進捗についても公開して良い範囲について書いていきます。興味のある方はぜひ見ていって下さい。

【PHP】翔泳社 独習PHP第4版 読書レポ その1

挨拶

皆さんこんにちは。けこです。
Laravelで環境構築したぞー!アプリ作るぞー!と意気込みましたが、折角だから最新の言語仕様に則った良いものを作りたいと思いPHPの参考書を買ってみました。
購入した本は翔泳社/山田祥寛氏の『独習PHP 第4版』です。PHPの基本をもう一度学ぶためにPHP8の本を探していた際にAmazonで半額になってたのでポチっちゃいました。

www.amazon.co.jp

早速知識整理も兼ねて、3割ほど読んでみて学びを得た点を紹介したいと思います。
PHPマンに自信満々に説明したら何当たり前抜かしとんじゃと言われそうな内容ですが、お暇ならお付き合いくださいませ。 ※私は本業でJavaを扱っています。実務経験は1年ほどです。

PHPの言語仕様で気になったポイント

クォーテーションの使い分け

私がまず特に気になったのはクォーテーションの違いです。

$str = 'Hello';
echo 'シングルクォート: {$str}';
echo "ダブルクォート: {$str}";

これらのコードの結果はこうなります。

シングルクォート: {$str}
ダブルクォート: Hello

PHPではシングルクォートとダブルクォートで囲んだ場合で変数が展開されるかとエスケープ処理がされるかが異なるみたいです。
これまで触ってきたJavaではシングルクォートはcharを表すものでしたし、JavaScriptでは扱いが同じでした。
そんな私から見るとこの違いはとても魅力的に映りました。変数展開をしないということはユーザがいたずらで${foo}のようなありがちな変数名を仕込んでも大丈夫ということです。関数を使ってエスケープをしなくて済むのは魅力的です。
Javaの言語仕様の影響でダブルクォートをする癖がついていたのでちゃんと矯正しないといけないですね。

配列の最大インデックス+1への代入

PHPでは配列のインデックスを省略して代入を行った場合、配列の最大インデックス+1に対して代入が行われます。とても便利ですね。

文字列混在の演算ルール

例えば、print '1' + '1';。これはPHP7.4では2らしいです。どういうことだってばよ。
PHP7.4
先頭が数値で始まる文字列は数値として見なされて警告も出ない
先頭が文字列で始まる文字列は0として見なされて警告も出ない

なんですかこれ?確かに便利な場面はあるかもしれないけどデメリットのほうが多いでしょ?PHPが型の概念がしっかりしていない言語だということを骨身で理解しました。Javaの癖で文字列を連結しようとして + でつなげたら大惨事です。怖い。

PHP8では前者は警告、後者はエラーが出るようです。ありがとうPHP

文字列操作関数が豊富

PHPの文字列操作関数多いですね。今私が読み進めている部分もまだ配列の文字列をいじくり回しています。mb_convert_case, mb_strlen, mb_substr, str_replace, trim, explode, mb_strpos, mb_strstr...いや、strstrってなんだよもうちょっといい名前無かったんか。
センスに少しびっくりですがとにかく文字列操作の組み込み関数が豊富です。Javaだと外部ライブラリを入れたり自力で実装したりしていたものまでありました。日本人に生まれた以上なんだかんだマルチバイト文字を扱う機会は多いので助かりますね。

一区切り

ここらでネタが尽きてしまったのでまた勉強に戻ろうと思います。今日は日が変わるまで残業したのでじっくり休んでまた明日から精をだして行きましょう!
学生のときはPHPの言語仕様をよく知らずに使っていましたが、便利な言語仕様は鋭い罠にもなりうるのだと感じました。Java脳からPHP脳に切り替える必要がありますね!この調子でささっと本を読み終えてアプリ開発に着手するぞー!Laravelの本ももう買ってあるので来週の水曜日くらいから本格始動できるかな?楽しみです。

以上!お付き合いいただきありがとうございました~。

【ポエム】エンジニアブログを書く理由

ご挨拶

こんにちは、けこです。
急にどうしたそのタイトルという感じですが、今日は私事で技術記事を書く時間が取れそうになかったのでちょっとした決意表明をしようと思います。
将来ビッグになったとき(未だにRTの一つもされたこともないですが)に見返して悶絶するあれです。黒歴史作りです。

転職活動におけるメリットを重視

私が考えているブログを書く最大のメリットは転職活動の際にアピールになることです。打算的ですね。 ぶっちゃけると実はこのブログもマイナビ転職を見ながらビビッと来た企業に入るために書いています。仕事仲間が見たら泣きますね。
ビビッときた企業というのはLaravelを使ってWebサービスを開発している令和生まれの生まれたてほやほや企業なのですが、私は残念ながらPHPの知識は高校の授業で止まっているのでログイン機能のついたECサイトもどきを作ることくらいしかできません。
なので「御社に入るためにこれだけの志を持って頑張ってきましたよー!」ということをわかりやすくアピールするためにブログを書いているわけです。

Q.それってブログの意味ある?ポートフォリオだけで良くない?

ポートフォリオの利点は、1つのプロジェクト単位でどういう意思を持ってどういった方法で実現したかを見栄え良く表せることです。見た目にこだわることができるため、デザイナーや動画編集者等の場合はそこで採用が決まるかもしれません。
しかし、私はエンジニアなので見た目で勝負するのではなく目的に向けて努力ができる人間かということを示す必要があります。
ポートフォリオで美辞麗句を並べることは簡単です。仲間と一緒に友情を感じながら素晴らしいものを作り上げた。とても素晴らしいです。しかし、そのポートフォリオであなたの費やした目的達成までの努力の重みを伝えることはできるでしょうか?きっとできないでしょう。ポートフォリオで伝えられる情報は表面的なものだからです。
だから私は努力の重みを企業に正しく知ってもらうためにポートフォリオに加えてブログを書いています。

目的に向けて努力ができる人間

もちろん培ってきた知識を正しく伝えられる文章力と制作物、例えばプラグインの開発で中核メンバーにいるとか。Laravelの著書を持っているとか。そういった輝かしい功績を持っていればポートフォリオはたちまち魅力的なものになります。
一方で今回の私のケースの場合は、PHPを勉強したのは7年ほど前に3ヶ月ほど。加えてPHPでは何も制作物を持っていないと来ました。ではこれから努力をするしかありません。折角努力をするのならその痕跡を残してアピール材料にした方が努力が伝わると思いませんか?
そんな考え持ってこのブログを書いています。この取り組みが吉と出るか凶と出るかは1年後くらいに判明することでしょう。同じ意志を持って頑張っている方、私もがんばります。共に励んでいきましょう!

以上決意表明終わり!

2021年にJasper Reportsを導入した男

目次

茶番

上司「けこくん、次の機能開発だけどJasperReportsでPDFを作って出力してほしいんだ。」
私「JasperReportsですか、初めて聞きました。」
上司「うん、参考資料になりそうなURL送るからよろしくね」

私「動かない…」

このブログを開設してはや20時間、早速このブログを見てくださった方がいらっしゃるみたいです。嬉しい。Botかな?クローラかな?きっと人だよヒューマノイドだよ

この記事は私のようにいきなり聞いたことのないOSSで開発を行うことになった方向けの備忘録です。上司が無茶振りをしてきても大丈夫!ソフトが古くても大丈夫!先達の資料を見ましょう!I love Internet!
※本記事はJava + Eclipse + Gradle + JasperReportsの記事になります。

JasperReportsって?

JasperReports (ジャスパーレポート)とは、米Jaspersoft社が開発/販売しているオープンソースの帳票及びビジネスインテリジェンスソフトウエアである。短時間かつ安価でグラフを含む帳票を作成することができるので海外では[どこ?]デファクトスタンダードオープンソース帳票ツールとされている。(Wikipediaより)

いや”どこ?”って書いてるけど不安だな~。さぞかし名のしれた帳簿作成ツールとお見受けした。
Javaやその他の言語でデータから動的にPDFを生成したい…表の長さも決まってないけどいい感じにレイアウトを調整してほしい…。
そんな願いに答えるソフトウェアです。公開は2001年、私がクレヨンしんちゃんと同い年くらいのころでしょうか。

このJasperReports君と付き合うことになったのですが、どうやらEclipse拡張とそうでないもの(JasperStudio)があるようで情報が混在して検索が大変でした。もっと検索上手にならねば。

導入

まずEclipseを用意します。ヘルプ>Eclipseマーケットプレイス>Jasperで検索。はい、出てきません。
昔はEclipseマーケットプレイスにあったみたいですが今はもう無いみたいです。
代わりにヘルプ>新規ソフトウェアのインストール>http://sourceforge.net/projects/jasperstudio/files/updatesite/6.17.0/と操作しましょう。ダウンロードを始めるとしばらく経ってからEclipseを再起動するように促されます。

f:id:keko5342:20211118004626p:plain

スタートページにReport Development~が出てきたら成功です。
f:id:keko5342:20211117145949p:plain

Gradleの設定

今度はプロジェクトの方の設定をしましょう。
Gradleの方はbuild.gradleファイルのdependenciesにimplementation 'net.sf.jasperreports:jasperreports:6.17.0'を入れるだけです。

次にデフォルトのrepositoriesに3行追加します。

repositories {
  mavenCentral()
  maven {                                                                  // 追加
    url "https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/" // 追加
  }                                                                        // 追加
}

この3文が重要でMavenはデフォルトだとmavenCentralに登録されているjarファイルしか見に行きません。それを拡張して"https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/"にあるjarファイルも見てね。という意味のコードです。

いざJasperReports作成

ファイル>新規>JasperReports
テンプレートの一覧がでてくるので今回はBlank_A4を選択します。

f:id:keko5342:20211118011002p:plain

次へを押して出てくるData AdapterというのはJasperReportsに動的に出力するデータの入力方法を指定するものです。
今回はDBから直入力をするわけではないので、One Empty Recordを選びます。
以下のような画面が出てくると思います。

f:id:keko5342:20211118011541p:plain

左側の先程選んだテンプレートが表示されている領域に、右側のメニューの要素を入れてPDFを作っていく感じです。
注意しないといけないことは、StaticTextには静的な文字を入れてTextFieldには動的な文字を入れる必要があることです。
どういうことかというとTextFieldの内容は常に式として評価されるため、TextFieldは変数を入れる箱になります。普通に文章を入れるとエラーを吐かれます。

PDFを作ってみよう

PDFを作るといっても、今のままPDFを作っても白紙の画面が出てくるだけなのでタイトルを追加します。
右メニューからStatic Textを選んで、ぐぐっと領域指定をしてやります。
f:id:keko5342:20211118012601p:plain

Static Textと書かれた画面になりました。画面左下の小さなタブからプレビューを選択してみましょう。
デザインした通りのレイアウトで文字が出ていますね。成功です。 f:id:keko5342:20211118012846p:plain

あとは適当にPDFを作りましょう。要素をダブルクリックすればプロパティが出てきます。そこから文字のフォントやサイズ、位置揃えまでExcelライクなことが一通りできます。

f:id:keko5342:20211118013706p:plain

こんな感じでしょうか、右側のテキストフィールドにはパラメータを入れます。 Eclipseのアウトラインタブを見てみましょう。パラメータの項目があります。
右クリックしてパラメータを追加します。パラメータの名前の変更は自分で作った既にあるパラメータに名前を変更したいパラメータをドラッグドロップするとできます。意味不明ですね。

f:id:keko5342:20211118014356p:plain
自分で作ったパラメータ君、デフォルトの名前

右クリックをしてもプロパティを見ても名前の変更らしき項目は見当たりません。しかしParameter2をParameter1にドロップすると…

f:id:keko5342:20211118014534p:plain
わ、なんか出た

この名前変更誰が考えたんでしょうか、怒りたいので出てきて下さい。
何度名前を変えてOKを押してもキャンセルするまで名前変更タブがでてきます。ホラーですね、キャンセルしましょう。
ちなみにパラメータを選択してコピペしてもこのタブは出てきます。こっちのほうがいいですね。

次はデザイン上のテキストフィールドをダブルクリックして式を入力します。
パラメータ>VALUE_DATA1>toString()をダブルクリック

f:id:keko5342:20211118015033p:plain f:id:keko5342:20211118015201p:plain

するとデザインタブに見慣れぬ式が出てきます。ここに私達はJavaから動的なデータとして値をセットすることができます。

Javaから印刷

JavaからPDFを作りたい…そのためにはJavaからjrxmlファイルを読み込む必要があります。 参考2番のページのサンプルがわかりやすいです。ここではこのサンプルベースに解説していきます。 b1san-blog.com

@RestController
@RequestMapping("/jasper/sample")
public class JasperSampleController {

  @Autowired
  private ApplicationContext context;

  @GetMapping
  public void getJasperSample(HttpServletResponse response) {
    try {
      //テンプレート読み込み
      Resource resource = context.getResource("classpath:jasperreports/sample.jrxml");
      InputStream in = resource.getInputStream();
      JasperReport report = JasperCompileManager.compileReport(in);
      //パラメーター、データソースの設定
      Map<String, Object> params = new HashMap<>();
      JRDataSource dataSource = new JREmptyDataSource();
      //PDFを作成し、レスポンスボディに設定
      JasperPrint print = JasperFileManager.fillReport(report, params, dataSource);
      response.setContentType(MediaType.APPLICATION_PDF_VALUE);
      JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream());
    } catch (IOException | JRException e) {
      //エラー処理
      e.printStackTrace();
    }
  }
}

注目すべきはtry文中腹の params というハッシュマップオブジェクトです。
こいつに

params.put("VALUE_DATA1", "abcdefg");

というようにデータを入れてやれば後の JasperFileManager.fillReport(report, params, dataSource); によってPDFにデータが入ります。実際にやってみます。

/*
 *  データの挿入
*/
String data4 = "akwodakp";
params.put("VALUE_DATA1", "abcdef");
params.put("VALUE_DATA2", "あいうえお");
params.put("VALUE_DATA3", "💯");
params.put("VALUE_DATA4", data4);

f:id:keko5342:20211118021257p:plain
絵文字はともかく日本語出てない…

Javaから日本語PDFを出力するためには少し手順が必要です。IPAexフォントという日本語の有名フォントをダウンロードして設定する必要があるのですが、こちらも参考2のリンクに詳しくのっています。そちらを参考にしてください。
ひとつ付け加えたいとすれば、例えば ipaexg というフォントを設定した場合それはプロパティのフォント一覧プルダウンに出てきません。直打ちしましょう。

f:id:keko5342:20211118021955p:plain
日本語出た

こんな感じで日本語が出力できるようになります。もう私から教えられることはありません。
ここまで長い長い文章でしたが、最後までお読みいただきありがとうございました。
ぶっちゃけWebページをそのまま印刷したほうが簡単なので、仕事でなければ土下座されても使いたくないですがJasperReportsを使うことになった。興味はある。といった方々の助力になれば幸いです。

参考

  1. Jaspersoft Studioプラグインのインストール | Jaspersoft Community
  2. 【Spring Boot】JasperReportsの導入(Gradle)

今更Laravel入門してみる #1

記事の内容

この記事には

  • 雑談
  • Mac PCへのPHPの導入、Laravelの導入

これらの要素が含まれています。プログラミング初心者、MacPC初心者におすすめです。

タイトル通り、今更Laravelに入門しました

ある日というか昨日マイナビ転職をぼーーーーっと眺めていたとき…、
「あっ、この企業いいな」と思った企業がLaravel中心のWeb開発を主にしていたのでLaravelの経験を積むことにしました。不純な動機です。

何を作っていくか

入門ということで、まずは簡単なメモアプリのようなものを作っていきます。
今回は導入なのでMac PCにPHPとLaravelを入れてみました。 Windowsの方はごめんなさい。

1. Homebrewの導入

兎にも角にもPHPを入れましょう。brewが入っていなければいれましょう。
brewはパッケージマネージャと言われるソフトウェアで、様々なAppStore外のアプリケーションの管理を助けてくれるすごいやつです。崇めましょう。

コマンドラインを開いてー、下の命令をコピーしてー、
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

実行してやれば長々としたログが出てきます。途中でXCode用の拡張機能を入れるか聞かれますが好きなように選んで下さい。私はYesにしました。 brew.sh

1.1 Macにおけるパスの通し方

今のMacはデフォルトのシェルが zsh です。
シェルに関しては詳しくないのであまり多くは書きませんが、OSの重要機能をたくさん担っているすごいやつです。

そんな zsh 君に私が今いれたソフトは "/opt/homebrew/bin" にあるよー。覚えててねー

という内容を書き込むことが必要になってきます。

具体的には、"~/.zshrc"というファイルにPATHを追加してやります。

  1. ターミナルを開く
  2. vi ~/.zshrc
  3. export PATH="$PATH:/opt/homebrew/bin" を追記(何か書いていたら消してはいけません)
  4. Escを押して :wq と入力(保存して閉じる。Write & Quit)
  5. brew -v

下の画像のようにバージョンが出ていれば完了です。でなかった場合はパスが通せていないのでもう一度チャレンジしてみてください。

f:id:keko5342:20211117072656p:plain
終結

1.2 PHPの導入

ようやく本題です。PHPを入れます。

  1. brew upgrade
  2. brew install php@8.0

これだけでPHPの導入完了です。upgradeはHomebrewを更新するという意味のコマンドです。
brewが古くなっていたり、パッケージリストが古くなっていると更新してくれます。
今回は8系を入れてみましたが、@の後の数字を変えることで古いバージョンも導入することができます。

2 Laravelの導入

さくっとLaravelも入れてみましょう。
まずはLaravelを入れるために、composer というソフトを入れます。
下のURLにアクセスしてダウンロードしましょう。

getcomposer.org

これまたパスが通っていないことがあるので、パスを通してあげましょう。
export PATH="$PATH:/Users/{UserName}/.composer/vendor/bin"
をまた zsh に覚えさせてあげてください。

{UserName}の箇所は環境によってことなります。自分がMacを最初に起動したときに設定したユーザ名です。

composerを入れ終われば、 1. composer create-project "laravel/laravel=5.1.*" sampleproject 2. php artisan -V 3. php artisan serve

これらのコマンドを実行しましょう。最初のコマンドの5.1.の部分を変えれば異なるバージョンを導入できます。私は6..*でバージョン6をインストールしました。

Webブラウザlocalhost:8000 と入力して、画像のような画面が出れば完成です。 f:id:keko5342:20211117074802p:plain

Hello Laravel!

3 締めの言葉

PHPとLaravelを導入するのに初心者向けの記事とは一体...。対象読者のレベル感と記事のレベル感のギャップを感じるような気がしますね...。
今回の内容はMac初心者の方がWeb開発してみたい!というときに役に立つことがあると思うのでよしとしておきます。
次からはおふざけを控え目にしてパパッと書いていきます。
ここまでお読みいただきありがとうございました。

4 参考

  1. Macにcomposerをインストール - Qiita
  2. Laravelでバージョンを指定してインストールする方法

ITブログ始めました

ご挨拶

はじめまして、けこと申します。
現在IT系中小企業にてエンジニアをやっています。
普段はゲームをしたり、アニメを見たり、ラノベを読んだりと遊び三昧ですが、心機一転エンジニアブログで発信活動を行うことにしました。
継続は力なり、ということで1年間を目標に毎日投稿できるようにがんばります。

主に発信するコンテンツ

エンジニアブログとは言いましたが、結構なゲーマーでもありますので(そこまで上手くはない)雑多な情報を配信できればと思っています。
しばらくはPHP/Laravel/Vue.jsあたりかな?アプリ開発メインで情報発信していきます。
皆様に私の発信する情報が役立てば幸いです。