• ベストアンサー

RedHatLinux7.1へのapache追加インストール等

質問が幾つかあります。(このような質問の仕方が正しいかどうかはわかりませんが・・) 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を使用できるようになるのでしょうか? 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ken2
  • ベストアンサー率36% (86/235)
回答No.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で起動するようになります。

その他の回答 (2)

  • leiqunni
  • ベストアンサー率27% (8/29)
回答No.2

えー中途半端な返答で申し訳ないのですけど、rpmでアンインストールした場合は おそらく設定ファイルも削除されます。 自動起動させるためには、/etc/rc.d/init.d をいじります、 シェルスクリプトになっているので、httpd のパスを書き換えるだけです。 あとこちらも憶測なんですけど、ntsysv は /etc/rc.d を メンテナンスするツール(らしい)ので、rc.d にスクリプトを書いてやれば 出てくると思います。 http://www.redhat.co.jp/manual/Doc71/RHDOCS/rhl-cg-ja-7.1/p6312.html http://www.redhat.co.jp/manual/Doc71/RHDOCS/rhl-rg-ja-7.1/ch-configuration.html が参考になります。 # ここら辺のことは人に教えるのが難しいです(汗

  • leiqunni
  • ベストアンサー率27% (8/29)
回答No.1

1) えー、tarのソースからコンパイルしインストールで問題ありません。 それでうまくいかないのは、rcかなにかでシステムでインストール したapacheが立ち上がってるからだと思います。rpmコマンドでは、 依存関係も考慮して、削除してくれます。 2) すみません、ちょっと詳しくはわからないんですけど、rpmのカタログに 登録されるのはrpmからインストールしたものだけなので、自分で コンパイルしてインストールしたのはrpmとはかんけいありません。 3) コンパイルのときにルートディレクトリを指定できますが、 設定さえちゃんとしてあれば、どこにあってもかまいません。 /etc/httpd/httpd.conf でも、/usr/local/apache/conf/httpd.conf でも。 4) わかりません。

jincyan
質問者

お礼

回答有難う御座います。 1)・2)は了解しました。 でもrpmでアンインストールした場合conf等の設定ファイルも削除されるのですね? 3)なんですが、そのとき自動起動させるためにはどこをどう設定すればいいのでしょうか?(インストールしたバージョンのapacheは本にはそこまで書いてありませんでした。他の本に書いてあるコマンドを実行しようとしましたがコマンドが無いと言っております。またntysysvにhttpdが表示されないのは何故でしょうか?)