このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Mac OSXにPHP・PostgreSQLをインストールする方法

発言者:ゆうじ
( Date Thursday, May 24, 2001 16:54:22 )


突然ですが、みなさんに是非ご教授頂きたいことがあります。

現在、仕事でPHPとSQLを使用して管理者が任意に記事変更/削除ができる
システムを作らなくてはいけなくなりました。
はじめは、会社で契約しているレンタルサーバ上にアップロードして動作
確認していたのですが、私が初心者であるのと今後の練習も兼ねてOSX上で
動作確認をしたいと思っています。
そこで、色々な本を買い漁って読んだり、日本PHPユーザ会のインストール
マニュアルを読んだりしたのですが、一番肝心で最初の部分が良く解りま
せん。

---------------------------------------------------------------------
1. ApacheとPHPの最新版を入手
2. これらのtarをばらし、Apacheのconfigureプログラムを以下のように実行
    ./configure --exec-prefix=/usr \ 
    --localstatedir=/var \ 
    --mandir=/usr/share/man \ 
    --libexecdir=/System/Library/Apache/Modules \ 
    --iconsdir=/System/Library/Apache/Icons \ 
    --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ 
    --enable-shared=max \ 
    --enable-module=most \ 
    --target=apache 

4. コンパイラに最適化を行わせたい場合には、次の行を追加できます。
    setenv OPTIM=-O2 
(以下割愛)
---------------------------------------------------------------------
2.の
>これらのterをばらし、Apacheのconfigureプログラムを以下の様に実行
ばらしてプログラムの実行とはどういう意味なのでしょうか?

それと、

>4. コンパイラに最適化を行わせたい場合には、次の行を追加できます。
とは、何に対して追加を行うのでしょうか?ファイル?terminal上で?

さっぱり解りません。超初心者でみなさん呆れるかも知れませんが、かなり
悩んでいます。

なにかヒントでもいいですからお教えください。

PS.文章が長くなってすいません。

森下 さんからのコメント
( Thursday, May 24, 2001 17:16:41 )

「tarをばらす」とは、Mac的に言えばアーカイブを解凍するってことです。
「configureプログラムの実行」とは、この場合、Terminal上で
解凍したソースのディレクトリに移動して、「./configureリターン」
です。これによってコンパイルが開始されます。
リターンをせずに「--ほにゃらら」をくっつけると、オプションを指定して
コンパイルすることになります。
ちなみに\は次の行に継続と言う意味です。
\の後にはリターンは必要ありません。リターンするとコンパイルが
始まってしまいます。必ずさいごのオプションまで入力したのちにリターンしましょう。
setenv OPTIM=-O2は、環境変数の指定です。Terminal上で行います。

Terminalを使うと言うのであれば、UNIXのコマンドリファレンスを
取りあえず手に入れることをお勧めします。

micky さんからのコメント
( Thursday, May 24, 2001 17:58:25 )

こんにちは、mickyです。

Mac OS X、Apache、PHPであれば、こちらのページが参考になるかと。

→  Stepwise

ゆうじ さんからのコメント
( Thursday, May 24, 2001 18:28:30 )

森下さん、mickyさん早速のレス大変ありがとうございます。

>Terminalを使うと言うのであれば、UNIXのコマンドリファレンスを
>取りあえず手に入れることをお勧めします。

持ってます。(笑)持っていても良く解らない事だらけですね。
UNIXの本を読みつつ作業を進めてもうまくいかないです。
ディレクトリを移動するときのコマンドって
cd/ディレクトリ名
ですよね?
この段階でうまくいかないなんて.....。情けない。(涙)

また単純な質問ですけど、基本的に通常のUNIXコマンドとOSXの
BSDのコマンドとは違うんですか?

mickyさん情報ありがとうございます。解読に挑戦してみますが、
日本語のサイトはご存じないですか?

すいませんわがまま&とぼけた質問ばかりで。
よろしくお願い申し上げます。

森下 さんからのコメント
( Thursday, May 24, 2001 18:53:48 )

cdのあとには半角スペースが入りますよ。

UNIXとコマンドはほぼ同じです。
UNIXにあってMacOSXにないものもあるかと思いますが、
おおかた利用するコマンドはUNIXと共通です。
逆にMacOSXにあってUNIXにないものもあります。
このあたりは、つい最近MacWIREにMDOnlineからの記事が載ってましたから
参考にして下さい。

ゆうじ さんからのコメント
( Thursday, May 24, 2001 19:25:44 )

森下さんご教授ありがとうございます。

>cdのあとには半角スペースが入りますよ。

そうだったんですか。もう一度チャレンジしてみます。
ありがとうございました。

さんからのコメント
( Wednesday, September 05, 2001 15:13:30 )

いつもお世話になっております。

今の問題に近い話題がありましたので、
恐縮ながら質問させてください。

PHPをOSX10.0.4にインストールしたいと思い、
サイトよりダウンロードし、Stuffitで解凍し、
そこでTerminalを起動して、rootでデスクトップにできた
php4.0.6に移動し、./configure リターンを行ったのですが、
下記のエラーになります。

creating cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... no
checking for working aclocal... missing
checking for working autoconf... missing
checking for working automake... missing
checking for working autoheader... missing
checking for working makeinfo... missing
Updated php_version.h
checking whether to enable maintainer-specific portions of Makefiles... no
checking host system type... powerpc-apple-darwin1.3.7
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for bison... no
checking for byacc... no
configure: warning: You will need bison if you want to regenerate the PHP parsers.
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH

これはどこか基本的な問題があるのでしょうか?
よろしくお願いします。


よしもと さんからのコメント
( Wednesday, September 05, 2001 15:57:08 )

>checking for gcc... no
>checking for cc... no

ということで、コンパイラが見つからないようですね。
Developer Toolsはインストールしましたか?

さんからのコメント
( Wednesday, September 05, 2001 18:21:07 )

Developer Toolsを入れたら、ちゃんと進みました!

早速のコメントありがとうございます。

たかとし さんからのコメント
( Tuesday, December 18, 2001 09:17:50 )

 初心者のうえに、突然の書き込みですが、ちょっと書き込みさせて頂きます。MacOSXでPHPとPostgreSQLを使っていろいろやろうとしているところです。 PostgreSQLのインストールはうまくいったのですが、PHPを「./configureリターン」し、オプションの指定で「--with-pgsql」をしてもPostgres関数のpg_connectなどが使えない状態なんです。 なにが原因なのでしょうか...、もし、わかる方おられましたら教えて下さい。

重松修 さんからのコメント
( Tuesday, December 18, 2001 14:13:04 )

次回から、適宜改行してください。

./configure --help とすると、configure が取りうるオプションの説明が読めます。

./configure --help | less

とでもしておいて、/pgsql とすれば、検索でき、当該項目の説明が読めるでしょう。
# OS X だと、若干操作が違うみたいですけど、ほとんど使ってないので知りません。;-P

PHP 4.1.0 の場合、
--with-pgsql[=DIR]
defaults to /usr/local/pgsql. Set DIR to shared to build as a dl, or shared,
DIR to build as a dl and still specify DIR.
(手前ミソですが、http://www.ravi.ne.jp/~shige/vinelinux215/php-configure.html より)

とありますから、DIR を省略した場合には、PostgreSQL のルートディレクトリが、
/usr/local/pgsql になりますよね? OS X (Darwin) の場合もここでいいんですか?
どこにあるかは、インストールした人にしかわからないことでしょうが。

英語を読みたくないというならば、「PROFESSIONAL PHP Programming」(ISBN4-8443-1483-1)
に大まかなオプションの日本語訳のっていましたし、この本はそれなりに内容があるので、
購入してみてはいかがでしょうか。http://www.cbook24.com あたりだと、ほぼ即日配送ですから、
田舎でもすぐに読めるでしょう。(送料も無料ですからおすすめします)

あと、せめて、OS X のバージョン、PHP, PostgreSQL のバージョン、自分が行ったインストールの
手順くらいは書かないと、何とも言えませんよ。

それから、PHP 4 を使うなら、pg_connect() のような関数を使う原始的なコードはやめて、
折角だから、PEAR DB を使いましょう。とかいう私も、PHPLIB から乗り換えたばかりなので、
全然使いこなせていませんが。。。>PEAR
# まあ、PEAR DB も内部的には、pg_connect() を使うわけで、PHP 自体のインストールに失敗すれば
# 当然動きませんが。


→  VineLinux の場合

sai さんからのコメント
( Wednesday, December 19, 2001 15:45:12 )

記憶が確かではないのですが、同じ内容かわかりませんが、pg_connect
のエラーが発生したことがありあます。そのときは確かmod_perlとmod_php
がconflict起こしていたような感じでmod_perlをはずしたらエラーがで
なくなったように思います。ただ、実際は両方使用したかったので残念な
がら解決にはならなかったのですが...
確かApacheのError_logにSymble redefinitionとかいうエラーが出ていま
した。いろいろ調べたのですが、解決の手段が分からずそのままになって
しまいました。誰か解決できている人がいたら情報ください。

スポーツ さんからのコメント
( Monday, February 04, 2002 00:01:23 )

PostgreSQL の10.1へのインストールに試みですが,tarで解凍して,ディレクトリを移動して ./configure したところ,以下のようになり,その後は滞ってます.アドバイスをお願いいたします.

[sports:Documents/Software/POSTGRESQL] root# cd postgresql-7.0.3/src
[sports:POSTGRESQL/postgresql-7.0.3/src] root# ./configure --enable-multibyte=EUC_JP
creating cache ./config.cache checking host system type... configure: error: can not guess host type; you must specify one

るっこら さんからのコメント
( Wednesday, March 06, 2002 19:31:50 )

私もPostgreSQL の10.1へのインストールに試みているところですが、
configureをしようとすると下の文が出ます。
configure --helpでも出ます
どうしてなんでしょうか?よろしくお願いいたします。

[]postgres% /etc/mail/sendmail.cf: line 81: fileclass: cannot open /etc/mail/local-host-names: Group writable directory

るっこら さんからのコメント
( Wednesday, March 06, 2002 19:54:11 )

ちなみにsendmail.cf: line 81は

79:Cwlocalhost
80:# file containing names of hosts for which we receive email
81:Fw/etc/mail/local-host-names

こうなってました。

sai さんからのコメント
( Thursday, March 07, 2002 11:06:48 )

>[sports:Documents/Software/POSTGRESQL] root# cd postgresql-7.0.3/src
PostgreSQLのバージョンが古いせいかもしれません。
7.2というのが出ているようです。
また、インストールパッケージになっているものが下記に公開されています。こっちの方がインストーラで簡単にインストールできます。

→  Mac OS X 用PostgreSQLパッケージ

重松修 さんからのコメント
( Thursday, April 04, 2002 10:47:48 )

PHP 4.1.2 を Mac OS X 10.1.3 (+Developer Tools) に install しようと
思ったのですが、automake がないと怒られてしまいます。。。

[jhfacpc17:/php-4.1.2] shige% ./buildconf                  
buildconf: checking installation...                         
buildconf: autoconf version 2.13 (ok)                       
buildconf: automake not found.                              
           You need automake version 1.4 or newer installed 
           to build PHP from CVS.                           
make: *** [buildmk.stamp] Error 1                           
[jhfacpc17:/php-4.1.2] shige% which automake               

という状態なんですが...。
# だったら、automake を拾って来いよ、とつっこまれそうですが。
# Google で検索したら、ここが hit しました...。

mbregex() が使いたいのですが、そういう .pkg なんてあるんでしょうか?

# なければ、うまく make できたら、.pkg を作ってみたいかもしれません。:)

重松修 さんからのコメント
( Thursday, April 04, 2002 11:02:27 )

automake ですが、ftp://ftp.gnu.org/gnu/automake/automake-1.5.tar.gz
から拾ってきて、make しようとしているのですが、こけてしまいます。

sed: 34: conftest.s1: unescaped newline inside substitute pattern

というふうにいわれます。
# conftest.s1 ってファイルでしょうか。find で探しても見あたりませんでした。

手順としては、

curl -O ftp://ftp.gnu.org/gnu/automake/automake-1.5.tar.gz  
tar zxvf automake-1.5.tar.gz                                
cd automake-1.5/                                            
./configure                                                 

というものです。

もしかして、Developer Tools 自体のインストールを失敗しているのでしょうか。。。

稲垣 さんからのコメント
( Friday, April 05, 2002 14:51:09 )

 先ほど、最新のソースをダウンロードしてきてテストをしました。

inagaki% ./configure
inagaki% make

 だけで、無事にコンパイルが出来ましたが、この方法ではまずいんですか?

 後、mac-os-x-jp MLで流れていましたが、セキュリティアップデートがでて
いてその中でPHPも4.1.2に上がるようです。


重松修 さんからのコメント
( Friday, April 05, 2002 15:34:01 )

稲垣さん、試していただいてありがとうございます。

でも、mbregex を静的モジュールにしたいので、その方法ではダメだと思います。

詳しくは、README.ja を読んでいただければわかると思いますが、

 php-4.X.X/ext ディレクトリで
  $ tar xzf php-4.X.X_mbregex-X.X.tar.gz
  $ cd ..
  $ rm configure
  $ ./buildconf
  $ ./configure --enable-mbregex  --その他のオプション
  $ make install

と記述されているんです。(275 行目あたり)

すなおに共有モジュールで作れという神の啓示でしょうか。

ちなみに、DSO として使うのではなくて、perl の代わりにテキスト処理に使うので、
mbregex が使えないと、痛いのです。。。

稲垣 さんからのコメント
( Saturday, April 06, 2002 10:00:29 )

 mbregexを使いたいということなんですね。

 ただ、私のほうでは、php-4.X.X_mbregex-X.X.tar.gzやREADME.jaをうまくみ
つけられなかったので、上記のconfigureのオプションに関して簡単にテストし
てみました。

 先にテストしたものを、ディレクトリごと消して、再度configureのオプショ
ンをつけてみました。

% ./configure --enable-mbregex
% make

 でコンパイルはとおりましたが・・・。ただ、これで重松修さんの目的の
ものが出来ているかは確信はありませんが、新たにPHP用に何かを追加して、
configureを作り変えなくても、mbregexのオプションを指定できますね。
#単に無視されているだけかも知れませんが・・・。

重松修 さんからのコメント
( Monday, April 08, 2002 10:21:12 )

多分ですけど、単に無視されているだけではないかと思います。

curl -O ftp://night.fminn.nagano.nagano.jp/php4/php4_mbregex-1.3.1.tar.gz

とすると、mbregex の拡張モジュールが落とせます。

# ご存じとは思いますが、PHP 4.0.x と PHP 4.1.x とでは、拡張モジュールの
# 仕様が変更になっています。

この中に README.ja が含まれますが、私のインストール手順としては、
VineLinux 2.1.5 (ftp, i386 版) で実際に何度も行ってうまくいっている手順として、

cd
wget http://www.php.net/do_download.php?download_file=php-4.1.2.tar.gz ftp://night.fminn.nagano.nagano.jp/php4/php4_mbregex-1.2.1.tar.gz
wget http://prdownloads.sourceforge.net/phplib/phplib-7.2d.tar.gz
tar zxvf php-4.1.2.tar.gz
cd php-4.1.2/ext/
tar zxvf /php4_mbregex-1.3.1.tar.gz
cd ..
rm -f configure
./buildconf
./configure --enable-mbstring --enable-mbregex --enable-mbstr-enc-trans \
--with-pgsql --enable-trans-sid --enable-force-cgi-redirect \
--enable-versioning --enable-ftp --enable-ming

make
su
make install

のような感じです。

Vine の場合は、libtool のバージョンが古いので、あげないとダメでしたが。。

重松修 さんからのコメント
( Monday, April 08, 2002 13:21:56 )

php-users で聞いてみたところ、大垣さんから、4.2.0RC2 を使ってはどうか、
とコメントいただきました。この版は、mbregex が mbstring に取り込まれているので、
別途モジュールをダウンロードする必要がないようです。

とりあえず、以下の手順でいけます。

curl -O http://www.php.net/derick/php-4.2.0RC2.tar.gz
tar zxvf php-4.2.0RC2.tar.gz
cd php-4.2.0RC2
./configure --mbregex --その他のオプション
make
sudo make install