WordPress 对 PHP 错误日志中的所有时间戳使用 UTC / GMT。我想在本地服务器时区中使用时间戳。在 WP 设置中更改时区无济于事;这会影响时间显示,但不会影响错误日志中的时间戳。
(我知道 wp_settings.php 文件中有一行设置了这一点,我理解更改设置会弄乱 WP 代码的部分硬编码以使用 UTC。)
我已经研究过覆盖 PHP error_log 函数来解析时间并替换它,但是我发现这两种方法需要额外安装一些东西(APD 或 Runkit)。据我了解,这些仅适用于 DEV 环境,所以我不想弄乱它们。
关于如何让 WP 将本地时区标记写入错误日志的任何建议?
我收到500内部服务器错误,并在其写入的日志文件中:
[Thu Jun 14 16:30:22 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
Run Code Online (Sandbox Code Playgroud)
这是我的httpd.conf:
ServerName localhost
<VirtualHost *:80>
ServerAdmin ttt@mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite/
LogLevel warn
WSGIDaemonProcess processes=2 maximum-requests=500 threads=1
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
Alias /media /var/www/mysite/mysite/static/media/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
wsgi.py:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud) 我们将进行部署设置,我们将拥有许多服务器,其中大部分服务器在流量上升时自动添加到负载均衡器.这种设置的问题在于,如果一个开发人员需要拖尾日志来解决问题,他将不得不在每台服务器上打开一个控制台,由于开发人员通常不知道我们可能会使用多少台服务器,因此这很复杂当时有功能.
如果开发人员可以在一台服务器中找到所有日志 - 比如我们的部署服务器,则故障排除变得更加容易.
为此,我考虑使用cron设置从每台FE计算机到部署服务器的推送,该计划将复制我们的部署服务器上的日志.这种方法存在两个问题:
为了解决这个问题,我正在研究一种连接error_log或PEAR Log以将日志直接发送到我们的部署服务器的方法,该服务器会将其实时记录到/ var/log /中的本地位置.
谁知道我怎么配置这个?或者也许是一项服务来实现这一目标?
我们的服务器都是Ubuntu 10.04 LTS,我们在AWS的EC2实例上运行这些服务器.我们的PHP版本是5.3.
当error_log()从PHPUnit的内部运行不写正常的错误日志文件。我想停止它,以便它写入文件,就像我通过浏览器点击 PHP 一样。
<?php
class exampleTest extends PHPUnit_Framework_TestCase {
public function testSomething() {
error_log('This will not be written to the error log, but I wish it was!');
$this->assertEquals(2, 1+1);
}
}
Run Code Online (Sandbox Code Playgroud)
我目前使用 php 5.5 版,phpunit 3.7 版。这在 osx 和 ubunutu 上都会发生。这在 Windows 7 上不会发生。
PHP错误日志通常如下所示:
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blah, ... , referer: https://192.168.0.21/blah/blah
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blee, ... , referer: https://192.168.0.21/blah/blee
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它们看起来像这样?
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blah, ...
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blee, ...
Run Code Online (Sandbox Code Playgroud)
我尝试了$_SERVER['HTTP_REFERER']='';但是(毫不奇怪)没有帮助.
我想记录除通知和严格之外的所有 php 错误我尝试了以下代码
error_reporting(E_ALL &^ E_NOTICE &^ E_STRICT);
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误“意外^”
php 函数 error_log() 允许您将日志发送到电子邮件,将第二个参数设置为 1。我这样做了,但我想在 html 中显示消息。代码如下所示:
error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);
Run Code Online (Sandbox Code Playgroud)
可能我在声明内容类型时搞砸了,因为我以纯文本形式收到 msg:
<h1>Website Error</h1>
<b>ERRNO:</b><font color='red'>1</font>
...
Run Code Online (Sandbox Code Playgroud) 我看过很多类似的问题,但我似乎找不到答案。我想为我的 MySQL 数据库设置slow query log。我看到很多答案说我应该访问 MySQL 命令行工具。我不确定如何找到这个工具,但我尝试通过以下方式访问它:
c:/xampp/mysql/bin/mysql -u root -p -h localhost
但在这里我得到了 MariaDB,它似乎与我之前见过的任何其他答案/教程不同。输入:
设置 log_slow_queries = ON;
给我错误
错误 1193 (HY000):未知的系统变量“log_slow_queries”
我刚刚更新了运行 Apache 2.2.15 的 CentOS 6.9 虚拟机。突然间,Apache 太“挑剔”了,无法响应浏览器。任何浏览器。错误日志如下:
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23):
Run Code Online (Sandbox Code Playgroud)
等等。
除了更新系统之外,我没有做任何更改,因为地球上的每个安全大师都告诉我们要确保我们始终拥有最新的安全补丁。一些研究表明,该消息意味着客户端没有发送“主机”标头。好吧,如果这是原因,那么它已经有一段时间没有引起注意了。
为了确认问题实际上是在更新中引起的,我回滚了它。所以现在它像以前一样工作,即正确。或者,如果不是 100%“正确”,它至少可以工作。
仅供参考,如果有人为类似的问题阅读此内容,您可以回滚您的更新(假设您使用“yum update”来更新您的系统):
# yum history
Run Code Online (Sandbox Code Playgroud)
历史记录以相反的顺序列出,最近的排在最前面,最左边的列中有一个ID号。回滚如下:
# yum undo ID
Run Code Online (Sandbox Code Playgroud)
我的工作版本(回滚更新后)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Mar 22 2017 06:52:55
Run Code Online (Sandbox Code Playgroud)
我的不工作版本(更新时)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Aug 15 2017 19:44:58
Run Code Online (Sandbox Code Playgroud)
是的,所以在 3 月和 8 月之间,显然“主机名”标题成为强制性的。
好吧,也许“更新”碰巧“修复”了某些东西,但是说“修复”碰巧破坏了其他一切。或者至少,它使一个相当好的系统完全无法运行。
所以我对 StackOverflow 的好人的问题有两个方面。
首先,我做错了什么?我该如何解决它以正确执行?我确实想要最新的修复程序,但如果它破坏了其他所有内容,则不会。
其次,我能否请一些安全专家承认,也许每次补丁可用时都更新您的系统并不总是一个好主意?
我已经安装了ftp.simple,观看了YouTube视频,并在ftp-simple-temp-json中为远程服务器创建了SFTP配置,然后运行以下命令:直接从FTP服务器等打开文件。什么都没发生-视频中没有发送任何消息。关于出什么问题有什么想法吗?有没有我可以查看的日志文件?谢谢,苏