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 5.*.*」などと表示されます。
出ない場合はPHPが入ってない、適切なパスが通ってない等が考えられます。
・パスの確認
デフォルトのPHP置き場所「/usr/bin」なので無い場合は追加するなりパスを通す必要があります。
PHPの情報を表示する
・PHPの詳細情報 コマンドから
$ php -i | grep mcrypt ← モジュール等の一部情報のみ見る場合
$ php -i > phpinfo.txt ← テキスト等に書き出す場合
以前の記事の続きになりますが、ここから読む場合は適宜脳内変換して下さい。
以前作成したフォルダーにindex.phpを作製します。
内容
echo phpinfo();
※PHPの記述は「<?php」と「?>」の間に記述して下さい。「<?」(ショートカットタグ)でも動く場合がありますが、サーバーによって動かない場合もあるのでちゃんと記述した方が後々困りません。
追記したら「:wq」で保存して「cochma/index.php」にアクセスして下記の様な画面が表示されたら成功です。
後は好きなようにプログラムを書いて動かす事が出来ます。
必要になりそうな設定
・mcryptのインストール
ネットに山ほど記事があるので割愛しますが、
ただportから入れる方法は通常のマックではやらない方が良いです。失敗談は下に書きます。。。
モジュールが正常に追加されてるのならphpinfo()に以下の項目が出てきます。
もしくはターミナルから
mcrypt
mcrypt_support => enabled
mcrypt_filter_support => enabled
略
などと表示されます。
「php.ini」の編集
・拡張モジュール置き場の設定
追加した場合のモジュール置き場を設定しておきます。
必要に応じて追記する必要があります。
730行目辺り
; http://php.net/extension-dir
; extension_dir = “./”
; On windows:
extension_dir = “/usr/lib/php/extensions/no-debug-non-zts-********” ← モジュール置き場追加 環境に合わせる
extension = mcrypt.so ← モジュールを入れた場合は追加したりする
・タイムゾーンの設定
916行目辺り
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = “Asia/Tokyo” ← 追加
・Apacheの再起動
取り敢えずこんな所だと思います。変更が終ったら再起動をして変更を適用させます。
mcryptモジュールの追加失敗談
mcryptモジュールの追加方法は山ほどあるので割愛しますが、以前portsから入れた時の話です。
お恥ずかしながらportsから入れた場合、依存関係にあるPHP5本体含めたその他のファイルのインストールをしてしまう事を知らなくて
と打ってしまい長い時間の果てにインストールが完了が終わり一覧を表示したら
見知らぬパッケージが山ほどインストールされてました。
「mcrypt.so」自体は
に生成されてたので、「php.ini」に設定したエクステンションディレクトリに「mcrypt.so」をコピーし以下コマンドを実効。
$ phpize
$ ./configure
$ make
$ sudo make install
何事も無ければインストールが行えるのですが、API versionが違いますとエラーが出てインストールが進みませんでした。
原因は何故かportで入れたPHPのバージョンが適用され、ターミナルからの表示はPHPのバージョンも5.3.*系になってました。
それに気づかずに5.3系で試してましたが、途中でindex.phpから出力したバージョンと違う事に気づき
portsからインストールされたPHPを削除
PHP 5.4系をダウンロードし、PHPのバージョンを合わせてモジュール追加を試みたら無事インストールに成功しました。
$ phpize
$ ./configure
$ make
$ sudo make install
まだまだ知識不足を感じてます。。。
次回
関連記事
-
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を使用したアプリ開発で