(社内新卒・PHPビギナー向け)MacでPHP7開発環境を構築しよう!


はじめに

みなさんこんにちは、プロダクト開発本部の亀梨です。
普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う
統合プラットフォームの開発を担当しています。

えっ!?新卒のプログラミング研修はPHPで行われるって?!俺の得意言語やないか!!

はい、ということでいきなりですがこの記事を書くことになった動機です。
時節的にDACにもたくさんの新卒の方々が入社され、1ヶ月の新卒研修を終えて我らプロダクト開発本部にもエンジニア志望の優秀な面々が配属されてきました。
そこでプログラミング研修をPHPで行うって聞き、居てもたってもいられなくなった次第でw。

普段XmediaOneの開発言語はScalaなのですが、わたくし以前の会社で3年間PHPで開発を行っておって、
かつ人生で初めて出会ったプログラミング言語がPHPなので思い入れもひとしおなわけで。

というわけでさっそくいってみよー!

ではさっそく開発環境構築

まずはプログラミング初心者には事前知識がいろいろと必要なのですが、
論より証拠と言いますか、習うより慣れろといいますか、わたくし自身が文系のため頭で考えるより体に叩き込んで覚えるスタイルを取っているので、
いろいろすっ飛ばして環境構築を進めます。

弊社ではエンジニアにMacBook Proが支給されます。
このMacですが、始めからPHPがインストール済みではあるのですがバージョンが古いことがあります。
5.5とか5.6とか。

現在のPHPは最新バージョンが7.1で、最近のPHP関連の書籍も7系を前提に書かれていることが多いので、
バージョンをアップデートしておくことは必須となります。

Homebrew(パッケージ管理ツール)を使ってPHP7系をインストール

PHP7系をインストールするためには様々な方法があるのですが、ここでは Homebrew というツールを使う方法を取ることにします。
Homebrewの概要とインストール方法は、こちらの記事を参考にしてみてください。

ではHomebrewがインストールされている前提で、ターミナルからPHP7系をインストールします。
ターミナルとは?という方はこちらの記事に分かりやすい解説が載っています。

以下コマンドを打ってエンターで実行。

次にインストールしたPHP7の起動設定を行ないます。

さらに、環境変数にインストールしたPHPのパスを設定しておきます。
環境変数とは?という方はこちらの記事を参照。

ここまできたらPHPが正常にインストールされているか確かめてみましょう。
以下コマンドを実行。

はい、バージョンが7.1~となっていますね。これでOK。

Webサーバー:Apacheの設定

お次はPHPをローカル環境で使うために、Macに標準でインストールされているApacheにPHPの設定を行いましょう。
Webサーバーとは?Apacheとは?という方は、こちらの記事を参考に。

普段わたし達がPCやスマートフォンで様々なWebサイトを閲覧する際は、Google ChromeやMacのSafari、MozillaのFirefox等ブラウザを使って
インターネットを経由して各企業のWebサーバーにアクセスしてWebサイトのページを取得してきています。
この仕組みはローカル環境でも一緒なので、WebサーバーであるApacheの設定が必要になります。

ではでは再びターミナルを開いて、Apacheの設定ファイル: httpd.conf を更新します。
httpd.confファイルは、/etc/apache2/ 配下にあります。
このファイルは重要な設定ファイルのため、はじめにバックアップを別で取っておいた上で、既存のファイルに設定を追記します。
またこのファイルは管理者権限でなければ変更ができないため、sudoコマンドを使ってvimエディタにて開きます。

管理者権限とは?sudoコマンドって?vimって?という方はこちらの記事こちらの記事を参考に。

上記を保存したら、その設定を反映させるためにApacheを再起動しましょう。

設定完了!果たしてPHPは正しく動くのか…?!

では最終確認と行きましょう。ローカル環境のデフォルトのドキュメントルートは /Library/WebServer/Documents/ 配下となります。
この配下に.phpファイルを配置します。

そして、好きなブラウザでURL欄に「localhost/phpinfo.php」と入力してエンター!…すると、

はい大成功…となりましたでしょうか?
これがうまく表示されていれば、あとは/Library/WebServer/Documents/配下に好きなように.phpファイルを入れて、
ブラウザで「localhost/<ファイルのパス>」でアクセスすれば画面上で出力結果が確認できます。

日々勉強した内容だったり、ちょこっとコードを試し書きなんて時このローカル環境でテストしていけばよいかと思います。

本日の講義はこれまで!w

以上となります。かなり駆け足で前提知識をすっ飛ばしての説明となりましたので、
不明点がある方はコメントor社内の方は直接亀梨に連絡もらえればと思いますw

まずは今回構築したローカル環境でいろいろ試しつつ、今回の記事中に出てきたターミナル(CLI, シェル)やvimエディタについて勉強してみたり、Webサーバー等開発環境について勉強してみたりと派生していっていただければと思います。

また何かPHP or プログラミング初心者向けの記事を思いついたら随時投稿させていただきます。
リクエストもコメントor社内の方はメール等でお待ちしていますよ!それではまたー\(^o^)/


DACエンジニア採用情報

  関連記事

ディープラーニングで「顔が似ているAKB48のメンバーを教えてくれるbot」を構築

概要 こんにちは、システム開発部の中村です。 今回は、Facebook Messenger APIを利用して、 画像をアップロードすると、似ているAKB48のメンバーを教えてくれるbotを実装しました。 尚、ディープラーニングやTensorFlowそのものの解説というより、 「エンジンとしてディープ …

【小ネタ】JSで要素の組み合わせを列挙する

下記のような、キーの数や要素数が可変のデータの組み合わせを、列挙するjavascriptコードです。 pythonにはitertoolなどの順列・組み合わせ計算を行う定番ライブラリがあるようです。 やっている事ですが、イメージとしては組み合わせを数列に置き換えています。 1桁目が2進数、3桁目が3進 …

iOS端末情報をTreasureDataに送るアプリをswiftで作ってみた。

はじめまして、2年目のOyamanです。 通常業務とは別のことになりますが、Swiftに触れる機会が少しあったので、スマホ関連の記事を書かせていただきます。 はじめに SwiftとTreasureDataのSDKを使って、 iOSの端末情報をTreasureDataへ送るアプリを作ってみます。 今回 …

【未経験からのRuby on Rails – 第3回】変数と定数

こんにちは。新卒1年目のmatsuariです。 今回はRubyに限らずプログラミングを学ぶ上で非常に重要となる「変数と定数」について、ご紹介していきます。 変数とは・・・ オブジェクトを一時的に格納しておく箱で、オブジェクトを識別するために利用します。 言葉だけでは理解が難しいかと思いますので、まず …

Scala実践「Either型を使ってimmutable(不変)なコードを書こう!」

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Scalaでイケてるコードを書きたい! 背景 わたくしはDACに入社してからScala …

Scala番外編「Boxに保存したファイルをBox APIを使ってダウンロードしよう!」

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Box APIを使う背景・目的 DACはメディアレップです メディアレップとは、インタ …

PyStanによるはじめてのマルコフ連鎖モンテカルロ法

はじめに こんにちは。システム開発部の中村です。 社内で行っている『データ解析のための統計モデリング入門』(所謂緑本)の輪読会に参加した所、 大変わかりやすい本だったものの、Macユーザには悲しい事に実装サンプルがWinBUGSだったため、 9章の一般化線形モデルのベイズ推定によるアプローチをPyt …

プログラミング初心者がswiftでゲームアプリ的なものを作ってみた。

こんにちは、DAC2年目のkumataです。 普段は素敵な先輩方に囲まれてインフラ周りのお仕事をさせて頂いていますが、 今回は業務とは全く関係ないプログラミングをやってみました。 全く初心者なのですが、swift+Xcodeで簡単にスマホゲーム的なものが作れました。 初心者の目線から作成方法をつらつ …

no image
Polymer on Rails

Web Componentsをご存知だろうか。これが普及すればWebの開発は画期的に変わるだろう。 説明すると長くなるので、LIGさんのにその辺はお任せして。(この記事読んでください。) 簡単に言えば、下記にあるような新たに提案されたブラウザ向けAPIの総称。 Custom Elements, 説明 …

Qiita Team API と Google Spread Sheet でチーム日報を生成する

チーム日報を活用する MarketOne 開発チームでは複数拠点に分かれての開発を行っています。リモート開発が中心となると口頭でのコミュニケーションに限界があるため、テキストベースのコミュニケーションの比重が高い状態にあります。 チケットシステムやソースコード管理ツール上の議論はもちろんおこなってい …