9

我是 Apache 新手,当我将 apache 从 2.2.22 更新到 2.4.6 时,我发现我放置 mod_rewrite 设置的默认虚拟主机位置已经改变。

对于 apache2.2.22:它位于 /etc/apache2/sites_enabled/default。对于 apache 2.4.6,它发生了变化,帮助文档也说:“NameVirtualHost directiveAs”:不再需要,现在已弃用。

我注意到该设置似乎已从 apache.conf 中删除。这是我对 Apache 2.2.22 和 2.4.6 的配置详细信息。

谁能告诉我我的配置需要改变什么?

对于 apache2.2.22:/etc/apache2/sites_enabled/default

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride all
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </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

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128

<Location />
   AuthName "CIO Internal Demo"
   AuthType Basic
   AuthUserFile /etc/apache2/htpasswd.users
   Require valid-user
</Location>

<Location /liveclass_api/liveclass_callback.php>
    Satisfy Any
    Allow from all
</Location>

<Location /sp_service.php>
    Satisfy Any
    Allow from all
</Location>

                                                                                   1,1           Top

对于 apache2.4.6:/etc/apache2/sites_enabled/000-default.conf

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

vim: 语法=apache ts=4 sw=4 sts=4 sr noet

Apache 2.4.6 文件 apache.conf 的一部分

# Include list of ports to listen on
Include ports.conf
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<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 All
    Require all granted
</Directory>

#<Directory /srv/>
#       Options Indexes FollowSymLinks
#       AllowOverride None
#       Require all granted
#</Directory>
4

1 回答 1

0

您正在谈论的文件和目录看起来像是在 debian linux 上,因为原始 apache 目录/文件布局不同。有关从 Apache 2.2 迁移到 2.4 的一般指南,请参阅此处升级到 2.4。此外,您可能需要查看 debian 是否有一些有关更改的目录/文件结构等的信息。

于 2018-10-02T06:16:37.430 回答