質問が幾つかあります。(このような質問の仕方が正しいかどうかはわかりませんが・・)

1)RedHat Linux7.1で最初からapacheとPHPがインストールされている状態で、最新バージョンのapacheやPHPのtarからのバージョンアップはどうすればいいのでしょうか?
(インストールされている状態で展開してコンパイルしインストールすれば上手く行きませんでした。)一度入っているものを削除するにしても依存関係があるものがあって、それが何か解らず削除することができません。

2)WEBサーバーなしでサーバーをインストールしてapache・PHP・postgresqlをインストールしたら、rpm -qでみるとインストールされていませんと表示されます。
(このときhttpdはntsysvにはあらわれません。Linuxがこれらを認識していないみたいです。よって自動起動もできません)これらをLinuxに認識させるのにはどうすればいいのですか?
(なおapacheは正しく動作します)

3)apacheなどはバージョン(??)によって落ちるフォルダが違っていてbinフォルダやhttpd.confなどの場所もまちまちみたいですが(インストールのオプションによっては同じところに落とせるそうですが)それらはインストールが正しければどこにあっても問題ないのでしょうか?

4)PHPでpostgresqlをコンパイル時に指定していない状態でどこかの設定ファイルにpostgresqlの記述をしてやればコンパイルなしにPHPからpostgresqlを使用できるようになるのでしょうか?

宜しくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

起動スクリプトは、皆さんの言っている通り/etc/rc.d/init.dの下に書きます。


以下にデフォルトで入っているhttpdのスクリプトを記述します。

[root@server init.d]# cat httpd
#!/bin/sh
#
# Startup script for the Apache Web Server
#
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf

# Source function library.
. /etc/rc.d/init.d/functions

# Path to the httpd binary.
httpd=/usr/sbin/httpd
RETVAL=0

# Until glibc's locale support is working right again, work around it.
LANG=C

# Change the major functions into functions.
moduleargs() {
moduledir=/usr/lib/apache
moduleargs=
for module in ${moduledir}/*.so ; do
if [ -x ${module} ] ; then
module=`echo ${module} | awk '{\
gsub(".*/","");\
gsub("^mod_","");\
gsub("^lib","");\
gsub("\.so$","");\
print toupper($0)}'`
moduleargs="${moduleargs} -D HAVE_$module"
fi
done
echo ${moduleargs}
}
start() {
echo -n "Starting httpd: "
daemon ${httpd} `moduleargs`
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n "Shutting down http: "
killproc httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status ${httpd}
;;
restart)
stop
start
;;
reload)
echo -n "Reloading httpd: "
killproc ${httpd} -HUP
RETVAL=$?
echo
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
*)
echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac

exit $RETVAL

こんな感じです。実行権をつけておくことが必要です。
これだけでは、自動起動しないので、自動起動するようにします。

chkconfig --add httpd
もしくは
chkconfig --level35 httpd on
とするとrun-level 3,5で起動するようになります。
    • good
    • 0

えー中途半端な返答で申し訳ないのですけど、rpmでアンインストールした場合は


おそらく設定ファイルも削除されます。

自動起動させるためには、/etc/rc.d/init.d をいじります、
シェルスクリプトになっているので、httpd のパスを書き換えるだけです。

あとこちらも憶測なんですけど、ntsysv は /etc/rc.d を
メンテナンスするツール(らしい)ので、rc.d にスクリプトを書いてやれば
出てくると思います。


http://www.redhat.co.jp/manual/Doc71/RHDOCS/rhl- …
http://www.redhat.co.jp/manual/Doc71/RHDOCS/rhl- …

が参考になります。

# ここら辺のことは人に教えるのが難しいです(汗
    • good
    • 0

1) えー、tarのソースからコンパイルしインストールで問題ありません。


それでうまくいかないのは、rcかなにかでシステムでインストール
したapacheが立ち上がってるからだと思います。rpmコマンドでは、
依存関係も考慮して、削除してくれます。

2) すみません、ちょっと詳しくはわからないんですけど、rpmのカタログに
登録されるのはrpmからインストールしたものだけなので、自分で
コンパイルしてインストールしたのはrpmとはかんけいありません。

3) コンパイルのときにルートディレクトリを指定できますが、
設定さえちゃんとしてあれば、どこにあってもかまいません。

/etc/httpd/httpd.conf でも、/usr/local/apache/conf/httpd.conf でも。

4) わかりません。
    • good
    • 0
この回答へのお礼

回答有難う御座います。

1)・2)は了解しました。
でもrpmでアンインストールした場合conf等の設定ファイルも削除されるのですね?

3)なんですが、そのとき自動起動させるためにはどこをどう設定すればいいのでしょうか?(インストールしたバージョンのapacheは本にはそこまで書いてありませんでした。他の本に書いてあるコマンドを実行しようとしましたがコマンドが無いと言っております。またntysysvにhttpdが表示されないのは何故でしょうか?)

お礼日時:2001/11/25 08:29

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報