a2ensiteのサイトが存在しないエラー


275

私が持っているcmsplus.devの下で/etc/apache2/sites-available、次のコードで

<VirtualHost *:80>
    ServerAdmin master@server.com
    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)

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

回答:


577

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

Apacheのa2ensite結果:

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

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

sudo a2ensite example.com

しかしそれは返します:

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

a2ensite 末尾がファイル名の場合にのみ機能するPerlスクリプトです .conf

したがって、私は私のために、設定ファイルの名前を変更する必要があるexample.comexample.com.conf次のように達成される可能性がありますよう:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

成功


25
おかしい!これは、Ubuntu 12.04および12.10では拡張機能なしで正常に機能していました。
FloatingRock

わたしも。ギルヘルメが言うように、apache2.confはubuntuまたはApacheバージョン間で変更されました。
Nicolas Zozol 2014

7
別の方法として、apache.confファイルを編集することもできます。関連する行は「IncludeOptional sites-enabled / *。conf」です。最後にある.confを削除すると、12.04で機能していたものに戻ります。これはDebianがUbuntuに導入した変更かもしれないと思いますが、よくわかりません。
ジョサイア

2
なぜこれが3番目の答えになるのですか?これが正しい方法です。
2014

私はほとんどすべてを変更した後、
あきらめ

91

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

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

ターミナル(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

これでサイトが稼働しているはずです。


更新:ここで説明したよう、インストールしたLinuxディストリビューションは、*。confのみを含めるように構成を変更しました。したがって、Apache 2.2または2.4とは関係ありません。


28

別の良い方法があります。ファイルを編集apache2.confして、最後に行を追加します

IncludeOptional sites-enabled / *。conf

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

IncludeOptional sites-enabled / *

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

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


1
うーん...私はUbuntu 14.04でこれを試してみましたが、うまくいきませんでした。.confただし、構成ファイルへの追加は行いました。
Clifton Labrum 2014年

奇妙なことに、ubuntu 12.04を13.10に更新したときに、このエラーが発生しました(誤ってapache構成ファイルを置き換えたため)。14.04のアップデートでは、代用しないことを思い出しましたが、問題がありました。
ギルヘルメ

これは本当に良い方法ではありません。sites-enabledの下のファイルは、sites-availableの下の対応するファイルへのシンボリックリンクであり、サイトを無効にするために削除する必要があります。
Dokbua

8

私は同じ問題を抱えていました。apache.confとは何の関係もないと思います。

a2ensiteは変更されている必要があります-532行目は.confサフィックスを適用する行です:

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

次のように変更した場合:

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

...サフィックスがなくても機能します。

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

これはおそらく「.conf」サフィックスを適用する方法にすぎません。


この質問も参照してください:askubuntu.com/questions/362682/…– cslotty 2014
15:03

7

したがって、最も簡単な方法は、「。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は、説明されているようにハッキングすることはできません

また、サイトで利用可能なファイルは実際には構成ファイルなので、とにかくそのように名前を付ける必要があります。


通常、サービスを再起動しないでください(Webサーバーはサービスの1つのタイプです)。

  • 彼らは走っていないと彼らを見つけることができません!MS WindowsではなくLinuxだと思います。

サーバーは何年も実行できます-ライブ更新、リロード設定など

クラウドは、構成ファイルをロードするために再起動する必要があるという意味ではありません。

  • サービスの構成を変更する場合は、「再起動」ではなく「再読み込み」を使用してください。

  • restartはサービスを停止してからサービスを開始します-構成の変更に問題がある場合、サービス再起動しません

  • reloadを実行するとエラーが発生しますが、サービスがシャットダウンすることはないため、構文エラーの可能性がある構成エラーを修正することができます。

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

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

他のosは、読者のためのexcersizeとして残されています。


5

.conf構成ファイルに追加した後に動作しました


2

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)ウェブサイトのvhostファイルの名前を変更し、拡張子を変更して末尾に.confを追加します

$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf

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

$ sudo a2ensite mywebsite.conf

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


1

Ubuntu 14.04.3とApache 2.4.7の場合、問題はsite1.confをコピーしてsite2.confを使用可能にすることでした。コピーすると、何かが起こり、site2.confをサイトに表示できず、スレッドに記載されたエラーが発生しました。

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


1

ここではそうではありませんが、誰かを助けるかもしれません。

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


-2

このようにしてみてください。

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin master@server.com
    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>

/ etc / hostsにエントリを追加します

127.0.0.1 www.cmsplus.dev

Apacheを再起動します。


これIt worksで、設定ではなくデフォルトのページが表示されます。
devo

複数の仮想ホスト構成がありますか?ファイル全体のコンテンツを投稿できますか?
Balaji Perumal

3
おかげで、.confこれらのサイト構成ファイルに拡張子を追加するだけでこの問題を解決できました。
ディーヴォ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.