AP2*_*257 7 debian apache-http-server logging
我使用的 Debian 服务器已经成功运行了 Apache、mod_wsgi 和一堆虚拟主机。
我安装了我的论坛应用程序(Django 的 OSQA)并按照OSQA 说明创建了一个指定ServerName为新子域的 Apache 配置文件。我还为应用程序创建了一个 .wsgi 文件,并指向WSGIScriptAlias它。然后我重新启动了Apache。
但是,当我转到新的子域时,收到 404 错误消息。
我错过了上面的一步吗?或者只是创建一个新的 Apache 配置文件sites-available足以告诉 Apache 一个新的子域?
如果还有其他问题,我该如何调试?配置文件中指定的ErrorLog和CustomLog都为空。apache2.conf,我猜是 Apache 范围的配置,指定ErrorLog /var/log/apache2/error.log,但这是另一个空白文件。
有很多关于 Apache 的在线资源。您是否尝试过在 Google 上搜索自己找到答案?
几个月前我在谷歌搜索时,发现了以下信息:
ErrorLog /var/log/apache2/error.log
AccessLog /var/log/apache2/access.log
start/stop /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean)
Run Code Online (Sandbox Code Playgroud)
对于 Debian 上的所有情况,第一篇文章并不正确。这取决于您如何安装软件包,无论是通过 apt 还是从源代码编译。
要找出日志的位置,根据 Apache 的指示,它被指示生成日志,您需要运行以下命令:
/usr/sbin/apachectl -V
Run Code Online (Sandbox Code Playgroud)
某些 Linux 发行版创建了一个名为 /usr/sbin/apacheVERctl 的符号链接,其中 VER 为 2 或 1.3 或其他。Debian 将实际文件放在 /usr/sbin/ 中,所以尝试上面的命令,你会看到类似的内容:
/usr/sbin/apachectl -V
Server version: Apache/2.2.3
<removed for brevity>
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log" <<=== default log files stored in "logs/" which is relative to /usr/local/apache<VER>/logs on this server==>
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Run Code Online (Sandbox Code Playgroud)
如您所见,我的日志在 /usr/local/apache2/error_log 中。根据服务器的编译方式, --prefix 标志可能已指向其他地方。最好的办法是运行该命令并使用 find 查找 error_log。
find / -iname name_of_error_log_file_that_apachectl_spit_out
Run Code Online (Sandbox Code Playgroud)
您可能需要执行 find / -iname apachectl 或其各种排列才能找到二进制文件的位置。有时它被称为 /usr/sbin/httpd。只要确保你知道 find 命令,你就会搞清楚。
谷歌搜索不会总是给你正确的答案,所以阅读你的服务的文档至关重要。
此外,在查看文档后,如果您浏览了整个文档,则您已经为 /nimda 路径配置了日志记录,因此 nimda 的日志记录在此处:
<cut above config lines>
CustomLog /var/log/httpd/OSQA/access_log common
ErrorLog /var/log/httpd/OSQA/error_log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
对于 SSL,日志似乎会转到同一个地方:
(可选)运行管理界面 https ServerAdmin forum@example.com DocumentRoot /path/to/osqa-site ServerName example.com SSLEngine on SSLCertificateFile /path/to/ssl-certificate/server.crt SSLCertificateKeyFile /path/to/ssl- certificate/server.key WSGIScriptAlias / /path/to/osqa-site/osqa.wsgi CustomLog /var/log/httpd/OSQA/access_log common ErrorLog /var/log/httpd/OSQA/error_log DirectoryIndex index.html
请检查
/usr/local/apache<VER>/logs
Run Code Online (Sandbox Code Playgroud)
在服务器上甚至
/usr/local/httpd/*, /var/log/httpd or /var/log/apache<ver>.
Run Code Online (Sandbox Code Playgroud)
不同的 Linux 发行版存储日志的位置不同。
日志并不总是在 /var/log/apache/* 或 /var/log/httpd
有时它们在 /var/log/httpd/ 中,有时人们从源代码编译 Apache 并且 apache 变量 DEFAULT_ERRORLOG 设置不同,因此错误日志在一个地方而 access_log 在另一个地方。有时文件也有不同的名称。有时人们配置不同的虚拟主机以将日志存储在不同的地方,因为他们有一堆域,而且他们不希望机器上的所有其他客户都看到其他域的日志,因为这可能会暴露关键信息。第一个帖子不会在所有情况下都有效。
谷歌无法回答每一个问题,用这么多词告诉某人“谷歌”并不总是最好的答案。
一个人可能会使用 Redhat,当从 Redhat 分布式 RPM 安装时,它会将日志放在不同的位置。
| 归档时间: |
|
| 查看次数: |
57177 次 |
| 最近记录: |