编辑

编辑

按照 Apache 网站上的说明,我在 httpd.conf 文件末尾添加了以下内容:

RewriteEngine on

RewriteMap lowercase int:tolower

#define the map file
RewriteMap vhost txt:/web-data/vhost.map

# deal with aliases as above
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# this does the file-based remap
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/httpdocs/$1

RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script]

当我运行时service httpd start出现以下错误:

RewriteMap: file for map vhost not found:/web-data/vhost.map

我已三遍检查该文件是否存在、是否具有读取权限以及引用中的拼写是否正确。我可能遗漏了什么?

编辑

结果ls -lZ/web-data/

drwxrwsr-x. root www  unconfined_u:object_r:file_t:s0  logs
drwx------. root root system_u:object_r:file_t:s0      lost+found
-rw-r--r--. root www  unconfined_u:object_r:file_t:s0  vhost.map
drwxrwsr-x. root www  unconfined_u:object_r:file_t:s0  vhosts

答案1

ls -lZ /var/www/html比较和的输出ls -lZ /web-data。另外,检查您的系统日志,应该有一个相应的 SELinux 错误及其详细信息。

在此期间,请尝试以下操作:

  1. 更改上下文/web-data以匹配/var/www/html使用chcon命令的上下文,例如:

    chcon --reference=/var/www/html /web-data

  2. 灰心: 你也可以暂时地禁用 SELinux 并查看错误是否消失

相关内容