ทำไม Apache โฮสต์เสมือนบน Ubuntu 14.04 ไม่ทำงาน


23

ฉันติดตั้ง Apache 2.4 บน Ubuntu 14.04 และทำงานได้ดีตามhttp://localhost/ที่อยู่ แต่เมื่อฉันพยายามที่จะเพิ่มโฮสต์เสมือนใหม่เช่นhttp://bow.locและรีสตาร์ท Apache, ที่อยู่ใหม่ก็ไม่สามารถใช้ได้บนและให้บริการตามhttp://bow.lochttp://localhost

การกำหนดค่าของฉันคือ:

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

ฉันจะรับเว็บไซต์ของฉันได้http://bow.locอย่างไร


ที่เกี่ยวข้อง: askubuntu.com/a/362992/8698
ด่าน

ตรวจสอบคำตอบของฉันที่นี่ มีปัญหาที่คล้ายกันและกลายเป็นปัญหากับการกำหนดค่า DNS ของระบบ
jmarceli

คำตอบ:


29

ตั้งแต่ Apache 2.4 แต่ละไฟล์โฮสต์เสมือนควรมีนามสกุล .conf

คุณสามารถเปลี่ยนชื่อไฟล์โฮสต์เสมือนแต่ละไฟล์เพื่อรวมส่วนขยาย. conf:

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

ใช้คำสั่ง a2ensite เพื่อเพิ่มโฮสต์เสมือน:

a2ensite example.com.conf

และโหลด Apache อีกครั้ง:

service apache2 reload

ขอบคุณ! และหลังจากการกระทำนี้ฉันไม่ต้องการแก้ไข/etc/hostsไฟล์ด้วยตนเองและเพิ่มโฮสต์เข้าไปหรือไม่ อาปาเช่จะเขียนโฮสต์ใหม่โดยอัตโนมัติหรือไม่?
Victor Bocharsky

Apache ไม่ได้เขียนโฮสต์ใหม่โดยอัตโนมัติคุณควรเขียนด้วยตนเอง CMIIW
Ari Pratomo

ดังนั้นการตั้งค่าของฉันถูกต้องและมีปัญหาตามลำดับที่ฉันลืมที่จะเพิ่มโฮสต์ใน/etc/hosts
Victor Bocharsky

วิธีอื่นคือการแก้ไข apache2.conf และลบส่วนขยาย ".conf" ออกจากคำสั่ง "IncludeOptional sites-enabled / *" ฉันใช้โดเมนเว็บไซต์เป็นชื่อไฟล์ดังนั้นฉันไม่ชอบข้อกำหนดพิเศษ ".conf"
lepe

17

ฉันลืมเพิ่มโฮสต์ใน/etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

ฉันคิดว่า Apache ทำมันโดยอัตโนมัติ


ฉันไม่เคยทำแบบนั้นมาก่อนบนเซิร์ฟเวอร์ ฉันทำจากลูกค้าเพื่อการทดสอบตลอดเวลาแม้ว่า คุณช่วยอธิบายสิ่งที่คุณพูดที่นี่ได้ไหม?
flickerfly

@flickerfly คุณหมายถึงอะไร? ฉันทำApacheเวอร์
ช่วลโฮสต์

ฉันลืมที่จะเพิ่มสิ่งนี้ด้วย! : P
Rishi Kulshreshtha

ประณามฉันเสียหนึ่งของเรานี้ใน Debian 8 VM! ขอบคุณ !!!
lucaferrario

@lucaferrario haha ​​ฉันก็เหมือนกัน ข้อบกพร่องง่าย ๆ ยากที่จะเปิดเผย;) ยินดีต้อนรับ!
Victor Bocharsky

3

ฉันได้ลองใช้วิธีแก้ปัญหาเหล่านี้ทั้งหมดแล้ว แต่น่าเสียดายที่ไม่มีอะไรทำงาน! อนิจจาฉันแก้ไข

    /etc/hosts

เพื่อเข้า

    127.0.1.1 example.com test.com

และมันก็ใช้งานได้ !!

(ขออภัยถ้าฉันไม่ได้พูดมากในทางเทคนิค!)


1

ฉันเขียนสคริปต์ไพ ธ อนซึ่งจะทำให้ขั้นตอนการสร้างโฮสต์เสมือน apache เป็นแบบอัตโนมัติ ... วิดีโอนี้จะอธิบายวิธีดาวน์โหลด / โค้ดบนGitHub


-3
Options FollowSymLinks MultiViews

ต้องการถ่าน '+': + FollowSymLinks + หลายรายการ

Order allow,deny
Allow from all

ตอนนี้ = ต้องได้รับอนุญาตทั้งหมด


โปรดอธิบายว่าจะใส่สิ่งนี้ไว้ที่ไหนและทำอะไร อย่าเพียงโพสต์คำสั่งหรือสิ่งประดิษฐ์การกำหนดค่า ดูฉันจะเขียนคำตอบที่ดีได้อย่างไร
David Foerster

1
คุณจะต้องใส่เครื่องหมาย + หรือ - หน้าตัวเลือกต่างๆหากคุณใช้ - เพื่อยกเว้น ไม่งั้นพวกมันก็ดี ที่จำเป็นทั้งหมดที่ได้รับคือ Apache 2.4 Order, Allow lines เป็นไวยากรณ์ 2.2
flickerfly
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.