Sunday, March 30, 2014

技術|Mapserver php_mapscriptの設置法(MacOS X 10.9.2 Marvericks)

MacOSX Marvericks (10.9.2)にアップデート後、Mapserverのphp_mapscriptの設置で嵌りまして、対応策をメモいたします。

Mountain Lion (10.8)であれば、以前のポストの通りKyngChaosWikiの諸パッケージをインストールすれば終わりです。しかし、10.9系統はこのパッケージで生成されるphp_mapscriptを設置してもphpのextensionモジュールをロードする時点でエラーが出てしまいました。

思案した結果、homebrewからMapserverをインストールすることにしました。


1. MySQLのインストール


MySQLのWebページからMac用のDMGファイルをダウンロードしてインストールします。チュートリアルが必要な方は「MySQL 5.6のインストール(Mac OS X v10.8 Mountain Lion)」をYoutubeからご覧になれます。

なお、後述のパッケージソフト Homebrewからでもインストール可能です。

2. XcodeとXcode Command Line Toolのインストール


XcodeはApp Storeからインストールしましょう。Xcode Command Line Toolはターミナルから下記コマンドでインストールできます。

$ xcode-select —install

3. Homebrewのインストール


Homebrewは言わずと知れたパッケージ管理ソフト。インストール方法はHomebrewのWebページをご覧ください。

5. postgreSQLのインストール


gdalインストール時のエラー回避のためHomebrewからインストールします。

$ brew install postgresql

6. gdalのインストール


gdalはmysqlも扱えるようオプションをつけてインストールします。mysql_configのパスを指定しなかったら途中で止まったので、パス指定しておきます。

$ brew install gdal —with-mysql=/hogehoge/….../mysql_config

7. mapserverのインストール


mapserverのインストール時、python関連のコンパイルで詰まってしまいました。Python関連のモジュールは必要ないので、Homebrewのformulaを書き換えます。

$ brew edit map server

以下の部分を削除して保存

cd 'mapscript/python' do

 system "python", "setup.py", "install", "--prefix=#{prefix}",

                                "--single-version-externally-managed",

                                "--record=installed-files.txt"
end

phpモジュールのオプションをつけてインストールします。

$ brew install mapserver —with-php

8. php.iniの設定


mysqlのソケットと、php_mapscript.soをextensionに設定します。mysql.sockはお好みに応じてソケット指定してください。なお、Mac OSXでのphp.iniの場所については「Mac OS X Mountain Lionでのphp.iniの場所」が参考になります。

・php.iniにextensionを追加

extension=/usr/local/Cellar/mapserver/6.2.1_1/php_mapscript.so

・php.iniにmysql.sockの場所を指定

pdo_mysql.default_socket=/tmp/mysql.sock

mysql.default_socket=/tmp/mysql.sock

mysqli.default_socket=/tmp/mysql.sock

こんなところでしょうか。

No comments: