virtualboxでPHPの環境構築を作成してみた

皆さん、こんにちは入社2年目の鹿倉です。今回は、virtuakboxでPHPの環境構築を作成してみました。

何故:virtualboxでPHPの環境構築を構築しようと考えたのか。

 PHPを学習し始めた人々や研修を受けた人々では、PHPで環境構築する際に、xampp やmampなどのパッケージを利用してPHPを学習している人は、多いと思っています。
 しかし、私がこれまで、関わっていたプロジェクトでは、xampp やmampを使用して開発は、1度もありませんでした。では、何を使って開発しているのでしょうか。
 結論から言えば、プロジェクトによります。しかし、私の経験上、最も開発環境構築で利用したのは、virtualboxで環境構築を作成するケースが多かったです。そこで、今回はvirtualboxでPHPを環境構築を作成しようと考えました。

開発手順

事前定義:今回のPHPの環境構築では、以下の条件を元に作業を行う。また、VirtualBox,Vagrant,centOSは、インストールされた状態とする。

・VirtualBox バージョン6.1
・Vagrant バージョン2.2.18
・centOS バージョン7.8
・PHP バージョン 5.4

1.作業ディレクトリから仮想環境に接続までの手順
1-1.作業ディレクトリの作成
仮想環境に必要なディレクトリを用意する。ディレクトリは、以下の例で作成する。
[crayon-673f01047f79c192291253  ]$ mkdir  F:\space_php[/crayon]

1-2.Vagrantfileを作成
ディレクトリを作成したらcdコマンドで移動して、vagrant initのコマンドを実行してVagrantfileを作成します。Vagrantfileとは、IP、ポートなど構築時に設定を記述する事が出来るファイルです。


[crayon-673f01047f7a3908466354  ]$ vagrant init[/crayon]

1-3.仮想環境を起動します。
以下のコマンドを実行する事で、Vagrantを起動します。

1-4.仮想環境にssh接続を
sshで接続するコマンドを実行します。ssh接続をする事で、仮想環境上で、PHPやApacheのインストールなど仮想環境上で操作を行う為にssh接続で仮想環境に接続します。



2.仮想環境でのサーバー構築
2-1.PHPとApacheのインストール
ssh接続に成功したら、いよいよ、仮想環境にPHPとApacheのインストールを行います。
以下のコマンドでインストールを実行します。

2-2.Vagrantfileの設定
Vagrantfileでネットワークの設定を行い、ローカルから仮想マシンを見られる様に、編集します。その為に一旦、ssh接続を解除します。以下のコマンドで解除出来ます。
[crayon-673f01047f7ab344105274  ]$ exit[/crayon]
Vagrantfileで以下の記載されている内容を#を外してコメントアウトします。


コメントアウト後、再起動を行い、再び,ssh接続を行います。


ssh

2-3.Apacheのファイル編集
phpを表示させる為、Apacheファイルを修正をします。
以下のコマンドでファイル内を閲覧します。


移動後、ファイル内で以下の記載されているのか確認をします。。
[crayon-673f01047f7b6482922081  ]AddType application/x-compress .Z [/crayon]
[crayon-673f01047f7b9824218534  ]AddType application/x-gzip .gz .tgz[/crayon]
上記の2行を発見したら以下の内容に変更します。


[crayon-673f01047f7be885116289  ]AddType application/x-httpd-php-source .phps[/crayon]
この変更をする事でApacheは拡張子がPHPのファイルをPHPプログラムとして処理を行う事が出来ます。

2-4.phpファィル作成と動作確認
これで、設定を完了しました。最後に、phpファイルを作成して、ブラウザで表示されるか動作確認を行います。以下のディレクトリに移動して、phpファイルを作成します。



test.phpは以下の内容を記載しました。

記載後、ブラウザで

でこんにちは、PHPと表示されたら成功です。

最後に

 今回の環境構築を作成してみて、構築は簡単ではないですか、作業をする事でどの様にして、ブラウザで表示されるには、どの様な条件でなければならないのか理解するいい経験でした。
 しかし、プログラマーの年数が上がるにつれて、今度は、開発環境で、何か必要なのかを見極める事が必要なのだと考えています。
 今度、Laravelの導入だったり、Chefを使った自動構築など色々調べて学習を継続する事が今度、未来の私が困った時にその経験が助けになると考えています。

それでは、また次の記事でお会いしましょう。アディオス?

コーディング規約の重要性 

皆さん、こんにちは、入社2年目の鹿倉です。今回はコーディングの重要性を語ろうと思います。

コーディングとは

 コーディング規約の前にコーディングとは、何でしょうか。
 コーディングとは、プログラミング言語を使ってソースコードを作成する事です。曖昧な事ですが、詳細には、仕様書に沿って、ソースコードを作成して、ブラウザで見える化をする事です。
 読者は、あれ?、それってプログラムじゃないかと疑問に思っているかもしれませんが、実は、コーディングはソースコードを書く事だけを指しています。一方でプログラムは、書くだけではなく、設計したり、テストする事を指しているのです。

コーディング規約の重要性

 コーディングの意味を知った所で、いよいよコーディング規約を説明します。
 コーディング規約とは、開発者がプログラム言語でソースコードを記述する際に、形式や書き方を決める事です。簡単に言えば、プロジェクトで開発する際に、ソースコードの形式のルールを決める事です。
 実は、コーディング規約を決めるのは、とても重要な事なのです。何故なら、コーディング規約を決める事で、作業効率が上がる事が出来るからです。
 例えば、プロジェクトで複数メンバーで開発する際、メンバーそれぞれがコーディングを自由に書いたらどの様な事が起きるのでしょうか。
 他者のソースコードを見る際に独特なソースコードが書かれた場合、理解するのに時間が掛かる事でしょう。そうなると、理解するのに時間が掛かり、効率が悪くなってしまいます。それを阻止する為に、コーディング規約は、非常に重要なのです。

PHPにおけるコーディング規約の例

 では、実際にコーディング規約には、どんなルールがあるのでしょうか。
今回は、PHP言語で、コーディング規約の例を説明しようと思います。
 PHPのコーディング規約で代表的なのは、PSR-2 と呼ばれるコーディング規約です。この規約は、PHPでソースコードを記述する際に、PHPのコーディングスタイルつまり、形式についての規約が記載されています。では、PSR-2にはどの様なコーディング規約があるのでしょうか。

簡単なプログラミングを例に説明します。以下のプログラミングは、readline関数でユーザーのコンソールで年齢を入力したのが$ageに代入されます。その後、関数で年齢の範囲を判定して、関数の結果を出力しています。

■PSR-2のコーディング規約の一部の例

・if文の「{」の前では改行してはいけない。
・elseやelseifの前後括弧は同じ行に配置。
・else ifではなくelseifで1語でまとめられる様にする。
・インデント(字下げ)をする際は、半角スペースを4つ開ける。

ここに、記載されていている、PSR-2は、一部に過ぎません。
 他にも、PSR-2では、PHPのコーディング規約は多くあるので、以下のURLでも参考にしても良いと考えています。是非、参考にして見てください。

URL:http://www.php-fig.org/psr/

コーディング規約の記事を作成した考えた事

今回のコーディング規約について記載して思った事は、プログラマーは、決められたコーディング規約の中で最適なコーディングを書く事が重要だと考えました。
 ソースコードには、エラーが起こらない限り書き方は、自由です。しかし、自由にし過ぎると他者がソースコードを見た時に、理解出来るのかの方で重要です。
 そうしなければ、結局は、私しか理解する事が出来ないコードになってしまって、開発する際に、大きく足を引っ張ってしまいます。
 プロのプログラマーを目指す人には、ただソースコードを書くだけではなく、自分が書いたソースコードを他者に説明するスキルを身につける事が必要だと私は、考えています。

それでは、また、次の記事でお会いしましょう。アディオス!!?

鹿倉の新入社員活動記録・第2回

こんにちは! 社会人、1年目の鹿倉 圭斗です。

今回は前回の外部研修に続いて昨年5月に行われた、研修内容の内容を更新します。

★5月の研修内容

■研修内容

 5月の研修内容は、phpのフレームワークの1つ、Laravelとバージョン管理入門であるgitを学びました。また、5月には、研修の理解度を図る為に中間テストと終了テストを実施しました。

 内容としては、研修内容からほとんど出題されました。テキストを読んだり、プログラムを書いたりして復習をしていれば問題ないですよ。

 5月下旬の2週間は、研修の集大成のシステム開発演習が有りますが、今回では収まり切れないので、次回の3回目にピックアップします。お楽しみに!?

■Laravelを始めて触りました。

 4月でPHPの研修が終わり、Laravelの研修を行いました。Laravelと聞いて最初は、何だろう、難しいそうと内心怖がっていました。ಥ_ಥ

 しかし、Laravelを使用してみるとPHPの時と比べて便利だと実感しました。

 例えば、ページリンクを設定する際、phpでは、データベースの接続から前ページ、次ページのコードを一からコーディングしなければなりません。一方でLaravelでは、データベース自動生成があるので数行のコーディングでページリンクを実装する事が出来ます。

 この様にLaravelでは、phpで実装に時間が掛かる所を短縮する事が出来ます。実際にページリンクを実施してみたら、本当に楽でまるで、魔法使いになったと実感しました。?‍♂️

 Laravelとphpと比べる事で、Laravelで何が便利なのかを学習することでLaravelを深く学べるので比較するのもいいかもしれませんね。?

■Git を使用しました。

 Laravelより、苦労したのは、Gitと呼ばれるバージョン管理です。

 バージョン管理とはシステム開発中に更新されていくファイルの変更、更新を記憶する事です。読むだけでは、イメージがわくのが難しいですよね。

 システム開発は、1人で作業するものではありません。実際は,複数のメンバーで作業します。作業中では、メンバーが作成したプログラムのファイルを編集します。編集した内容を更新して、他のメンバーにも反映させる時にGitを使います。

 Gitの使用が難しい点は、以下の点があります。

  • gitは、Linuxと同様にコマンド操作で、コマンドを覚えなければならない。
  • コマンドの意味を理解して、実行後どの様な姿になるのか想像する必要があります。

 私も、gitの使い方には、本当に苦労しました。

 特に、Gitは、覚えるコマンドの数が多いので、実行するためにどのコマンドを使わなければならない所に苦労しました。?

★4月と比べて成長出来た点

■寿司打、4000円以上行きました。

 5月初頭のタイピング練習、寿司打で、自己ベスト更新の4620円まで到達しました。最初の時は、2000円代後半のスコア時と比べて進歩しました。中々,4000円代の壁が超える事が出来ず、苦労しましたが、研修終了前に、超えられて本当に良かったです。?

 スコアを超えるために以下の事を行いました。

  • 寿司打を毎日、15分やり込む事。
  • 打ちにくいまたは、時間が掛かった所を練習を行いました。

 タイピングは、作業効率を上げる事が出来るので、今からでもタイピングして作業効率を上げて欲しいです。

★お役立ち情報

 皆様は、ショートカットキーを使用していますでしょうか。学生の一部では、ファイルをコピー、削除する際にマウスで操作している人も多いはずです。

 実は、マウスで操作するより、ショートカットキーで操作した方が作業効率は上がります。

 例えば、Excelで毎回上書き保存のボタンをクリックする場合とshift+Sでショートカットキーを使用するのどちらが効率的でしょうか。ショートカットキーを使用した方が早いと実感するはずです。

 この様にショートカットキーは、作業効率を早くなるので、みなさんも、社会人になる前にパソコンの基本操作やショートカットキーの操作を慣れておきましょう。

★まとめ

 5月中旬までの研修を振り返って見て、いよいよ研修内容も佳境になってきました。

 研修を始めた時と比べると、徐々にですが成長したと実感しました。特に,最初の頃は、コードを書くことが出来るのか不安でしたが,日々の学習をする事によって出来る様になって成長していると思いました。

 しかし、全てを理解してはいないので、研修後も、学習を怠らずに一人前のプログラマーに成長したいと思いました。

次回の第3回は、外部研修の集大成、システム開発演習について語ります。

それでは、皆様、またお会いしましょう。 アドゥー!!

鹿倉の新入社員活動記録・第1回

■読者の皆様へ

初めまして!!  システム開発研究室の鹿倉 圭斗と申します。タイトルから、お察しの通りの社会人、ピカピカ1年目の見習いプログラマーです。この活動記録は、ITに興味がある学生に向けに投稿していきます。

さて、皆様はこんな疑問をもっているでしょうか?

  • ITに興味があるけど、実際に入社後、どの様に働いているのか。
  • PG(プログラマー)の研修内容はキツイのか。
  • 研修後、どの様な動きをしているのか。
  • 研修の雰囲気はどのような様子なのか。

疑問に思っている方は多いと考えています。去年、就職活動していた私も、入社後の働くイメージがありませんでした。そこで、活動記録を定期的に更新する事で、入社後のイメージを持つ事が出来ます

今回、記念すべき、第1回目は、4月末までの外部研修の様子をお伝えします。

※研修内容は企業によって異なるので、参考程度でお考えください。

■外部研修に参加しました。

★外部研修の1日のスケジュールと研修の様子

 自宅から1時間掛けて研修会場である、銀座✨に到着しました。(朝6時起きで少し眠くて電車の中で寝てしまいました。・・・)

時間内容
9:00~9:15連絡事項,3分間スピーチ
9:15~9:45前回の座学の復習
9:45~12:00座学
12:00~13:00昼休憩
13:00~17:00座学
17:00~18:00日報の作成
研修の1日のスケジュール

1日のスケジュールは、左側の通りになっています。

研修は2か月間、月曜日から金曜日までの9時から18時の8時間の研修です。

1時間ごとに10分間の休憩があります。(ちなみに皆さん、休憩中は疲労回復のため仮眠を取った人も居れば、会話もしている人もいました。)

研修の雰囲気は和やかな様子で、よく世間で噂をするブラック研修ではありません。

(真剣に研修を受ける研修環境で、本当にホッとしています。?)

★研修内容

研修の内容は、以下の項目通りです。

  • 4月では、ITの基礎、Linux,プログラミング入門(HTML・CSS、Java Script ,My SQL,PHP)を学習しました。
  • 朝の業務連絡後には、ローテーションでIT業界の最新のニュース、トレンドを3分間スピーチを行いました。
  • 昼休憩後は、毎週、月曜日・水曜日・金曜日は、作業効率を図るため、寿司打を用いてタイピングを練習をしました。<^!^>(寿司打のレベルは、標準の5000円レベルの難易度で打ちました。)
  • 昼休憩後の火曜日と木曜日は、毎回講師から課される、テーマをグループディスカッションして発表する事を行いました。※テーマは様々です。ex(東京のお土産で選ぶなら何か。、幸せとは何か。等)

 研修のスピードは、とても早く、テキスト1冊が1日で終わる内容もありました。研修のスピードの速さがまるで、新幹線の様なスピードの速さで、研修から2週間後には、頭がパンクしている状態でした。(*_*)

 それでも、研修のスピードについていく様に対策を実行しました。

★研修以外での取り組み

  • テキストの内容で疑問や矛盾を持った事は質問しました。
  • 自宅で学習した事を実践してみました。

 以上の2点を取り組みをする事で、徐々にプログラミングを理解することが出来ました。特に、テキストの内容を質問を積極的に行いました。( `ー´)ノ

研修のスピードが早い為、分からない点もありました。しかし、分からないままにすると、後に他の言語の学習でも影響するので質問しました。

★お役立ち情報

 学生の皆様、IT業界問わず、社会人1年目は、積極的に質問した方が良いでしょう。質問する事で、分からない点も分かるようになり、また、指摘されても、自分では気付かなかった間違いや修正する点を発見する事ができます。

大学や専門学校で先生や教授に質問していない方は、今のうちに質問をする習慣を付けていくと良い事がありますよ。

■まとめ

今回、4月の研修をお伝えしました。 研修を振り返って見て、雰囲気は、プログラミングを実行する時に、講師が徘徊して、質問出来る環境だったので有意義な研修を過ごすことが出来ました。また、初学者でも分かりやすい図や説明をしているので、未経験な私でも、付いて行く事が出来ました。(講師の方に、本当に感謝しています。((+_+)))

しかし、一人前のエンジニアになるには、プログラミングを実行して終わりではなく、もっと効率良くできるのではないかという探究する事も必要だと感じました。好奇心旺盛な方は、もしかしたらプログラマーの職に適しているのではないかと考えています。

次回の第2回目は、5月の外部研修の内容をお伝えします。それでは、IT業界に興味がある学生の皆様、またお会いしましょう。

そして、就職活動中の学生の皆様、頑張ってください。 アディオス!!