(社内新卒・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系をインストールします。
ターミナルとは?という方はこちらの記事に分かりやすい解説が載っています。
以下コマンドを打ってエンターで実行。
1 |
$ brew install php@7.1 |
次にインストールしたPHP7の起動設定を行ないます。
1 |
brew services start php@7.1 |
さらに、環境変数にインストールしたPHPのパスを設定しておきます。
環境変数とは?という方はこちらの記事を参照。
1 2 |
$ 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が正常にインストールされているか確かめてみましょう。
以下コマンドを実行。
1 2 3 4 5 |
$ 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って?という方はこちらの記事とこちらの記事を参考に。
1 2 3 4 |
# まずはバックアップ $ cp /etc/apache2/httpd.conf /etc/apache2/httpd.default.conf # そして追記するためvimエディタで設定ファイルを開く $ sudo vim /etc/apache2/httpd.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 「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を再起動しましょう。
1 |
$ sudo apachectl restart |
設定完了!果たしてPHPは正しく動くのか…?!
では最終確認と行きましょう。ローカル環境のデフォルトのドキュメントルートは /Library/WebServer/Documents/ 配下となります。
この配下に.phpファイルを配置します。
1 2 |
$ cd /Library/WebServer/Documents $ vim phpinfo.php |
1 2 3 4 5 6 |
// PHPの設定情報を呼び出すphpinfo()関数を記述 <?php phpinfo(); ?> |
そして、好きなブラウザでURL欄に「localhost/phpinfo.php」と入力してエンター!…すると、
はい大成功…となりましたでしょうか?
これがうまく表示されていれば、あとは/Library/WebServer/Documents/配下に好きなように.phpファイルを入れて、
ブラウザで「localhost/<ファイルのパス>」でアクセスすれば画面上で出力結果が確認できます。
日々勉強した内容だったり、ちょこっとコードを試し書きなんて時このローカル環境でテストしていけばよいかと思います。
本日の講義はこれまで!w
以上となります。かなり駆け足で前提知識をすっ飛ばしての説明となりましたので、
不明点がある方はコメントor社内の方は直接亀梨に連絡もらえればと思いますw
まずは今回構築したローカル環境でいろいろ試しつつ、今回の記事中に出てきたターミナル(CLI, シェル)やvimエディタについて勉強してみたり、Webサーバー等開発環境について勉強してみたりと派生していっていただければと思います。
また何かPHP or プログラミング初心者向けの記事を思いついたら随時投稿させていただきます。
リクエストもコメントor社内の方はメール等でお待ちしていますよ!それではまたー\(^o^)/

関連記事
-
-
Android 非同期処理についてまとめてみた
Androidには、UIに影響を与えないよういくつか非同期処理が用意されています。 今回は非同期処理の代表的な ・Service ・IntentService ・HandlerThread について違いを踏まえながらまとめます! 非同期処理について(http://codezine.jp/articl …
-
-
ディープラーニングで「顔が似ているAKB48のメンバーを教えてくれるbot」を構築
概要 こんにちは、システム開発部の中村です。 今回は、Facebook Messenger APIを利用して、 画像をアップロードすると、似ているAKB48のメンバーを教えてくれるbotを実装しました。 尚、ディープラーニングやTensorFlowそのものの解説というより、 「エンジンとしてディープ …
-
-
プログラミング初心者がswiftでゲームアプリ的なものを作ってみた。
こんにちは、DAC2年目のkumataです。 普段は素敵な先輩方に囲まれてインフラ周りのお仕事をさせて頂いていますが、 今回は業務とは全く関係ないプログラミングをやってみました。 全く初心者なのですが、swift+Xcodeで簡単にスマホゲーム的なものが作れました。 初心者の目線から作成方法をつらつ …
-
-
Selenium × PHP でテスト自動化!【環境構築編】
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 テスト自動化の背景 わたくしが担当するXmediaOneでは品質担保のために①コードベ …
-
-
Polymer core-ajax の使い方
Polymerのcore-ajaxの使い方。 まずは、index.html [code language=”html” title=”index.html”] <!doctype html> <html> <head> …
-
-
iOS端末情報をTreasureDataに送るアプリをswiftで作ってみた。
はじめまして、2年目のOyamanです。 通常業務とは別のことになりますが、Swiftに触れる機会が少しあったので、スマホ関連の記事を書かせていただきます。 はじめに SwiftとTreasureDataのSDKを使って、 iOSの端末情報をTreasureDataへ送るアプリを作ってみます。 今回 …
-
-
Scala入門 基礎編「Scalaの書き方を理解しよう」 – PHP使いからScala使いへ転身!
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 さて、今回はScala入門第二弾として、Scalaの書き方を紹介する基礎編をお送りしま …
-
-
Scala実践「Either型を使ってimmutable(不変)なコードを書こう!」
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Scalaでイケてるコードを書きたい! 背景 わたくしはDACに入社してからScala …
-
-
Polymer on Rails
Web Componentsをご存知だろうか。これが普及すればWebの開発は画期的に変わるだろう。 説明すると長くなるので、LIGさんのにその辺はお任せして。(この記事読んでください。) 簡単に言えば、下記にあるような新たに提案されたブラウザ向けAPIの総称。 Custom Elements, 説明 …
-
-
ナイーブベイズで羽生さんと羽生くんを分類してみた
はじめに こんにちは。システム開発部の中村です。 機械学習についての理解を促進するため、 データから分類モデルを自動で構築する古典的な方法である、 ナイーブベイズ分類器を実装してみました。 最近はCloudVisionAPIなど専ら画像解析が流行っていますが、 自分のような初学者には敷居が高そうだっ …