หมายเหตุ:สิ่งนี้เกี่ยวข้องกับคำถามของฉัน: " Apache 2.4 จะไม่โหลดใหม่มีปัญหากับการกำหนดค่าของฉันหรือไม่ "
ฉันกำลังพยายามทดสอบไซต์ท้องถิ่น ตามที่ผมเข้าใจ Apache 2 (และอาจจะ Apache เช่นกัน) VirtualHost
มีสิ่งที่เรียกว่า ความเข้าใจเล็กน้อยของฉันบอกฉันว่า virtualhosting เป็นวิธีที่หนึ่งเซิร์ฟเวอร์ / ที่อยู่ IP สามารถให้บริการหลายโดเมน
อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้ Apache 2 configtest
เพื่อดูว่าฉันล้มเหลว ฉันใช้ Apache 2.4.10-1 และดูเหมือนว่ามีการเปลี่ยนแปลงมากมายที่เกิดขึ้นระหว่าง Apache 2.2 และ Apache 2.4 ซึ่งฉันไม่ทราบ
$ sudo apache2ctl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
นี่คือ/etc/hosts
ไฟล์:
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian mini
ฉันยังเห็น/etc/hosts.conf
ไฟล์ว่าง บางทีข้อมูล/etc/hosts
ที่ต้องคัดลอกไป/etc/hosts.conf
ยังเซิร์ฟเวอร์เพื่อรับรู้?
ชื่อโฮสต์ของฉัน:
$ hostname
debian
นี่คือไฟล์กำหนดค่าของเว็บไซต์:
$ cat /etc/apache2/sites-available/minidebconfindia.conf
<VirtualHost mini:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/in2014.mini/website
<Directory />
Options +FollowSymLinks +Includes
Require all granted
</Directory>
<Directory /var/www/html/in2014.mini/website/>
Options +Indexes +FollowSymLinks +MultiViews +Includes
Require all granted
</Directory>
</VirtualHost>
ฉันยังอ่านเกี่ยวกับการผูกกับที่อยู่และพอร์ตแต่ฉันไม่เข้าใจว่าด้วยเหตุผลหลายประการ มันไม่ได้ให้ / แบ่งปันตัวอย่างว่าไฟล์เหล่านั้นจะต้องใส่อะไรและอะไรจะเกิดขึ้นก่อนและหลัง ตัวอย่างจะดีขึ้นมาก
ฉันทำอย่างนั้นและรีสตาร์ทเซิร์ฟเวอร์ แต่ฉันยังคงได้รับข้อผิดพลาดเดียวกัน
~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
ดูเหมือนว่ามีสามไฟล์การกำหนดค่าในเดเบียนที่ฉันจำเป็นต้องรู้และเข้าใจ
/etc/apache2$ ls *.conf
apache2.conf ports.conf
และ
/etc/apache2/conf.d$ ls *.conf
httpd.conf
เห็นได้ชัดว่า apache2.conf เป็นไฟล์กำหนดค่าส่วนกลางในขณะที่ httpd.conf เป็นไฟล์กำหนดค่าผู้ใช้ นอกจากนี้ยังมีพอร์ต ทั้งสอง apache2.conf และ ports.conf อยู่ที่ค่าเริ่มต้นยกเว้นฉันมีการเปลี่ยนแปลง LogLevel ของ Apache จากไปwarn
debug
ฉันลองอีกสิ่งหนึ่ง:
$ sudo apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.1.1:80 debian (/etc/apache2/sites-enabled/minidebconfindia.conf:1)
*:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
บางทีบางคนอาจมีข้อมูลเชิงลึกมากกว่านี้
/etc/apache2/conf-available/fqdn.conf
หรือservername.conf
หรือhttpd.conf
จะไม่มีประโยชน์ เดเบียนJessie
, และapache 2.4.10