Mac OS X Server構築メモ(3)

2008年06月04日

困ったことに現サーバーではPythonなんてものも使ってるのでインストールせにゃならん。

----------------------------------------
Python-2.5.2をインストール
http://www.python.jp/Zope/download/pythoncore
ここにMac OS X用インストーラがあったのでそのまま実行。
pythonなんて知らないインタプリタだけど、動いてるみたい。

>python
Python 2.3.5 (#1, Oct 5 2005, 11:07:27)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hello World!"
Hello World!
>>> ^D

とりあえず動いてるみたい。ただCGIを動かすと日本語のエンコードに問題があるみたいでエラーが出る。
スクリプトをちょっと書き換えないとダメっぽい。

 ちなみにコレはMac OS Xサーバーのサーバー管理ツール。「Webサービス」となっているのがまさしくApacheのコントロール部なんだけど、あまり細かい設定はできない。でも、あるんだからなるべくここから操作するようにはしてるんだけどね。といってもhttpd.confやらヴァーチャル・ドメインの設定なんて複雑すぎてGUIでやるには無理があるんじゃないかなー、とは思う。




トップ ▲

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構築メモ(1)

2008年05月07日

仕事でMac OS X ServerでWebサーバーを構築しなければならなくなった。
後々の再現性のためのメモ。

OS : Mac OS X Server 10.4.11
Xcode : 2.1

ミッション:
現行の資産を活かすべく、以下の稼働をめざす。
Movable Type4
perl 5.8.6
SQLite
PostgleSQL
php4
Awstats
sendmail

まぁ、おぼろげな目標なんですが。。。。

とりあえず「素」のOS X Serverではmakeもできない(笑)のでXcodeのインストールは必須。
マシンは古いiMac。足下に置いて、普段使いのiMacからターミナル使ってリモートで作業開始。

<apacheの設定>
とりあえずCGIが動かないとどーにもならんので設定。
/etc/httpd/httpd.confに以下の行を追加

<Directory /Users/*/cgi-bin>
Options ExecCGI
</Directory>

これで/Users/hoge/cgi-bin/でcgiが動いた。
本当はこのあたりの設定は「サーバ管理」ツールでguiでできるとうれしいんだけど、
やっぱりhttpd.confをいじらなきゃならないよーで。

次いでMovableType3.35をインストール、mt-check.cgiを実行してperlのモジュール情報を得る。
DBI、DBD::mysql、DBD::Pg、DBD::SQLite、DBD::SQlite2、Image::Magick、Crypt::DSA、XML::Atomが無いと言われる。

------------------------
perlのモジュールって言ったらCPANだべ。
lynxくらいは無いとマズイらしいので、http://lynx.isc.org/でゲットしておく。
http://2php.jp/install/lynx.html

CPAN設定
>sudo perl -MCPAN -e shell

cpan>install Jcode
っていう感じでどんどんインストール。
DBD::mysql、DBD::Pg、DBD::SQLite2、Image::Magickあたりのインストールに失敗する。
ま、いいや、次いこー。

----------------------------------------
PostgreSQLの移行をやらなくちゃイカンのでhttp://wiz.syscon.co.jp/LnxDbiDbd.htmlを見たら、
PostgreSQLを起動していないとエラーになる、との記述が。。。。
そこでhttp://www.postgresql.jp/PostgreSQLへやってくる。
ダウンロードしてから
>tar xzvf postgresql-8.3.0.tar.gz
>cd postgresql-8.3.0
>sudo ./configure
>sudo make
>sudo make install
一応インストールは完了。ちなみに設定値は全部ディフォルト。

----------------------------------------
Movable Typeのmt-config.cgiをいじってsqliteで動かしてみる
##### SQLITE #####
ObjectDriver DBI::sqlite
Database /Users/hoge/Sites/mt.db

MacOSX Server10.4はディフォルトでSQLiteがインストールされてるのでこれだけで動いた。
こりゃラクチン。DBが使えるということはMovableTypeを4にバージョンアップできるってことだ。

----------------------------------------
次いでMovable Type4.1をインストールしてみた。
mt-config.cgiで
CGIPath http://xx.xx.xx.xx/~hoge/cgi-bin/mt/
StaticWebPath http://xx.xx.xx.xx/~hoge/mt-static
にしてたら動かないので、書き換える。
CGIPath /~hoge/cgi-bin/mt/
StaticWebPath /~hoge/mt-static
なんか変だなぁ。でもちゃんと動いた。DBはSQLite。

今日はここまで。




トップ ▲