248

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)

Giải quyết vấn đề này như thế nào?

|
525

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 mysite.com

nhưng nó trả về:

Lỗi: mysite.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 mysite.comđến mysite.com.confkhi có thể đạt được như sau:

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

Sự thành công

|
  • 1

    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.

    – Hồ Linh Phương 11:21:42 26/03/2014
  • 1

    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.

    – Vũ Bích Hằng 13:35:26 11/08/2014
  • 1

    Để 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.

    – Tạ Mạnh Đức 03:19:44 11/09/2014
  • 1

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

    – Ngô Duy An 06:41:58 29/09/2014
  • 1

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

    – Vũ Kim Duyên 17:53:32 02/03/2015
86

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

|
27

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

    – Hồ Linh Phương 19:32:44 16/06/2014
  • 1

    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.

    – Vũ Bích Hằng 19:08:52 19/06/2014
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.

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

|
4

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

|
1

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.

|
0

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.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.