Trang web không tồn tại lỗi cho a2ensite


275

Tôi có cmsplus.devthuộc /etc/apache2/sites-availablevới đoạn mã sau,

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

Bây giờ khi tôi sử dụng sudo /usr/sbin/a2ensite cmsplus.dev, tôi nhận được lỗi,

ERROR: Site cmsplus.dev does not exist!

Máy chủ web của tôi Apache/2.4.6 (Ubuntu)

Làm thế nào để giải quyết vấn đề này?

Câu trả lời:


577

Giải quyết vấn đề bằng cách thêm .confphần mở rộng vào tập tin cấu hình trang web.

a2ensiteKết quả của Apache là :

Lỗi! Trang web không tồn tại

Vấn đề; Nếu bạn tìm thấy lỗi trong khi cố gắng kích hoạt một trang web bằng cách sử dụng:

sudo a2ensite example.com

nhưng nó trả về:

Lỗi: example.com không tồn tại

a2ensite chỉ đơn giản là một tập lệnh Perl chỉ hoạt động với tên tệp kết thúc .conf

Vì vậy, tôi phải đổi tên tập tin cài đặt của tôi cho example.comđến example.com.confkhi có thể đạt được như sau:

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

Sự thành công


25
Kỳ dị! Điều này được sử dụng để hoạt động tốt mà không cần một phần mở rộng trong Ubuntu 12.04 và 12.10.
FloatingRock

Tương tự cho tôi. Giống như Guilherme nói apache2.conf đã thay đổi giữa các phiên bản ubfox hoặc Apache.
Nicolas Zozol

7
Để thay thế, tôi tin rằng bạn chỉ có thể chỉnh sửa tệp apache.conf. Dòng có liên quan là "Bao gồm các trang web được kích hoạt / *. Conf" Xóa phần cuối .cs và bạn sẽ quay lại với những gì đã hoạt động trong 12.04. Tôi nghĩ rằng đây có thể là một thay đổi mà Debian đã đưa vào Ubuntu, nhưng tôi không chắc.
Giô

2
Tại sao câu trả lời này là thứ 3? Đây là cách làm chính xác.
Nish

Tôi đã bỏ cuộc sau khi thay đổi khá nhiều thứ ... Tôi sẽ nhớ thêm phần mở rộng .conf kể từ bây giờ ...
wtf8_decode

91

Bạn có thể đã cập nhật cài đặt Ubuntu của mình và một trong những bản cập nhật bao gồm nâng cấp Apache lên phiên bản 2.4.x

Trong Apache 2.4.x, các tệp cấu hình vhost, nằm trong thư mục / etc / apache2 / sites-Available, phải có phần mở rộng .conf.

Sử dụng terminal (lệnh mv), đổi tên tất cả các tệp cấu hình hiện có của bạn và thêm phần mở rộng .conf cho tất cả chúng.

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

Nếu bạn gặp lỗi "Quyền bị từ chối", hãy thêm "sudo" vào trước các lệnh đầu cuối của bạn.

Bạn không cần thực hiện bất kỳ thay đổi nào khác đối với các tệp cấu hình.

Kích hoạt vhost (s):

a2ensite cmsplus.dev.conf

Và sau đó tải lại Apache:

service apache2 reload

Trang web của bạn nên được chạy và chạy ngay bây giờ.


CẬP NHẬT: Như đã đề cập ở đây , một bản phân phối Linux mà bạn đã cài đặt đã thay đổi cấu hình thành Chỉ bao gồm * .conf. Do đó, nó không liên quan gì đến Apache 2.2 hoặc 2.4


28

Có một cách tốt khác, chỉ cần chỉnh sửa tệp có apache2.confmột dòng ở cuối

Bao gồm các trang web được kích hoạt / *. Conf

chỉ cần loại bỏ .confở cuối, như thế này

Bao gồm các trang web kích hoạt / *

và khởi động lại máy chủ.

(Tôi đã thử điều này chỉ trong Ubuntu 13.10, khi tôi cập nhật nó.)


1
Hmm ... Tôi đã thử điều này trên Ubuntu 14.04 và nó không hoạt động. Thêm .confvào các tập tin cấu hình đã làm, mặc dù.
Clifton Labrum

Thật lạ, tôi đã gặp lỗi này khi cập nhật ubfox 12.04 lên 13.10 (vì tôi vô tình thay thế các tập tin cấu hình apache). Trong bản cập nhật 14.04 tôi nhớ không thay thế, và tôi đã gặp rắc rối.
Guilherme

Đây thực sự không phải là một cách tốt. Các tệp trong trang web được kích hoạt là các liên kết tượng trưng đến các tệp tương ứng trong các trang web có sẵn và chỉ nên xóa để vô hiệu hóa trang web - thực tế đó là những gì a2dissite thực hiện a2ensite tương ứng cho phép trang web.
Dokbua

8

tôi chỉ có cùng một vấn đề. Tôi muốn nói rằng nó không có gì để làm với apache.conf.

a2ensite phải thay đổi - dòng 532 là dòng thực thi hậu tố .conf:

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

Nếu bạn thay đổi nó thành:

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

... nó sẽ hoạt động mà không có hậu tố.

Tất nhiên bạn sẽ không muốn thay đổi tập lệnh a2ensite, nhưng thay đổi hậu tố của tập tin conf là cách chính xác.

Đây có lẽ chỉ là một cách để thực thi ".conf" -suffix.


Cũng xem câu hỏi này: askubfox.com/questions/362682/NH
cslotty

7

Vì vậy, cách nhanh nhất là đổi tên các tên cấu hình trang web kết thúc bằng ".conf"

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

a2ensite mysite.conf

ghi chú khác về ý kiến ​​trước:

  • Bao gồm cả việc không được giới thiệu cho đến khi apache 2.36 - thực hiện thay đổi ở trên, sau đó khởi động lại vào ngày 2.2 sẽ khiến máy chủ của bạn ngừng hoạt động!

  • Ngoài ra, phiên bản 2.2 a2ensite không thể bị hack như mô tả

đồng thời, vì tệp có sẵn trên trang web của bạn thực sự là một tệp cấu hình, nên dù sao nó cũng phải được đặt tên theo cách đó ..


Nói chung, không khởi động lại dịch vụ (máy chủ web là một loại dịch vụ):

  • Mọi người không thể tìm thấy chúng nếu chúng không chạy! Hãy nghĩ linux không phải MS Windows ..

Máy chủ có thể chạy trong nhiều năm - cập nhật trực tiếp, tải lại cấu hình, v.v.

Đám mây không có nghĩa là bạn phải khởi động lại để tải tệp cấu hình.

  • Khi thay đổi cấu hình của dịch vụ, hãy sử dụng "tải lại" chứ không phải "khởi động lại".

  • khởi động lại dừng dịch vụ sau đó khởi động dịch vụ - nếu có bất kỳ vấn đề nào trong thay đổi cấu hình của bạn, dịch vụ sẽ không khởi động lại.

  • tải lại sẽ báo lỗi nhưng dịch vụ không bao giờ tắt cho bạn cơ hội sửa lỗi cấu hình chỉ có thể là cú pháp xấu.

debian hoặc ubunto [tên dịch vụ cho chủ đề này là apache2]

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

os khác để lại như một kích thích cho người đọc.


5

Làm việc sau khi tôi thêm vào .conftập tin cấu hình


2

Tôi vừa nâng cấp phiên bản Ubuntu Server từ 12.04 LTS lên 14.04 LTS.

Thật vậy, như đã nói ở trên, phần mở rộng .conf cho Apache 2.4.x là cần thiết cho các tệp vhost của trang web nằm trong thư mục có sẵn của các trang web.

Trước khi đọc câu hỏi này, tôi không biết chuyện gì đang xảy ra với máy chủ.

Giải pháp khá hay.

Chỉ cần tóm tắt tôi đã làm các bước sau trên Terminal:

1) Truy cập thư mục kích hoạt trang web

$ cd /etc/apache2/sites-enabled

2) Vì lệnh a2dissite sẽ không hoạt động với các tệp không dùng nữa (không có .conf) xóa các tệp trang web cũ đã được xuất bản

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

3) Đổi tên tập tin vhost của trang web thay đổi phần mở rộng của nó thêm .conf vào cuối

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

4) Tái xuất bản tệp vhost mới và chính xác

$ sudo a2ensite mywebsite.conf

5) Kiểm tra trang web trên trình duyệt và vui chơi! :)


1

Trong trường hợp của tôi với Ubuntu 14.04.3 và Apache 2.4.7, vấn đề là tôi đã sao chép site1.conf để cung cấp site2.conf và bằng cách sao chép, một cái gì đó xảy ra và tôi không thể a2ensite site2.conf bị lỗi được mô tả trong luồng .

Giải pháp cho tôi, là đổi tên site2.conf thành site2 và sau đó đổi tên site2 thành site2.conf. Sau đó tôi đã có thể vào trang web a2ensite2.conf.


1

Tôi nhận ra rằng đó không phải là trường hợp ở đây nhưng nó có thể giúp đỡ một ai đó.

Kiểm tra kỹ bạn không tạo tệp conf trong / etc / apache2 / trang web được kích hoạt do nhầm lẫn. Bạn nhận được cùng một lỗi.


-2

Hãy thử như thế này ..

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>

và thêm mục nhập trong / etc / hosts

127.0.0.1 www.cmsplus.dev

khởi động lại apache ..


Bây giờ nó cho tôi It workstrang mặc định thay vì cài đặt.
devo

Bạn có nhiều cấu hình máy chủ ảo? Bạn có thể gửi toàn bộ nội dung tập tin?
Balaji Perumal

3
Cảm ơn, đã giải quyết vấn đề này bằng cách chỉ cần thêm .confphần mở rộng cho các tệp cấu hình trang web này.
devo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.