(社内新卒・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エンジニア採用情報

  関連記事

no image
Polymer on Rails

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

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

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

no image
【小ネタ】Javascriptのconsoleオブジェクトをもっと便利に使う方法

すごく便利なconsoleオブジェクトですが、ブラウザによってサポートされているメソッドが なかったり、そもそもconsoleオブジェクトが使えなかったりと、たまに不便だったりします。 そんなときによく使う便利なコード。 [code language=”javascript” …

Android 非同期処理についてまとめてみた

Androidには、UIに影響を与えないよういくつか非同期処理が用意されています。 今回は非同期処理の代表的な ・Service ・IntentService ・HandlerThread について違いを踏まえながらまとめます! 非同期処理について(http://codezine.jp/articl …

GoogleスプレッドシートからTreasureDataへデータを取り込む

AudienceOneの開発を担当しています。skryoです。 またまたTreasureDataネタですが、今回はGoogleスプレッドシートからGoogleAppsScriptを使ってTreasureDataへデータを取り込む手順を紹介したいと思います。 なぜ? Googleスプレッドシート上でマ …

Scala入門 準備編「開発環境構築」 – PHP使いからScala使いへ転身!

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

TypeScriptについてまとめてみた

はじめに JavaScript がとりあえずそのまま動くので、雰囲気で使ってしまいがちな TypeScript。初心者向けに基本的なことをまとめてみました。 TypeScript って何? TypeScript はマイクロソフトが開発したプログラミング言語で、オープンソースでメンテナンスされています …

no image
gulp.jsで広告タグの開発環境を整える

SEOの観点から、サイト表示速度の高速化のためJavaScriptファイルから不用な空白や改行、 コメントを除去したりやローカル変数名を短縮するminifyが奨励されていますが、 これはタスクランナーのgulp.jsとプラグインを使って自動化する事が可能です。 ※gulpの基本的な使い方については下 …

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

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

Bootstrapのモーダル機能で多重表示する際に解決しなければならない2つの問題

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発・保守を担当しています。 エンジニアの皆さん、デザインってどうしてます? わたくしはプライベートでとあるW …