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

  関連記事

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

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

no image
Angular.jsのvalueとfactoryの違いを考える

次のようなHTMLがあったとする。 [code language=”html”] <!doctype html> <html lang="jp" ng-app="App"> <head> <me …

初心者がRailsで開発 – deviseでユーザー認証設定 –

こんにちは、2年目のYukaです。 開発部所属でありながら実は、、 実際に自分で手を動かして開発する機会がなかなかありませんでした。。 しかしついに、、、 開発初心者がRailsでWebアプリの開発に挑戦します!! 今回のゴールは社内でも使用しているGoogleアカウントで簡単にログインができるよう …

SDKってどうやって作ってるの?【Android編】

こんにちは。4度目の投稿です。 現在私はAndroidのSDKを開発しています。 javaにもAndroidにもSDKにも手を出したのは初めてなので、最初はそもそもSDKのイメージが湧かず、ふわふわした状態で始めました。 SDKと調べても「あるソフトウェアを開発するために必要なプログラムや文書などを …

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

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

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

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

ナイーブベイズで羽生さんと羽生くんを分類してみた

はじめに こんにちは。システム開発部の中村です。 機械学習についての理解を促進するため、 データから分類モデルを自動で構築する古典的な方法である、 ナイーブベイズ分類器を実装してみました。 最近はCloudVisionAPIなど専ら画像解析が流行っていますが、 自分のような初学者には敷居が高そうだっ …

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

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

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

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

【未経験からのRuby on Rails – 第2回】Rubyのプログラムを書いてみる(Mac)

こんにちは。新卒1年目のmatsuariです。 前回はRubyとは何か、簡単にご紹介をしましたが、 今回は実際にRubyファイルを作成して、プログラムを書いてみるところまでご紹介していけたらと思います。 Mac環境のプログラミング初心者向けです。 はじめに、Rubyのプログラムを書くためのファイルを …