DACエンジニアブログ:アドテクゑびす界

DACのエンジニアやマーケター、アナリストが執筆するアドテクの技術系ブログです。

(社内新卒・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系をインストールします。 ターミナルとは?という方はこちらの記事に分かりやすい解説が載っています。

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

$ brew install php@7.1

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

brew services start php@7.1

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

$ echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile

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

$ php -v
PHP 7.1.17 (cli) (built: Apr 26 2018 22:04:34) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.17, Copyright (c) 1999-2018, by Zend Technologies

はい、バージョンが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って?という方はこちらの記事こちらの記事を参考に。

# まずはバックアップ
$ cp /etc/apache2/httpd.conf /etc/apache2/httpd.default.conf
# そして追記するためvimエディタで設定ファイルを開く
$ sudo vim /etc/apache2/httpd.conf
# 「Dynamic Shared Object (DSO) Support」項目の"#LoadModule php5_module libexec/apache2/libphp5.so"の下行に以下を追記
...
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php7_module /usr/local/Cellar/php@7.1/7.1.17/lib/httpd/modules/libphp7.so <- この行を追記
...
<IfModule dir_module>
    DirectoryIndex index.php index.html <- ココにindex.phpを追加
</IfModule>
...
# [IfModule mime_module]内の最下行に以下追記
#AddOutputFilter INCLUDES .shtml
AddType application/x-httpd-php .php <- この行を追記
...
# httpd.conf最下行に以下3行を追記
<IfModule php7_module>
540 PHPINIDir /usr/local/etc/php/7.1/
541 </IfModule>

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

$ sudo apachectl restart

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

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

$ cd /Library/WebServer/Documents
$ vim phpinfo.php
// PHPの設定情報を呼び出すphpinfo()関数を記述
<?php

phpinfo();

?>

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

f:id:yebisupress:20180824151731p:plain

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

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

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

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

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

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