web-dev-qa-db-ja.com

A2ensiteのサイトが存在しないというエラー

cmsplus.devの下に/etc/Apache2/sites-availableがあり、次のコードがあります。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

Sudo /usr/sbin/a2ensite cmsplus.devを使用すると、エラーが発生します。

ERROR: Site cmsplus.dev does not exist!

私のウェブサーバーApache/2.4.6 (Ubuntu)

この問題を解決するには?

252
devo

サイト設定ファイルに.conf拡張子を追加することで問題を解決しました。

Apacheのa2ensiteは以下のようになります。

エラー!サイトが存在しません

問題;次のコマンドを使用してサイトを有効にしようとしたときにエラーが発生した場合

Sudo a2ensite mysite.com

しかしそれは返します:

エラー:mysite.comは存在しません

a2ensiteは、単に.confで終わるファイル名でのみ機能するPerlスクリプトです。

したがって、次のようにして、mysite.comの設定ファイルをmysite.com.confに名前変更する必要があります。

mv /etc/Apache2/sites-available/mysite.com /etc/Apache2/sites-available/mysite.com.conf

成功

529
devo

あなたはおそらくあなたのUbuntuインストールを更新しました、そして更新の一つはバージョン2.4.xへのApacheのアップグレードを含んでいました

Apache 2.4.xでは、/ etc/Apache2/sites-availableディレクトリにあるvhost設定ファイルの拡張子は.confです。

Terminal(mvコマンド)を使用して、既存の設定ファイルをすべて名前変更し、それらすべてに.conf拡張子を追加します。

mv /etc/Apache2/sites-available/cmsplus.dev /etc/Apache2/sites-available/cmsplus.dev.conf

"Permission denied"エラーが表示された場合は、端末コマンドの前に "Sudo"を追加してください。

設定ファイルに他の変更を加える必要はありません。

仮想ホストを有効にします。

a2ensite cmsplus.dev.conf

そしてApacheをリロードします。

service Apache2 reload

あなたのサイトは今稼働しているはずです。


UPDATE: here で述べたように、あなたがインストールしたLinuxディストリビューションは設定をInclude * .confのみに変更しました。したがって、Apache 2.2または2.4とは関係ありません。

86
consuela

もう1つの良い方法があります、最後に行があるファイルApache2.confを編集するだけです

IncludeOptional sites-enabled/*。conf

このように、最後の.confを削除するだけです。

IncludeOptionalサイト対応/ *

サーバーを再起動します。

(私がそれを更新したとき、私はUbuntu 13.10でこれを試しました。)

27
Guilherme

私はちょうど同じ問題を抱えていました。私はそれがApache.confとは何の関係もないと言いたいです。

a2ensiteが変更されている必要があります - 532行目は.conf接尾辞を強制する行です。

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

あなたがそれをに変更した場合:

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

...接尾辞なしで動作します。

もちろん、a2ensiteスクリプトを変更したくはありませんが、confファイルのサフィックスを変更するのが正しい方法です。

それはおそらく ".conf"サフィックスを強制するための単なる方法です。

8
cslotty

最速の方法は ".conf"で終わるサイト設定名を変更することです

mv /etc/Apache2/sites-available/mysite /etc/Apache2/sites-available/mysite.conf

a2ensite mysite.conf

以前のコメントに関する他のメモ:

  • IncludeOptionalはApache 2.36まで導入されませんでした - 上記の変更をした後2.2で再起動するとサーバが停止します

  • また、バージョン2.2のa2ensiteは説明されているようにハッキングすることはできません。

同様に、あなたのsites-availableファイルは実際には設定ファイルなので、とにかくそのように命名されるべきです..


一般にしないサービスを再起動します(Webサーバーは一種のサービスです)。

  • 彼らが実行されていない場合、人々はそれらを見つけることができません! LinuxはMS Windowsではないと思います。

サーバーは何年も稼働できます - ライブアップデート、設定のリロードなど.

クラウドは、設定ファイルを読み込むために再起動する必要があるという意味ではありません。

  • サービスの設定を変更するときは、「再起動」ではなく「reload」を使用してください。

  • 再起動はサービスを停止し、それからサービスを開始します - 設定の変更に問題がある場合は、サービスしない再起動します。

  • reloadを実行するとエラーが発生しますが、サービスがシャットダウンされることはありません。設定エラーを修正することができます。

debianまたはubunto [このスレッドのサービス名はApache2]

service {service-name} {start} {stop} {reload} ..

他のosは読者のための抜粋として残っています。

7
lil ol me

設定ファイルに.confを追加した後に動作しました

5
16kb

Ubuntu 14.04.3とApache 2.4.7の私の場合、問題は、site2.confを利用可能にするためにsite1.confをコピーしたこと、そしてコピーすることによって何かが起こり、thread2に記述されたエラーで2サイトsite2.confを実行できなかった。

私にとっての解決策は、site2.confの名前をsite2に変更し、次にsite2の名前をsite2.confに変更することでした。その後、私は2サイトsite2.confにすることができました。

1
SysManSD

Ubuntu Serverのバージョンを12.04 LTSから14.04 LTSにアップグレードしました。

確かに、上で述べたように、Apache 2.4.xへの.conf拡張子はsites-availableディレクトリにあるウェブサイトのvhostファイルに必要です。

この質問を読む前は、サーバーで何が起こっているのかわかりませんでした。

かなりいい解決策です。

要約すると、ターミナルで次の手順を実行しました。

1)サイト対応フォルダへのアクセス

$ cd /etc/Apache2/sites-enabled

2)コマンドa2dissiteは廃止予定のファイル(.confなし)では機能しないため、公開された古いWebサイトファイルを削除します。

$ Sudo rm <my-old-website-without-.conf>

3)末尾に.confを追加して、拡張子を変更してWebサイトのvhostファイルの名前を変更します。

$ Sudo mv /etc/Apache2/sites-available/mywebsite /etc/Apache2/sites-available/mywebsite.conf

4)新しく正しいvhostファイルを再公開します。

$ Sudo a2ensite mywebsite.conf

5)ブラウザでウェブサイトをチェックして楽しんでください! :)

1

私はそれがここの場合ではないことを認識しますが、それは誰かを助けるかもしれません。

/ etc/Apache2/sites-enabledにconfファイルを誤って作成していないことを再確認してください。同じエラーになります。

0
Dave