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)
この問題を解決するには?
サイト設定ファイルに.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
成功
あなたはおそらくあなたの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とは関係ありません。
もう1つの良い方法があります、最後に行があるファイルApache2.conf
を編集するだけです
IncludeOptional sites-enabled/*。conf
このように、最後の.conf
を削除するだけです。
IncludeOptionalサイト対応/ *
サーバーを再起動します。
(私がそれを更新したとき、私はUbuntu 13.10でこれを試しました。)
私はちょうど同じ問題を抱えていました。私はそれがApache.confとは何の関係もないと言いたいです。
a2ensiteが変更されている必要があります - 532行目は.conf接尾辞を強制する行です。
else {
$dir = 'sites';
$sffx = '.conf';
$reload = 'reload';
}
あなたがそれをに変更した場合:
else {
$dir = 'sites';
#$sffx = '.conf';
$sffx = '';
$reload = 'reload';
}
...接尾辞なしで動作します。
もちろん、a2ensiteスクリプトを変更したくはありませんが、confファイルのサフィックスを変更するのが正しい方法です。
それはおそらく ".conf"サフィックスを強制するための単なる方法です。
最速の方法は ".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サーバーは一種のサービスです)。
サーバーは何年も稼働できます - ライブアップデート、設定のリロードなど.
クラウドは、設定ファイルを読み込むために再起動する必要があるという意味ではありません。
サービスの設定を変更するときは、「再起動」ではなく「reload」を使用してください。
再起動はサービスを停止し、それからサービスを開始します - 設定の変更に問題がある場合は、サービスしない再起動します。
reloadを実行するとエラーが発生しますが、サービスがシャットダウンされることはありません。設定エラーを修正することができます。
debianまたはubunto [このスレッドのサービス名はApache2]
service {service-name} {start} {stop} {reload} ..
他のosは読者のための抜粋として残っています。
設定ファイルに.conf
を追加した後に動作しました
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にすることができました。
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)ブラウザでウェブサイトをチェックして楽しんでください! :)
私はそれがここの場合ではないことを認識しますが、それは誰かを助けるかもしれません。
/ etc/Apache2/sites-enabledにconfファイルを誤って作成していないことを再確認してください。同じエラーになります。