Situs tidak ada kesalahan untuk a2ensite

275

Saya miliki di cmsplus.devbawah /etc/apache2/sites-availabledengan kode berikut,

<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>

Sekarang ketika saya gunakan sudo /usr/sbin/a2ensite cmsplus.dev, saya mendapatkan kesalahan,

ERROR: Site cmsplus.dev does not exist!

Server web saya Apache/2.4.6 (Ubuntu)

Bagaimana cara mengatasi masalah ini?

devo
sumber

Jawaban:

577

Memecahkan masalah dengan menambahkan .confekstensi ke file konfigurasi situs.

Apache a2ensitemenghasilkan:

Kesalahan! Situs Tidak Ada

Masalah; Jika Anda menemukan kesalahan saat mencoba mengaktifkan situs menggunakan:

sudo a2ensite example.com

tetapi kembali:

Kesalahan: example.com tidak ada

a2ensite hanyalah skrip Perl yang hanya bekerja dengan nama file yang berakhir .conf

Oleh karena itu, saya harus mengubah nama file pengaturan saya example.commenjadi example.com.confseperti yang mungkin dicapai sebagai berikut:

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

Keberhasilan

devo
sumber
25
Aneh! Ini digunakan untuk bekerja dengan baik tanpa ekstensi di Ubuntu 12.04 dan 12.10.
FloatingRock
Sama untuk ku. Seperti kata Guilherme, apache2.conf berubah antara versi ubuntu atau Apache.
Nicolas Zozol
7
Sebagai alternatif, saya yakin Anda bisa mengedit file apache.conf. Baris yang relevan adalah "IncludeOptional sites-enabled / *. Conf" Hapus .conf di bagian akhir dan Anda akan kembali ke apa yang berfungsi di 12.04. Saya pikir ini mungkin perubahan yang dilakukan Debian yang masuk ke Ubuntu, tapi saya tidak yakin.
Josiah
2
Mengapa ini menjawab ke-3? Ini adalah cara yang benar untuk melakukannya.
nish
Saya sudah menyerah setelah mengubah hampir semuanya ... Saya akan ingat untuk menambahkan ekstensi
.conf
91

Anda mungkin memperbarui instalasi Ubuntu Anda dan salah satu pembaruan termasuk pemutakhiran Apache ke versi 2.4.x

Di Apache 2.4.x file konfigurasi vhost, yang terletak di direktori / etc / apache2 / sites-available, harus memiliki ekstensi .conf.

Menggunakan terminal (perintah mv), ganti nama semua file konfigurasi yang ada dan tambahkan ekstensi .conf ke semuanya.

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

Jika Anda mendapatkan kesalahan "Izin ditolak", tambahkan "sudo" di depan perintah terminal Anda.

Anda tidak perlu membuat perubahan lain pada file konfigurasi.

Aktifkan vhost:

a2ensite cmsplus.dev.conf

Dan kemudian memuat kembali Apache:

service apache2 reload

Situs Anda harus sudah aktif dan berjalan sekarang.


PEMBARUAN: Seperti yang disebutkan di sini , distribusi Linux yang Anda instal mengubah konfigurasi menjadi Sertakan * .conf saja. Karena itu tidak ada hubungannya dengan Apache 2.2 atau 2.4

Consuela
sumber
28

Ada cara lain yang bagus, cukup edit file apache2.confada baris di akhir

Sertakan Situs opsional yang diaktifkan / *. Conf

hapus saja .confdi bagian akhir, seperti ini

Sertakan Situs opsional yang diaktifkan / *

dan restart server.

(Saya mencoba ini hanya di Ubuntu 13.10, ketika saya memperbaruinya.)

Guilherme
sumber
1
Hmm ... Saya mencoba ini di Ubuntu 14.04 dan tidak berhasil. Menambahkan .confke file konfigurasi memang.
Clifton Labrum
aneh, saya mengalami kesalahan ini ketika saya memperbarui ubuntu 12,04 ke 13,10 (karena saya tidak sengaja mengganti file konfigurasi apache). Dalam pembaruan 14,04 saya ingat untuk tidak mengganti, dan saya memang mengalami masalah.
Guilherme
Ini benar-benar bukan cara yang baik. File di bawah situs yang diaktifkan adalah symlink ke file yang sesuai di bawah situs yang tersedia dan hanya harus dihapus untuk menonaktifkan situs - yang sebenarnya apa yang dilakukan a2dissite a2ensite secara bersamaan memungkinkan situs.
Dokbua
8

Saya hanya punya masalah yang sama. Saya akan mengatakan itu tidak ada hubungannya dengan apache.conf.

a2ensite harus diubah - baris 532 adalah baris yang memberlakukan akhiran .conf:

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

Jika Anda mengubahnya ke:

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

... itu akan bekerja tanpa akhiran apa pun.

Tentu saja Anda tidak ingin mengubah skrip a2ensite, tetapi mengubah akhiran file conf adalah cara yang benar.

Mungkin hanya cara menegakkan ".conf" -suffix.

cslotty
sumber
Lihat pertanyaan ini juga: askubuntu.com/questions/362682/…
cslotty
7

Jadi .. cara tercepat adalah mengganti nama nama situs konfigurasi yang diakhiri dengan ".conf"

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

a2ensite mysite.conf

catatan lain pada komentar sebelumnya:

  • IncludeOptional tidak diperkenalkan sampai apache 2.36 - membuat perubahan di atas diikuti dengan restart pada 2.2 akan membuat server Anda down!

  • juga, versi 2.2 a2ensite tidak dapat diretas seperti yang dijelaskan

juga, karena file situs-tersedia Anda sebenarnya adalah file konfigurasi, itu harus dinamai demikian ..


Secara umum jangan memulai kembali layanan (webservers adalah satu jenis layanan):

  • orang tidak dapat menemukan mereka jika mereka tidak berlari! Pikirkan linux bukan MS Windows ..

Server dapat berjalan selama bertahun-tahun - pembaruan langsung, memuat ulang konfigurasi, dll.

Cloud tidak berarti Anda harus memulai ulang untuk memuat file konfigurasi.

  • Ketika mengubah konfigurasi layanan gunakan "muat ulang" bukan "restart".

  • restart menghentikan layanan kemudian memulai layanan - jika ada masalah dalam perubahan Anda ke konfigurasi, layanan tidak akan memulai kembali.

  • memuat ulang akan memberikan kesalahan tetapi layanan tidak pernah berhenti memberi Anda kesempatan untuk memperbaiki kesalahan konfigurasi yang hanya bisa menjadi sintaks yang buruk.

debian atau ubunto [nama layanan untuk utas ini adalah apache2]

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

os lain yang tersisa sebagai excersize untuk pembaca.

lil ol saya
sumber
5

Bekerja setelah saya tambahkan .confke file konfigurasi

16kb
sumber
2

Saya baru saja memutakhirkan versi Server Ubuntu dari 12,04 LTS menjadi 14,04 LTS.

Memang, seperti yang dikatakan di atas, ekstensi .conf ke Apache 2.4.x diperlukan untuk file situs web vhost yang berada di direktori situs-tersedia.

Sebelum membaca pertanyaan ini, saya tidak tahu apa yang terjadi dengan server.

Solusi yang cukup bagus.

Meringkas saya melakukan langkah-langkah berikut di Terminal:

1) Akses folder yang didukung situs

$ cd /etc/apache2/sites-enabled

2) Karena perintah a2dissite tidak akan berfungsi dengan file yang sudah tidak digunakan lagi (tanpa .conf) hapus file situs web lama yang telah diterbitkan

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

3) Ganti nama file situs web vhost dengan mengubah ekstensinya .conf hingga akhir

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

4) Publikasikan ulang file vhost yang baru dan benar

$ sudo a2ensite mywebsite.conf

5) Periksa situs web di browser dan bersenang-senang! :)

Alexandre Ribeiro
sumber
1

Dalam kasus saya dengan Ubuntu 14.04.3 dan Apache 2.4.7, masalahnya adalah bahwa saya menyalin site1.conf untuk membuat site2.conf tersedia, dan dengan menyalin, sesuatu terjadi dan saya tidak bisa a2ensite site2.conf dengan kesalahan yang dijelaskan dalam utas .

Solusinya bagi saya, adalah mengubah nama situs2.conf ke situs2 dan kemudian mengubah nama situs2 menjadi situs2.conf. Setelah itu saya bisa a2ensite site2.conf.

SysManSD
sumber
1

Saya menyadari bahwa itu tidak terjadi di sini tetapi mungkin membantu seseorang.

Periksa ulang Anda tidak membuat file conf di / etc / apache2 / sites-enabled by error. Anda mendapatkan kesalahan yang sama.

Dave
sumber
-2

Coba seperti ini ..

NameVirtualHost *:80
<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>

dan tambahkan entri di / etc / hosts

127.0.0.1 www.cmsplus.dev

mulai ulang apache ..

Balaji Perumal
sumber
Sekarang memberi saya It workshalaman default, bukan pengaturan.
devo
Apakah Anda memiliki beberapa konfigurasi host virtual? Bisakah Anda memposting seluruh konten file?
Balaji Perumal
3
Terima kasih, selesaikan masalah ini dengan hanya menambahkan .confekstensi ke file konfigurasi situs ini.
devo