Mac OS X Server構築メモ(2)

2008年06月03日

今回はphp資産の移行が目標。

古いサーバーからphpのコンテンツの一部を新サーバーにFTP。
index.phpにアクセスすると、いきなりダウンロードが始まってしまう。
で、例によって/etc/httpd/httpd.confをいじる。

# モジュールをロード(LoadModule と書いてある一群の一番最後に加える)
LoadModule php4_module lib/apache/libphp4.so
# モジュールリストに追加(AddModule と書いてある一群の一番最後に加える)
AddModule mod_php4.c
# PHP ハンドラを追加(AddType と書いてある一群の一番最後に加える)
AddType application/x-httpd-php .php .php4
AddType application/x-httpd-php-source .phps .php4s

コマンド叩けばいいんだけど、あえてサーバー管理ツールでapacheリスタート。
再度index.phpにアクセスしたらFatal errorまで出ちゃったよ。
よくコメントを見るとcssが見つからないみたいなので、順を追ってcssをFTPしたら
なんとなく動いてるように見える。
でも詳細をクリックすると
Call to undefined function: pg_connect()
と言われる。phpは全然わからないんだけどネット検索かけたらどうやら
phpにpostgre関係のモジュールが組み込まれていないためらしい。

----------------------------------------
とりあえず、現状のphp稼働状況が全くわからんのでここでphp用のinfo.phpを立てようと思う。
/Library/WebServer/Documents/info.php
をローカル(~hoge)にコピーして編集。

<?php
// You can use Server Admin to enable the Apache PHP module; it's disabled by default.
// You can uncomment the phpinfo() directive below to provide a default PHP info page
// but note that this displays information about your host's configuration.
phpinfo();
?>

5行目のコメントをはずすだけ。
http://xx.xx.xx.xx/~hoge/info.php
見れた!PHP Version 4.4.8らしい。これのレポートを見ると、
Configuration File (php.ini) Path:/etc
となっていたので/etcをみてみたら、php.ini.defaultってのが居る。やはりこれなんだろうな。
>cp php.ini.default php.ini
とやって活かしてやり、apacheのリスタートをかける。
やっぱりpostgreはダメ。php.iniを開けてみると
extention=php_pgsql.so
の記述がない。

----------------------------------------
postgreモジュールのインストール情報をあちこちで探してやっと発見。
http://ameblo.jp/itminowa/entry-10030421410.html
http://www.aglabo.com/agl/proevo/PHP/install/ext-pgsql.html

これだこれだと、php4.4.8のソースをダウンロードしてきて解凍する。
>su-
phpのextensionのディレクトリに移動する。
>cd /usr/local/php-4.4.8/ext/pgsql
ここで
>phpize
>./cofigure --with-pgsql
>make
そしたら/usr/local/php-4.4.8/ext/pgsql/modules/以下にpgsql.soができてた。きたきた!
>sudo make install
>/usr/lib/php/extensions/no-debug-non-zts-20020429/
これがextensionのディレクトリらしい。

次いで/etc/php.iniを編集する。
extension_dir = /usr/lib/php/extensions/no-debug-non-zts-20020429/
extension = pgsql.so
としてapacheリスタート!で、http://xx.xx.xx.xx/~hoge/info.php
見てみるとPgsqlの項目があるではないか!成功だ!

ところが今度は違うエラーが出た(; ;)
-------------------------------------------------
エラー内容で検索してみたら
http://go4it.seesaa.net/article/73726670.html
そこでphp.iniを見てみると、output_buffering = Offになってたのでoutput_buffering = Onにして
apacheリスタートしたらなんか動いてるみたい。でもなんだか変だな。
調べたらこれを発見。
http://www.komonet.ne.jp/~php/chap11.htm
もう一回php.iniを調べたら
register_globals = Offだった!これをOnに変更してapacheリスタートしたら動いたぞ!

とりあえずこれでphpから外部postgreサーバーの接続、コンテンツの展開に成功した。



コメント

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・なんかさ・・・・・・・・・・・・・・・・大変だったんだね。

コレは技術メモ。覚え書きです。>わにさん

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)


« 今日は | メイン | Mac OS X Server構築メモ(3) »