人に聞けない痔の悩み、これでスッキリ >>

Apacheを複数のhttpd.confファイルを用いて運用している場合、
個々のhttpd.confを指定してのApache再起動は可能なのでしょうか?

試しに、httpd_1.confとhttpd_2.confを用いて実施してみましたけど、
エラーになってしまいました。

手順を踏まえての詳細を以下に示します。

1./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_1.conf コマンドでApacheを起動。

2./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_2.conf コマンドでApacheを起動。

3.その後Apacheを停止したらプロセスが残ってしまいました。

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

A 回答 (6件)

No.1のかたが書かれているように、それぞれのポート番号は変えないと後から起動したほうはエラーが出るでしょう



あと、apachectlの中で、PIDFILEを
PIDFILE=/usr/local/apache/logs/httpd.pid
のように指定していて、プロセスIDを管理しているので、PIDFILEを別にしたapachectlをもう1つ用意しないとダメでしょう
(単なるシェルスクリプトなので中を見りゃわかるはず)
PIDFILEが重なると起動や終了時に影響が出ます
(このファイルがあるかないかですでにapacheが起動されているかを判断していますし、このPIDFILEの中のPIDを見てkillすることで終了しているので)
    • good
    • 0

#5 の方がいいところまで詰めているようですが、


一部誤っている箇所があるので。

httpd.conf に以下の記述があるのを読まれましたか?

# If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and
# PidFile.

複数の httpd.conf を使用する場合は、少なくとも PidFile と LockFile
に別の値を設定しなければなりません。

ちなみに、Apache2 では apachectl 内に PIDFILE の記述はありません。
PIDFILE の管理は Apache 本体である httpd で行っています。
    • good
    • 0

AmazonEC2って仮想レンタルサーバですよね。


つかったことないので、ちょいとみてみたら、仮想で複数台構成ができるようなことが書いてあって、ユーザは、それを気にしないでいいのかな?って感じにうけました。(すいません、いかんせん使ったことないんで。。)
僕が見たURLを参考に貼っておきます。
多分、バーチャルサーバーで十分だと思いますが。。。
(対費用効果を考えると。。そんなに止まることもないと思いますので。ちなみに僕は、会社で1台で5サーバ(バーチャル)を動かしてます。。。)
これ以上はアドバイスできないと思いますが、結果が気になるので教えて下さいね。では、頑張ってください。

参考URL:http://gihyo.jp/dev/serial/01/amazon_ec2/0001
    • good
    • 0

ご心中 お察し申し上げます。


どのようなシステムかはわかりませんが、もし、可能なら複数台のサーバを用意して分散運用させることも考えたらいいかもですね。
もちろん、フロント(Web)とアプリケーションサーバ、DBサーバを分けることも考慮して。。負荷分散装置の導入も視野に入れた方がいいかも。。。
    • good
    • 0
この回答へのお礼

サーバを複数台用意する予算なんてないです。ましてや負荷分散装置など。
ですので、WebサーバはAmazonEC2を使用しています。
ちなみに今回はWebサーバのみで、APサーバやDBサーバの使用予定はありません。

お礼日時:2009/12/08 23:28

No1です。

補足です。
その時は、環境も分けました。例をとると、./usr/local/apache2/binと./usr/local/apache3/bin みたいに。。(apacheではありませんが)

この回答への補足

すいません、言い忘れてました。
現在、必死で調べているのは、僕ではなく、
Apacheの複数起動に拘ってる人です。
ご心配をおかけしてすいません。

補足日時:2009/12/08 23:34
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
Apacheを複数起動する理由は、1つのサーバで複数のユーザ向けにWebサイトを提供するためです。
そして、1ユーザ向けApacheを再起動しても、他のユーザへは影響を与えないようにするためです。

ちなみに、この方法を提案したのは僕ではありません。
僕はVirtualHostが無難だと提案したのですが、その人は聞く耳をもたないような感じも伺えて、
現在、必死で調べています。

お礼日時:2009/12/08 23:06

apacheを複数起動する理由がわかりません。

理由を教えて下さい。
で、少し思ったのですが、apacheではありませんが、過去にwebサーバを複数起動した記憶があります。(UNIXですが。。)
で、その時はポートを指定してあげた記憶があります。
(80番は占有されるので、8080番とか。。。)
ポートを違えれば、起動できるかもしれませんね。
(apacheでどうやって、ポートを変えるかは知りませんが。。調べてみるか!!)
    • good
    • 0

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qapacheの実行ユーザ名を取得

httpdを実行しているユーザを取得するコマンドを教えてください。
# ps alx
を試しましたが、これでは実行ユーザは表示されませんでした。

apacheの設定を見れば分かりますが、勉強のためにコマンドで取得する方法を教えてください。

ディストリビューションはVineLinuxです。

Aベストアンサー

ps auxw
で表示できます。
ただし、これでは全てのプロセスが表示されてhttpdがどれなのか見づらいため
ps auxw | grep httpd
として絞り込むのが良いでしょう。
さらに、apacheは複数の子プロセスを作り、子プロセスの実行ユーザはnobodyのことがあります。
そこで
ps auxw | grep /usr/local/apache/bin/httpd
と、フルパスで指定してあげれば親プロセスの実行ユーザを表示できます。

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

QPostgreSQLが起動しない・・・

はじめまして、tanu_2です。
玄箱HGをDebian化し、いろいろと遊んでいます。

PostgreSQLをapt-getでインストールし、Webアプリを動かしていたのですが、昨日より突然、PostgreSQLが動かなくなってしまいました。
原因が分からず、サーバを再起動し、
# /etc/init.d/postgresql start

$ pg_ctl start
などを試してみたのですが、動きません。
念のため、初期化(initdb)も試みたのですが、これも失敗してしまいます。
/var/log/postgresql/postgres/logを覗いてみると、

FATAL: could not write lock file "/var/lib/postgres/data/postmaster.pid": No space

となっており、上記ディレクトリにpostmaster.pid書き込みできないよ、と言われているっぽかったので、パーミッションを変更したりして
みましたが、postgresql startにしろ、pg_ctl startにしろ、それぞれのコマンドで起動すると、強制的にパーミッションが「700」に変更されてしまうようで、結果は同じでした。

どなたか、解決策をご教示願えませんでしょうか?

よろしくお願いします。m(_ _)m

はじめまして、tanu_2です。
玄箱HGをDebian化し、いろいろと遊んでいます。

PostgreSQLをapt-getでインストールし、Webアプリを動かしていたのですが、昨日より突然、PostgreSQLが動かなくなってしまいました。
原因が分からず、サーバを再起動し、
# /etc/init.d/postgresql start

$ pg_ctl start
などを試してみたのですが、動きません。
念のため、初期化(initdb)も試みたのですが、これも失敗してしまいます。
/var/log/postgresql/postgres/logを覗いてみると、

FATAL: could not wri...続きを読む

Aベストアンサー

それ以外にも、以下のようなコマンドを使ってデータベースサーバプログラムの起動が出来ますよね。

postmaster -D /usr/local/pgsql/data

ただ、以下のURLのドキュメント内には、次のような記述があります。

「何を実行するにしても、サーバはPostgreSQLユーザアカウントで起動させなければなりません。 rootであってはいけませんし、他のユーザでもいけません。」

パッケージによるインストールであれば、自動でpostgresユーザが作られているはずだと思うけど。(Debianは使ったことないので、確証はなし。)

su - postgres

上記のコマンドでログインするなり、パスワードを忘れたのならroot権限にてpasswdコマンドから変更するなりした後、もう一度postmasterを起動してみよう!

ちなみに、パーミッション関係のエラーは、「Permission denied」ですよね。

参考URL:http://www.postgresql.jp/document/pg803doc/html/postmaster-start.html

それ以外にも、以下のようなコマンドを使ってデータベースサーバプログラムの起動が出来ますよね。

postmaster -D /usr/local/pgsql/data

ただ、以下のURLのドキュメント内には、次のような記述があります。

「何を実行するにしても、サーバはPostgreSQLユーザアカウントで起動させなければなりません。 rootであってはいけませんし、他のユーザでもいけません。」

パッケージによるインストールであれば、自動でpostgresユーザが作られているはずだと思うけど。(Debianは使ったことないので、確証は...続きを読む

Qapacheユーザの実行権限設定はどうすれば良い?

■環境
・Cent OS

■状況
・所有者hogeのディレクトリxに対して、スクリプト経由(apacheユーザ権限)でchmodしようとすると、エラーになります
・スクリプト経由(apacheユーザ権限)でディレクトリ作成しようとしても、エラーになります

■質問
・どうすれば良いでしょうか?
・所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか?

・ディレクトリ所有者がhogeであることが問題? apache所有にした方が良い?
・それとも、スクリプト実行を、apacheユーザ権限ではなく、所有者hogeにした方が良い? どうやって?

・そもそもapacheユーザ権限は、一般的にどう設定するものなのでしょうか? rootみたいに最強にする?

Aベストアンサー

> 所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか?

基本的にはそれでOKですが、それだけではapacheユーザが作成した
ファイルをhogeユーザが変更できなくなってしまうかもしれません。

user=hoge,group=hoge
user=apache,group=apache,groups=hoge

groupは一次グループ、groups2は二次グループです。umask002 (新
規作成されたファイルのパーミッションが775 ) に設定されている
とします。

hogeユーザが作成したファイルはhoge/hoge なので、hogeグループ
に属するapacheユーザは編集可能です。しかし、apacheユーザが新
規作成したファイルはapache/apache になるので、apacheグループ
に属さないhogeユーザは編集できません。

そこで、ディレクトリをhogeユーザで作成し、ディレクトリにsgid
ビットを立てます。

$ chmod 2775 dir
$ ls -l dir
drwxrwsr-x 2 hoge hoge 4096 4月 7 13:35 dir

これで、apacheユーザがdir上に作成したファイルはapache/apache
ではなく、apache/hoge になるので、hogeユーザも編集できるよう
になります。

> 所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか?

基本的にはそれでOKですが、それだけではapacheユーザが作成した
ファイルをhogeユーザが変更できなくなってしまうかもしれません。

user=hoge,group=hoge
user=apache,group=apache,groups=hoge

groupは一次グループ、groups2は二次グループです。umask002 (新
規作成されたファイルのパーミッションが775 ) に設定されている
とします。

hogeユーザが作成したファイルはhoge/hoge なので、hogeグループ
に属するapacheユーザは編集可能...続きを読む

Qインストールされているディレクトリを知るコマンドはありませんか?

phpのconfigerをするのに、
phpのインストールされているパスへ移動しなくてはいけませんが、
phpがどこにインストールされているかわかりません。

 rpm -qf php-4.0.6-7

とすると

 エラー: ファイル php-4.0.6-7: そのようなファイルやディレクトリはありません

と表示されてしまうのです。
rpmのサイトを見てオプションを設定して表示された結果から
ディレクトリを移動しても
コンフィギャーできるところに辿り着きませんでした。

どうしたらインストールされているディレクトリを
知ることができるでしょうか?

OSは以下の通りです。
AIX Version 4 もしくは LASER5 Linux release 7.2

今月が納期で生じたバグ対応のため大変困っています。
質問場所が違っていたら申し訳ないですが、
よろしくお願いいたします。

Aベストアンサー

Laser5に限っての話ですが、標準のインストールでphpはインストールされるはずですが。

# rpm -qa | grep -i php

でphpのパッケージ名は表示されませんか?

findを実行した結果、

php(コマンド)
libphp4.so(ライブラリ)
php.ini(設定ファイル)

等も見つからないのでしょうか?
もしそうならphpはパッケージもソースでもインストールされていない可能性があります。

Qsqlplusで表示が変なので、出力を整形したい。

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

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

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

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

QApacheのドキュメントルートを複数設定する事は可能ですか?

こんにちは。
www.aaa.comというwebサイトのドキュメントルートの設定を

DocumentRoot /home/web/aaa/html 

と設定しています。これを複数にすることは可能でしょうか?

例:DocumentRootを
/home/web/aaa/html 
 と 
/home/web/bbb/html

の二つにして、どちらのディレクトリにもアクセスできるようにしたいのです。

/home/web/aaa/html/xxx.html

へはwww.aaa.com/xxx.htmlでアクセスできますが、ドキュメントルートを複数設定することによって

/home/web/bbb/html/yyy.html

にも www.aaa.com/yyy.html でアクセスできるようにする方法というのはありますでしょうか?

Aベストアンサー

違うフォルダに同じファイル名があったときに実際にアクセスするファイルが一意に決まらないのでできないかと。
unix系ならシンボリックリンク使えば出来ないことは無いでしょうがね。


人気Q&Aランキング