Linux Mintでサービス(apache2)を自動起動する方法


11

(Strangley)Linux Mintにログインすると、インストールしたApache2が起動しません。

このコマンドを実行すると、次のようになります。

sudo service apache2 start

ログインのたびにこのサービスを起動する方法を教えてください。


~/.xinitrc起動時に実行されるコマンドをに配置できます。
n0pe 2012年

2
@MaxMackie逆に、~/.xinitrcログイン時に実行されますが、これは正しくありません。Apacheは起動時にrootによって起動される必要があります。
Gilles「SO-悪をやめる」

@Gilles、そうだね、訂正してくれてありがとう。しかし、なぜ起動時にapacheを起動する必要があるのですか?ログインでもほぼ同じことはできませんか?
n0pe

@MaxMackieブート直後にログインしない場合は、当然です。また、Apacheはそのままでは実行されないため、権限を付与する必要があります。起動スクリプトの一部から開始する必要があり、通常は開始します。
Gilles「SO-悪をやめる」

@ギレス。その上で光を当ててくれてありがとう。
n0pe 2012年

回答:


12

Debian(Ubuntu / Linux Mint)

rcconf(CLI-GUI)

sudo apt-get install rcconf
sudo rcconf

update-rc.d

sudo update-rc.d -f apache2 add

または

sudo update-rc.d apache2 defaults

RedHat / Fedora / CentOS

chkconfig

sudo chkconfig --add apache2

または

sudo chkconfig -- level 35 apache2 on

rcconfを実行したとき、Apacheはすでにチェックされていました。
eoinoc

update-rc.dコマンドを実行するとエラーが発生します:update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5)
eoinoc

あなたは与えている更新-rc.dのののapache2のデフォルト更新が-rc.dの-f apache2の3 5追加
earthmeLon

1
ありがとう、しかしどちらもうまくいきませんでした。最初は「すでに存在します」という警告が表示され、2番目はが表示されましたwarning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5)
eoinoc

6

MintはUbuntuに基づいており、UbuntuはUpstartに切り替えているため、Upstartクックブックには、起動時または指定したランレベルでサービスを開始するためのすべての情報が含まれています。

このサイト では、起動時にApacheを起動するための詳細なクックブックを提供しています。


そのページでは、bashスクリプトをに配置する方法について説明してい/etc/init.d/apache2ます。しかし、そのファイルはすでにもっと複雑なbashスクリプトでいっぱいです。これは、Apache自体によってそこに配置されたに違いありません。
eoinoc 2012年

3

同じ問題のもう1つの原因は、rc [0-6] .dのApacheリンクの優先度です。私のはS90とK09で、Apacheは起動時に起動しませんでした。優先度をデフォルトの20に設定すると、うまくいきました。最初に既存のリンクを削除する必要があります。

sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 defaults

2

シャットダウン時にエラーが発生しました:

/etc/apach2/apache.confの230行目の構文エラー.... / etc / apache / sites-enables / mysite:そのようなファイルまたはディレクトリはありません

問題は、mysiteホームフォルダーのファイルにシンボリックリンクされたことです。

それは通常問題にはならないはずだと私は思った。

しかし、私の知る限り、私のホームパーティションは暗号化されています。したがって、Apacheがロード中に仮想サイトファイルを読み取ることができなかったと思います。パスワードを入力するまでファイルにアクセスできませんでした。

複雑な状況で、解決に数か月かかりました:)


それで、あなたはそれをどのように解決しましたか?
JonasÄppelgran2017

0

2019年に更新された新しい回答:

sudo systemctl start httpd

sudo systemctl enable httpd

systemctlコマンドは、systemdシステムとサービスを制御する新しいツールです。これは古いSysV initシステム管理の置き換えです。最近のLinuxオペレーティングシステムのほとんどは、この新しいツールを使用しています。CentOS 7、Ubuntu 16.04以降、またはDebian 9システムを使用している場合。彼らは現在systemdを選択しています。

有効なサービスは、システムの起動時に自動起動します。これは、SysV initのchkconfigよりもsystemdのオプションに似ています。


1
開始を要求する前に有効になるように、順序を逆にすることを検討する場合があります。
ジェフシャラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.