文档表明 apache 的 DocumentRoot 是 /var/www,但我的测试显示它是 /var/www/html。它是哪一个?

文档表明 apache 的 DocumentRoot 是 /var/www,但我的测试显示它是 /var/www/html。它是哪一个?

文档表明 apache 的 DocumentRoot 是,/var/www 但我的测试表明它是/var/www/html 哪一个?

https://cwiki.apache.org/confluence/display/HTTPD/DistrosDefaultLayout#DistrosDefaultLayout-Debian,Ubuntu(Apachehttpd2.x)

DocumentRoot            ::      /var/www

但我的测试表明它是 /var/www/html

例如

我以 root 身份登录,因此没有 sudo。我运行apt-get purge apache2then apt-get install apache2then apt-get autoremove

清除和安装可确保我拥有最新的 .conf 文件。如果在任何地方明确设置了 DocumentRoot,那么它将位于 .conf 文件中。

我已经编写了一个 index.html,它指示它是从哪个目录读取的

root@ubuntu:/# cat /var/www/index.html
in var/www

root@ubuntu:/# cat /var/www/html/index.html
in /var/www/html

root@ubuntu:/#

我从我的网络浏览器访问我的服务器或者运行 curl 它显示

root@ubuntu/# curl 127.0.0.1
in /var/www/html

因此,虽然文档说 DocumentRoot 的默认值是 /var/www,但这不是 /var/www。

所以我看了一下,也许它在某个地方被明确设置,所以我会删除它被明确设置的任何地方。

它提到了这两个文件。

root@ubuntu:/etc/apache2# grep -r 'DocumentRoot' .
./sites-available/000-default.conf:     DocumentRoot /var/www/html
./sites-available/default-ssl.conf:             DocumentRoot /var/www/html

我知道 apache2.conf 会加载这些文件,因为 apache2.conf 中有一些“include..”行,比如IncludeOptional sites-enabled/*.conf

因此我注释掉了这两个配置文件中的每一行。

grep 确认这两行已被注释掉。

root@ubuntu:/etc/apache2# grep -r 'DocumentRoot' .
./sites-available/000-default.conf:#    DocumentRoot /var/www/html
./sites-available/default-ssl.conf:#            DocumentRoot /var/www/html

我认为它在编辑文件时会自动重新启动 apache2,但以防万一,

root@ubuntu# systemctl restart apache2
root@ubuntu#

没有错误。

root@ubuntu# curl 127.0.0.1
in /var/www/html

(或者类似地使用网络浏览器进行 httping 并在 chrome 中执行 shift-f5 以确保它不会从缓存中加载/以便检查服务器)。它说/var/www/html

我想知道是否有一个编译选项提到它,因为我知道 apache2 -V 可以显示例如 .conf 文件的名称..但它没有提到任何 DocumentRoot。

root@ubuntu:/etc/apache2# apache2 -V
[Fri Jan 01 01:09:05.977646 2021] [core:warn] [pid 74438:tid 139927292398656] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 16 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-08-12T19:46:17
Server's Module Magic Number: 20120211:88
Server loaded:  APR 1.6.5, APR-UTIL 1.6.1
Compiled using: APR 1.6.5, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

作为另一项测试,我尝试了一个更简约的 apache2.conf 版本

#ServerRoot "/usr/httpd"
ServerRoot "/etc/apache2"

# LoadModule..........


IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf



DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn


# Port to Listen on
Listen *:80

# In a basic setup httpd can only serve files from its document root
#DocumentRoot "/usr/httpd/htdocs"
#DocumentRoot "/usr/apache2/"

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>


<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

重新启动服务器以防万一有必要。

curl 127.0.0.1 仍然显示/var/www/html

相关内容