Tại sao máy chủ ảo Apache trên Ubuntu 14.04 không hoạt động?


23

Tôi đã cài đặt Apache 2.4 trên Ubuntu 14.04 và nó hoạt động tốt theo http://localhost/địa chỉ. Nhưng khi tôi cố gắng thêm một máy chủ ảo mới, ví dụ http://bow.locvà khởi động lại apache, địa chỉ mới không có sẵn http://bow.locvà có sẵn trên http://localhost.

Cấu hình của tôi là:

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Làm thế nào tôi có thể có được trang web của tôi bằng cách http://bow.loc?



Kiểm tra câu trả lời của tôi ở đây . Có vấn đề tương tự và hóa ra đó là vấn đề với cấu hình DNS hệ thống.
jmarceli

Câu trả lời:


29

Kể từ Apache 2.4, mỗi tệp máy chủ ảo sẽ có phần mở rộng .conf.

Bạn có thể đổi tên từng tệp máy chủ ảo để bao gồm phần mở rộng .conf:

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

Sử dụng lệnh a2ensite để thêm máy chủ ảo:

a2ensite example.com.conf

Và tải lại Apache:

service apache2 reload

Cảm ơn! Và sau hành động này, tôi không cần phải sửa đổi thủ công /etc/hoststệp và thêm máy chủ vào nó? Liệu apache sẽ tự động viết các máy chủ mới?
Victor Bocharsky

Apache không tự động viết các máy chủ mới, bạn nên viết thủ công. CMIIW
Ari Pratomo

Vì vậy, cấu hình của tôi là đúng và vấn đề khiến tôi quên thêm máy chủ vào/etc/hosts
Victor Bocharsky

một cách khác là sửa đổi apache2.conf và xóa phần mở rộng ".conf" khỏi lệnh "Bao gồm các trang web được kích hoạt / *". Tôi sử dụng tên miền trang web làm tên tệp, vì vậy tôi không thích yêu cầu ".conf" thêm.
lepe

17

Tôi quên thêm máy chủ vào /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Tôi nghĩ apache làm điều đó tự động.


Tôi đã không phải làm điều đó bất cứ lúc nào trước khi trên máy chủ. Tôi làm điều đó từ khách hàng cho mục đích thử nghiệm mọi lúc. Bạn có thể làm rõ những gì bạn đang nói ở đây?
flickerfly

@flickerfly Ý bạn là gì? Tôi đã tạo các máy Apachechủ
ảo

Tôi quên thêm điều này là tốt! : P
Rishi Kulshreshtha

Chết tiệt, tôi đã lãng phí một thứ của chúng tôi cho cái này trên máy ảo Debian 8! Cảm ơn!!!
lucaferrario

@lucaferrario haha, tôi cũng vậy. Lỗi đơn giản khó tiết lộ;) Bạn được chào đón!
Victor Bocharsky

3

Chà, tôi đã thử tất cả các giải pháp được đưa ra..nhưng thật đáng buồn là không có gì hiệu quả! Than ôi tôi đã chỉnh sửa

    /etc/hosts

để nhập cảnh

    127.0.1.1 example.com test.com

va no đa hoạt động!!

(Xin lỗi nếu tôi không nói nhiều về mặt kỹ thuật!)


1

Tôi đã viết một tập lệnh python sẽ tự động hóa các bước tạo máy chủ ảo apache ... video này giải thích cách tải xuống / mã trên GitHub


-3
Options FollowSymLinks MultiViews

Cần char '+': + FollowSymLinks + Multiview

Order allow,deny
Allow from all

Bây giờ = Yêu cầu tất cả được cấp


Hãy giải thích, nơi để đặt cái này và những gì nó làm. Đừng chỉ đăng lệnh hoặc tạo tác cấu hình. Xem Làm thế nào để tôi viết một câu trả lời tốt?
David Foerster

1
Bạn chỉ cần đặt dấu + hoặc - trước các Tùy chọn khác nhau nếu bạn đang sử dụng một - để loại trừ một. Nếu không, họ là tốt để đi. Yêu cầu tất cả được cấp là cho Apache 2.4. Các dòng, Cho phép là một cú pháp 2.2.
flickerfly
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.