*

Macで ローカルサーバー構築 PHP設定編

公開日: : 最終更新日:2013/11/25 Apache, Mac, PHP, 開発 , ,

Macで ローカルサーバー環境を構築するまで PHP設定編

ネットでの情報は必要最低限しか載ってないので、そのあたりのネタ+α情報です。
今回はPHPまわりの事について書きます。

シリーズ

Macで ローカルサーバー構築 Apache起動編
Macで ローカルサーバー構築 Apache設定編
Macで ローカルサーバー構築 ローカルネットワーク参加編
・Macで ローカルサーバー構築 PHP設定編
Macで ローカルサーバー構築 Postfix基本編

動作環境

OS X 10.9 OS X 10.9 Mavericks
Apache 2.2.24
PHP 5.4.17

予備知識

CGI
PHPとか動かすのに必要な仕組み
※リンク先はwikipedia

phpのバージョンの確認

Macには最初からPHPは入っているのでインストールとかしなくても良いので面倒はありません。
ただ以前はLionでPHPのバージョンが5.3系だったのですが、OSのアップデートを行いMavericksにしたらPHPのバージョンも変更になりApacheの設定も初期化されてました。
今後MySQLを入れる際に必要となるmcryptモジュール追加時などにPHPのバージョンが違うと躓くのでその辺りも含めて。

先ずはPHPの確認を行います。

$ php -v

特に何もしていない場合は「PHP 5.*.*」などと表示されます。
出ない場合はPHPが入ってない、適切なパスが通ってない等が考えられます。

・パスの確認

$ sudo echo $PATH

デフォルトのPHP置き場所「/usr/bin」なので無い場合は追加するなりパスを通す必要があります。

PHPの情報を表示する

・PHPの詳細情報 コマンドから

$ php -i ← ターミナルから見る場合
$ php -i | grep mcrypt ← モジュール等の一部情報のみ見る場合
$ php -i > phpinfo.txt ← テキスト等に書き出す場合

以前の記事の続きになりますが、ここから読む場合は適宜脳内変換して下さい。

以前作成したフォルダーにindex.phpを作製します。

$ sudo vim /Library/WebServer/Document/cochma.net/index.php

内容

echo phpinfo();

※PHPの記述は「<?php」と「?>」の間に記述して下さい。「<?」(ショートカットタグ)でも動く場合がありますが、サーバーによって動かない場合もあるのでちゃんと記述した方が後々困りません。
追記したら「:wq」で保存して「cochma/index.php」にアクセスして下記の様な画面が表示されたら成功です。

スクリーンショット3
※一部画してます。

後は好きなようにプログラムを書いて動かす事が出来ます。

必要になりそうな設定

・mcryptのインストール
ネットに山ほど記事があるので割愛しますが、
ただportから入れる方法は通常のマックではやらない方が良いです。失敗談は下に書きます。。。

モジュールが正常に追加されてるのならphpinfo()に以下の項目が出てきます。

スクリーンショット4

もしくはターミナルから

$ php -i | grep mcrypt

mcrypt
mcrypt_support => enabled
mcrypt_filter_support => enabled

などと表示されます。

「php.ini」の編集

$ sudo vim /etc/php.ini

・拡張モジュール置き場の設定
追加した場合のモジュール置き場を設定しておきます。
必要に応じて追記する必要があります。
730行目辺り

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = “./”
; On windows:
extension_dir = “/usr/lib/php/extensions/no-debug-non-zts-********” ← モジュール置き場追加 環境に合わせる
extension = mcrypt.so ← モジュールを入れた場合は追加したりする 

・タイムゾーンの設定
916行目辺り

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = “Asia/Tokyo” ← 追加

・Apacheの再起動

$ sudo apachectl restart

取り敢えずこんな所だと思います。変更が終ったら再起動をして変更を適用させます。

mcryptモジュールの追加失敗談

mcryptモジュールの追加方法は山ほどあるので割愛しますが、以前portsから入れた時の話です。
お恥ずかしながらportsから入れた場合、依存関係にあるPHP5本体含めたその他のファイルのインストールをしてしまう事を知らなくて

$ sudo port install php5-mcrypt

と打ってしまい長い時間の果てにインストールが完了が終わり一覧を表示したら

$sudo port installed

見知らぬパッケージが山ほどインストールされてました。
「mcrypt.so」自体は

/opt/local/lib/php/extensions/no-debug-non-zts-********/mcrypt.so

に生成されてたので、「php.ini」に設定したエクステンションディレクトリに「mcrypt.so」をコピーし以下コマンドを実効。

$ cd ./php-5.3.24/ext/mcrypt/
$ phpize
$ ./configure
$ make
$ sudo make install

何事も無ければインストールが行えるのですが、API versionが違いますとエラーが出てインストールが進みませんでした。
原因は何故かportで入れたPHPのバージョンが適用され、ターミナルからの表示はPHPのバージョンも5.3.*系になってました。

それに気づかずに5.3系で試してましたが、途中でindex.phpから出力したバージョンと違う事に気づき
portsからインストールされたPHPを削除

$ sudo port uninstall php5

PHP 5.4系をダウンロードし、PHPのバージョンを合わせてモジュール追加を試みたら無事インストールに成功しました。

$ cd ./php-5.4.21/ext/mcrypt/
$ phpize
$ ./configure
$ make
$ sudo make install

まだまだ知識不足を感じてます。。。

次回

Macで ローカルサーバー構築 Postfix基本編

関連記事

Apache 500 Internal Server Error

久しぶりに自宅のローカルサーバーを動かしたら「Server error!」が出てゑっ!? 解決方法

記事を読む

C言語 バッファオーバーランまで ポインタ考察編

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り合えずバッファオーバーランを目

記事を読む

Androidで課金アプリ作製 プロセス間通信予習編

Androidで課金アプリ作製 プロセス間通予習編 課金アプリを作成の際にaidlファイルを利用す

記事を読む

jQuery draggable,resizable 要素のサイズがずれる

uiプロパティ以外で要素のサイズ取得を試みる draggableとresizableを使用し要素の

記事を読む

Macで ローカルサーバー構築 Apache設定編

Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載

記事を読む

Macで ローカルサーバー構築 Postfix基本編

Macで ローカルサーバー環境を構築するまで Apache起動編 ネットでの情報は必要最低限しか載

記事を読む

Androidで課金アプリ作製 サンプルコード(BILLING V3) 起動編

Androidで課金アプリ作製 サンプルコード起動編 課金アプリの制作の機会が来てしまいました。

記事を読む

PHPで指定日の祝日を取得する方法 GoogleAPI利用

google APIを利用して指定日が祝日かどうか取得する 技術的な内容を書く場合は載せてるコード

記事を読む

PHPでIE11ユーザーエージェント判定

IE11のユーザーエージェント判定 自作のユーザーエージェント判定クラスでIEの判定が出来てなかっ

記事を読む

Androidで課金アプリ作製 エラー編(-1008:Unknown error)

Androidで課金アプリ作製 エラー編 In-app Billing v3を使用したアプリ開発で

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン

水平スクロール&cssでカスタム可能なスクロールバーなプラグイン j

C言語 バッファオーバーランまで 関数の引数ポインタ

関数引数としてのポインタ 今回は関数引数としてのポインタに関して。

C言語 バッファオーバーランまで ポインタ考察編

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り

Google Cloud Messaging プロジェクトナンバー API Key取得編 2014/07最新版

Google Cloud Messaging プロジェクトナンバー A

jQuery removeClass 特定のクラスを全て削除

特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があっ

→もっと見る

PAGE TOP ↑