server - 本地主机工作正常,但其他创建的虚拟主机不工作 - 显示 404 页面错误
问题描述
我的本地主机工作得很好,但我的虚拟主机不工作。我创建的虚拟主机给我一个“404 页面未找到”错误这是我的 testing.conf 文件的屏幕截图 当我在页面刷新后检查 apache2 错误日志给我一个“404 页面错误”我得到一个没有内容的文件,意思是没有错误。但是,当我重新启动 apache 时,我在 apache2 错误日志中得到了这个。
[2021 年 7 月 8 日星期四 18:08:47.037483] [mpm_prefork:notice] [pid 242161] AH00163:Apache/2.4.41 (Ubuntu) 已配置——恢复正常操作 [2021 年 7 月 8 日星期四 18:08:47.037571] [核心:注意] [pid 242161] AH00094:命令行:'/usr/sbin/apache2'
解决方案
这里有几点需要注意:
- “当我在页面刷新后检查 apache2 错误日志给我一个 404 页面错误时,我得到一个没有内容的文件,这意味着没有错误”
⇢ 这不一定准确。您的testing.conf
文件正在将错误日志写入/var/www/testing/error.log
,这不是 Apache 期望写入日志的位置。您可能需要通过 AppArmor 授予 Apache 更多权限或将日志写入正确的/var/log/apache
目录。 - “当我重新启动 apache 时,我在 apache2 错误日志中得到了这个”
⇢ 这是正常的。这是 Apache 说“服务器已重新启动”的方式。
需要注意的一些项目:
- 您的虚拟主机配置文件已指定端口 8081。Apache 是否配置为侦听此端口上的流量?
- 您的配置文件中没有
<Directory>
记录。/var/www/testing
主机可以访问吗?
如果您想让您的虚拟主机响应默认端口 80 上的流量,请考虑让您的配置文件如下:
<VirtualHost *:80>
ServerAdmin enels@socials.net
DocumentRoot /var/www/testing/public_html
ServerName testing
ServerAlias testing *.testing testing.*
DirectoryIndex index.php index.html
ErrorLog ${APACHE_LOG_DIR}/testing-error.log
CustomLog ${APACHE_LOG_DIR}/testing-access.log combined
<Directory /var/www/testing/public_html>
Options FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
</VirtualHost>
您可能不想要这ServerAlias
条线,但如果您决定使用子域或伪 TLD(例如 api.testing 或 testing.local),这将捕获请求并相应地引导它们。
推荐阅读
- python - 如何识别较长的用户输入单词/字符串?
- java - 带有 AWS Cognito 托管问题的 Spring Boot
- python - C# 中是否有等效的 numpy.tile() 函数?
- php - PHP-FPM 7.4 有时会因一些请求而挂起
- nestjs - 嵌套不加载依赖项
- apache-kafka - kafka-avro-console-producer 抛出 org.apache.avro.SchemaParseException:无法解析
图式 - r - 我想在 R 中编写一个正则表达式来删除包含数字的字符串的所有单词
- c - 如何处理标准输入中的额外换行符
- postgresql - 当任何表记录已插入或更新时触发更新记录操作
- visual-studio - 32 位 MASM 模式与 64 位有何不同?