| Apache(DSO)とOracle8.1.5の構成でApacheを起動できない |
|
以下の原因が考えられます。
|
|
以前、田村@FISさんから解決法についてのメールをいただきましたので、そのまま転載します。頂いた当時は、非常にありがたいメールでした。ありがとうございました。
はじめまして、田村@FISと申します。あなたのHPを参考にさせて頂いてお
ります。
今回、PHP+Apache+Oracleでちょっとしたツールを作成しようと思って、各パ
ッケージの最新バージョンをインストールしてみました。
そこで、PHP4 + Apache1.3.12(DSO) + Oracle8.1.5の構成でApacheを起動できな
い現象に私も遭遇し、回避する方法が判りましたので参考までにご連絡致しま
す。
MLの "[PHP-jp 3957] Oracle8.1.5 Yoshihisa Hachiro
<hac@gemini.mki.co.jp> "で話題になった状況とまったく同じ現象です。MLで
は最終的にDSO版でのインストールはあきらめられています。
(なぜMLに流さないのかというと単にMLに入ってないからです。会社のメール
アカウントしか持っていないのでML入りづらい状況なのです。もしよろしけれ
ばあなたのHPでご紹介していただけると幸いです。)
経緯
環境 : TurboLinux Workstation6.0
Apache1.3.12(DSO)
PHP4.0
Oracle8.1.5
1.あなたのホームページを参考にして、PHP4+Apache+OracleでDSO構成ができ
る確信をもってインストールを開始する。(多少バージョンが新しくなっている
が問題ないだろうと思っていた)
2.ベースはTurboLinuxWorkstation6.0でフルインストールしたマシン(Apache
は1.3.12でDSO版でインストールされている)。まずPHP4.0を
--with-apxs=/path/to/apxs --with-oracle=/path/to/oracleオプションでコン
パイル。エラーは発生せずにコンパイル完了 -> インストール
3.Apacheのhttpd.confを見なおして、Apacheを再起動。しかしApacheの状態を
見てみると "Apache dead or subsys locked"(こんなメッセージだったと思う)
というメッセージで起動されなかった。
4.なにが悪いのか判らないので、まずは --with-oracle を --with-oci8 に変
更して再度挑戦。
状況に変化なし。
5.一回、オラクルを外す。そうするとうまく動いた。(PHP4+Apache(DSO))
6.次にApacheを疑ってみた。Apache1.3.12をソースからDSO版でビルドしてオ
ラクルを組み込む。
でもダメ。
7.すこし、頭を冷やすために本家のMLの過去記事を眺める・・・(ただし英語
はあまり得意ではない)
しかし、それらしき情報を発見!!
Apacheのビルド時に EXTRA_LDFLAGS=’-lpthread' を追加する。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8.Apacheの再ビルド、PHPにオラクルを組み込みビルドし直す。起動 -> O
K!!!!!
と3日かかってやっと動く環境へもっていくことができました。
※ PHPのビルド時にはOracleのsysliblistを読みこみ '-lpthread' を追加して
いるので単体ではOKなのでしょう。また --with-apacheでコンパイルすれば
Apache本体に '-lpthread'が付加されるのでOKなのでしょう。
もし、ご存知でしたら廃棄してください。散文で申し訳ありません。
今では、PHPマニュアルにも載ってますね。Apacheのインストール手順の方にも書いてますが、Apacheのconfigure時に「LIBS=-pthread ./configure ...」とします。
|
|