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
その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/
内の適切な実行レベルのフォルダーへのシンボリックリンクを作成します。
これが最終的に私のために働いたものです。これは、あなたがrootユーザーであることを前提としています。
/ 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のバージョンを呼び出す必要があります。
以下のおかげで:
/etc/rc.d
ディレクトリにhttpd
initスクリプトがあるかどうかを確認します。はいの場合は、次のコマンドを実行するだけで、ブート時にhttpdサービスを開始できます。
chkconfig --level 345 httpd on
Initスクリプトがない場合は、/etc/rc.local
ファイルにapachectl -k start
(Apacheを起動するコマンド)を追加するだけです。
ソースによってインストールしたので、/ 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ディレクトリにリンクするだけでよくできます。ただし、システムの正確な要件を確認してください。
Red Hat Linuxには、ntsysvと呼ばれる便利なユーティリティがあり、現在の実行レベルで開始するサービスを選択できます。また、--level
を使用してユーティリティを起動するときに、編集する実行レベルを指定して呼び出します。
下にスクロールしてhttpdを押し、 Space 星が左側のボックスに表示されます。その後 Tab 取った。押す Return 保存してシェルに戻ります。
デフォルトでほとんどインストールされることがわかりました。設置されていない場所に行ったことはありません。
サービススクリプトを/etc/init.dにコピーして実行することにより、最初にサービスをインストールする必要があります。
chkconfig --add <script name>
chkconfig --levels 345 httpd
ランレベル3、4、5でhttpdを起動します。
chkconfig --listは、すべてのサービスとそれらの現在の起動ランレベルを表示します。ネットワークサービスでは、345が一般的です。
Linuxの種類によって異なります。ファイル/etc/init.d/Apache2が作成されていると想定して、以下を試してください:
chkconfig -a Apache2
または
update-rc.d Apache2 defaults
それらの1つは動作するはずです。