![Apache 重新启动失败,因为它无法找到存在的文件](https://linux22.com/image/111099/Apache%20%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%AE%83%E6%97%A0%E6%B3%95%E6%89%BE%E5%88%B0%E5%AD%98%E5%9C%A8%E7%9A%84%E6%96%87%E4%BB%B6.png)
我已使用以下代码片段配置了一个 Web 实例配置文件,以允许重定向通过另一个文件进行工作,而无需重新启动服务器。
RewriteMap redirects txt:/mnt/var/www/html/abc/content/abc/na/ac/config_en_us/redirects/redirects.txt
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond ${redirects:%1} >""
RewriteRule ^(.*)$ ${redirects:%1} [R=301,NC,L]
当尝试在放置代码片段后重新启动 httpd 时,我无法启动 apache。相同的代码可以在其他服务器上运行。文件也已创建,并且我已验证权限。
下面是错误语句
/etc/httpd/conf.d/abc.conf 第 69 行语法错误:RewriteMap:找不到地图重定向文件:/mnt/var/www/html/abc/content/abc/na/ac/config_en_us/redirects /重定向.txt
我终于能够启动服务器,但修复不正确。这就是我所做的。
我在路径 /etc/httpd/conf.d 中创建了具有相同名称的相同文件,然后将其移动到所需的路径,之后 apache 能够找到该文件并确实出现。谁能帮助我了解发生了什么事。
答案1
为了明确起见,这个答案来自福克斯的评论:
“文件本身需要 Apache 运行用户的读取权限,并且该文件路径上的每个目录都需要读取和执行权限”
例子。在 CentOS 上,我有文件/etc/http/conf/
,但路径没有像上面那样设置。我将其移至/var/www/
(之前已正确配置),然后它就可以工作了。