web-dev-qa-db-ja.com

Linuxで起動時にApacheを起動するにはどうすればよいですか?

LinuxボックスのソースからApache 2をインストールしました。 apachectl -k startは問題なく動作しますが、Apacheを起動時に起動するにはどうすればよいですか?

これはRed Hat Linuxディストリビューションにあります。

Linux <hostname> 2.6.9-55.ELsmp#1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux

32
grieve

そのinitスクリプトを適切な実行レベルに追加する必要があります。 initスクリプトは通常/etc/init.d/Apache2で、手動で/etc/init.d/Apache2 startを実行して開始できます。

Gentooでは次のように書きます:

rc-update add Apache2 default

Ubuntu/Debianではこれはうまくいきます:

Sudo update-rc.d Apache2 defaults

Red Hat Linux/Fedora/CentOSでは、少しグーグルでこれを示しています。

chkconfig --add httpd

配布ごとに少し異なりますが、考え方は通常同じです。基本的に、これらすべてのコマンドは、/etc/init.d/から/etc/内の適切な実行レベルのフォルダーへのシンボリックリンクを作成します。

46
Evan Teran

これが最終的に私のために働いたものです。これは、あなたがrootユーザーであることを前提としています。

  1. vi /etc/init.d/Apache2(以下のように編集します)
  2. chmod 755 /etc/init.d/Apache2
  3. chkconfig-Apache2を追加
  4. chkconfig --Apache2をリストします(動作することを確認するため)

/ etc/init.d/Apache2:の内容

#!/ bin/bash 
#
#Apache HTTPサーバー用Apache2起動スクリプト
#
#chkconfig:3 85 15 
#説明:ApacheはWorld Wide Webサーバーです。\
#HTMLファイルとCGIを提供するために使用されます。
 
/usr/local/Apache2/bin/apachectl $ @ 

/ sbin/runlevelを実行することでランレベルを取得できます。私の場合は3でした。もちろん、私の場合は/ usr/local/Apache2/bin/apachectlであるapachectlのバージョンを呼び出す必要があります。

以下のおかげで:

26
grieve

/etc/rc.dディレクトリにhttpd initスクリプトがあるかどうかを確認します。はいの場合は、次のコマンドを実行するだけで、ブート時にhttpdサービスを開始できます。

chkconfig --level 345 httpd on

Initスクリプトがない場合は、/etc/rc.localファイルにapachectl -k start(Apacheを起動するコマンド)を追加するだけです。

8
Viky

ソースによってインストールしたので、/ etc/init.d /ディレクトリにインストールされたinitスクリプトはありません。 apachectlバイナリは、標準のinitスクリプトオプションと互換性があるように設計されているため、ラッパースクリプトを作成するのではなく、単純にシンボリックリンクすることができます(例:ln -s/usr/local/sbin/apachectl /etc/init.d/ Apache)

その後、他の投稿で説明されている手順に従って、正しいランレベルでinitスクリプトを呼び出すリンクを追加できます。

引用:Apacheドキュメント http://httpd.Apache.org/docs/2.2/invoking.html

起動時から

システムの再起動後もサーバーを稼働させたい場合は、apachectlの呼び出しをシステムの起動ファイル(通常はrc.localまたはrc.Nディレクトリ内のファイル)に追加する必要があります。これにより、Apacheがrootとして起動します。これを行う前に、サーバーがセキュリティとアクセス制限に対して適切に構成されていることを確認してください。

Apachectlスクリプトは、標準のSysV initスクリプトのように機能するように設計されています。引数start、restart、stopを取り、それらを適切な信号にhttpdに変換できます。そのため、apachectlを適切なinitディレクトリにリンクするだけでよくできます。ただし、システムの正確な要件を確認してください。

4

Red Hat Linuxには、ntsysvと呼ばれる便利なユーティリティがあり、現在の実行レベルで開始するサービスを選択できます。また、--levelを使用してユーティリティを起動するときに、編集する実行レベルを指定して呼び出します。

下にスクロールしてhttpdを押し、 Space 星が左側のボックスに表示されます。その後 Tab 取った。押す Return 保存してシェルに戻ります。

デフォルトでほとんどインストールされることがわかりました。設置されていない場所に行ったことはありません。

サービススクリプトを/etc/init.dにコピーして実行することにより、最初にサービスをインストールする必要があります。

chkconfig --add <script name>
1
Garry Harthill

chkconfig --levels 345 httpd

ランレベル3、4、5でhttpdを起動します。

chkconfig --listは、すべてのサービスとそれらの現在の起動ランレベルを表示します。ネットワークサービスでは、345が一般的です。

1
elint

Linuxの種類によって異なります。ファイル/etc/init.d/Apache2が作成されていると想定して、以下を試してください:

chkconfig -a Apache2

または

update-rc.d Apache2 defaults

それらの1つは動作するはずです。

1
Neobyte