softbank社の書籍とパソコンおやじ樣のページ、MYSQLの書籍をたよりに
データベース連係型のサーバーを構築しようとたくらんでおります。
標題どおりapacheは2.0.47をソースからsoとssl、share=maxのconfigureです。
OSはRedHat9。
構築自体はおやじ樣のページを読みながらなんとかなったのですが。。。
起動スクリプトの部分で躓きました。
おやじ様の起動スクリプトをそのまま拝借(お許しください)。
/sbin/chkconfigに--addして帽子メニュー(?)>システム設定>サーバー設定>サービスより
ランレベルの変更、起動を試したところ/etc/httpd/conf/httpd.confにconfファイルがないと
しかられました。。。次にこれを/usr/local/apache2/conf/httpd.conf
に書き変え(おやじ様(?)の註釈からみてこれは1.3系の設定なのでは?とおもいつつ)
起動を試しましたところ
Syntax error on line 217 of /usr/local/apache2/conf/httpd.conf:
<IfDefine takes one argument, Container for directives based on existance of command line defines
というエラーがでて起動できません。。。
httpd.confに追記した
<IfDefine SSL>
Listen 443
</IfDefine>
関連のエラーのようにおもうのですが。。。つまっております。。。
長文、駄文でもうしわけありません。
なにかお気付きになられることをご指摘戴きたく、宜しくお願いします。
こんにちは。
説明上、改行を一部変更しています。
> おやじ様の起動スクリプトをそのまま拝借(お許しください)。
もともとRedHatのものですから・・・。下の現象と関係しますが、名前はどうしましたか?
> /sbin/chkconfigに--addして帽子メニュー(?)>システム設定>サーバー設定>サービスより
> ランレベルの変更、起動を試したところ/etc/httpd/conf/httpd.confにconfファイルがないと
> しかられました。
上記で新規に名前を付けて、chkconfigしてそれを起動したのなら、/etc/httpd/conf/httpd.conf
を見に行くことは絶対にありません。そうならないように、変更しているのですから、何か見落として
いるはずです。
もともとのスクリプトを起動しているか、スクリプトの最初のほうにある config行の設定が誤っている
ケースもありますが・・。
> 次にこれを/usr/local/apache2/conf/httpd.conf
> に書き変え(おやじ様(?)の註釈からみてこれは1.3系の設定なのでは?とおもいつつ)
> 起動を試しましたところ
「次にこれを」というのは、check for 1.3 configurationのところのことでしょうか?
ここは、1.3からバージョンアップしたときの互換性問題をチェックするものなので、直す必要はありません。
> Syntax error on line 217 of /usr/local/apache2/conf/httpd.conf:
> <IfDefine takes one argument, Container for directives based on existance of command line defines
>
> というエラーがでて起動できません。。。
> httpd.confに追記した
> <IfDefine SSL>
> Listen 443
> </IfDefine>
> 関連のエラーのようにおもうのですが。。。つまっております。。。
httpd.confへの追加(ssl.confでの削除と対)は、2.0.45以降は不要です。2.0.43でおかしくなって、
海外サイトで見つけた手法で、今は問題ないので、もとのまま使用してください。
ご指摘有難うございます。
>もともとRedHatのものですから・・・。下の現象と関係しますが、名前はどうしましたか?
起動スクリプトは「apache2」としています。
所有者、グループはrootでchmodは755。
全く同じバージョンでSSLなしはこれで走ってくれるのに。。。
もちろん1.3互換の記述の所にもひっかかりません。
> 上記で新規に名前を付けて、chkconfigしてそれを起動したのなら、/etc/httpd/conf/httpd.conf
> を見に行くことは絶対にありません。そうならないように、変更しているのですから、何か見落として
> いるはずです。
> もともとのスクリプトを起動しているか、スクリプトの最初のほうにある config行の設定が誤っている
> ケースもありますが・・。
>
RedHat9にてワークステーションインストール(サーバー系統すべて拒否)しているので
先にスクリプトが走っていることはありません。configの行というのは
config: /usr/local/apache2/。。。というところですよね?
こちらにも記述ミスはないようです。。。
> 「次にこれを」というのは、check for 1.3 configurationのところのことでしょうか?
> ここは、1.3からバージョンアップしたときの互換性問題をチェックするものなので、直す必要はありません。
> httpd.confへの追加(ssl.confでの削除と対)は、2.0.45以降は不要です。2.0.43でおかしくなって、
> 海外サイトで見つけた手法で、今は問題ないので、もとのまま使用してください。
ですよね。。。コメントアウトの行に1.3と見受けられること、SSLなしでこのコメントがあること
からもここは違う???と思いながら。。。
今おやじ様のサイトを見直し1つ気がつきました。
。。。もしかしてSSLキーを発給していないとapachectl start(SSLなし起動)でも
起動しないものなのでしょうか?思ったらまず行動ですね(^^;試してみます。
> SSLなしでこのコメントがあること
> からもここは違う???と思いながら。。。
同じバージョンのapacheでSSLなしで構築したおりには
この設定があるにもかかわらずエラーしなかった。。。と言いたかったのです(^^;
何か少し混乱しているような気がしますが・・・。
「SSLも起動」するなら、ssl.confで指定しているところにサーバの鍵と証明書(おやじの例では、
server.keyとserver.crt)がないと起動しません。
「SSLも起動」するには、おやじのスクリプトならstartのところで、daemon $httpd -D SSL $OPTIONS
と、httpdに-D SSL オプションをつけることにより起動しに行きます。デフォルトのスクリプトには入って
いないので、それで起動するとssl(443)は起動しません。
何故か、突然apachctlの話がでてくるのがわからないのですが、apachectlはこれ自体が起動スクリプト
のようなもので、httpdに代わり、簡易にapacheを起動するものです。HPにも書いてありますが、これを使って
起動するとエラーがでる(起動はします)ので、httpdで起動するようにしています。
apachectl startなら80番のみ起動します。httpdのssl関係の設定や、ssl.confの有無は無関係です。
apachectl startsslは、httpd -D SSLと等価でhttpdのssl関係の設定や、ssl.confや鍵・証明書がないと
ssl起動エラーとなります。
ご返答ありがとうございます。
sslkeyを生成しようとしたところで
ドメインがない(DDNS禁止プロバイダーを使っているもんで。。。)
ことに気がつき、一旦ssl可は見送ろうと思います。。。
> 何か少し混乱しているような気がしますが・・・。
> 何故か、突然apachctlの話がでてくるのがわからないのですが〜
すみません。。。かなり混乱しています。。。
apachectlに命令を与えてapacheを起動。その際に sslstartにすると
443及び80の両ポートの待ちうけが始まるんだと思っておりました。
ただ実際には apachectl start で入っても80番ポートも待ち受け開始
されず混乱してしまいました。。。
後日ドメイン導入しましたらもう一度チャレンジしたいと思っております。
ご指導ありがとうございます。