标题几乎说明了一切。我一直在努力让这个工作一整天。我正在创建一个基于 PHP 的登录系统,我需要进行一些调试。现在对我来说最有用的是能够在整个 PHP 程序的某些点将调试消息写入文件。根据文档,看起来这就是 error_log() 应该做的,但尽管我已经尝试了一切,但我完全没有成功。我在下面尝试过的所有内容的完整列表:
将以下内容添加到 /etc/php/7.0/apache2/php.ini
error_reporting = E_ALL
display_errors = On
log_errors = On
此外,尝试将 error_log 设置到 /usr/、/var/www/http/ 和 中的位置>/home/
使用 ini_set() 和 error_reporting() 设置所有这些变量,包括 PHP 文件中的 error_log
手动创建应该写入的文件,并将其拥有的用户和组设置为 www-data 并将其权限设置为 777
最后但同样重要的是,重新安装 libapache2-mod-php7.0 和 php7.0,无济于事
基本上,除了在跳楼前用我的笔记本电脑打破我办公楼三楼的 window 之外的一切
我真的找不到其他东西可以在 Google 上尝试,所以我想我应该问问专家,现在我来了。如果有人可以提供任何建议,我们将不胜感激。
最佳答案
我猜日志会写入系统日志,因为在 error_log() 中您没有提供目的地。
试试下面的代码
error_log("An error occured", 3, "/var/tmp/my-errors.log");
确保这个文件可以被 php 读取,fpm 或 www-data 取决于你的配置,你可以在使用 touch 之前创建它,并使用 chmod 手动添加权限
3表示destination是一个文件
如果您使用 apache 然后检查 httpd.conf 或任何其他地方(v 可能存在错误日志的位置
ErrorLog "/var/log/apache2"
然后使用ls -la ll 等检查此文件是否有以下用户组
-rwxrwxr-x 1 www-data www-data
应该会出现这样的内容。
另一个选项是在适当的 php.ini 中设置以下内容(CLI 和 apache 有不同的 php.ini 文件)
error_log = /var/log/phperrors.log
然后
touch /var/log/phperrors.log
chown www-data: /var/log/phperrors.log
chmod +rw /var/log/phperrors.log
没有奇迹,但如果它仍然不起作用,您可以使用 set_error_handler() 编写并注册您自己的错误处理程序,您可以在 php manual 中找到如何执行此操作的示例。 .它更像是 hack,但肯定会起作用。如果它不会那么这意味着根本没有触发错误然后你应该看看你是否编辑了正确的 php.ini 或在错误被触发之前使用 ini_set() 。
关于PHP - error_log() 不会打印到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141486/
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我正在使用这个:4.times{|i|assert_not_equal("content#{i+2}".constantize,object.first_content)}我之前声明过局部变量content1content2content3content4content5我得到的错误NameError:wrongconstantnamecontent2这个错误是什么意思?我很确定我想要content2=\ 最佳答案 你必须用一个大字母来调用ruby常量:Content2而不是content2。Aconstantnamestart
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案
好的,所以我的目标是轻松地将一些数据保存到磁盘以备后用。您如何简单地写入然后读取一个对象?所以如果我有一个简单的类classCattr_accessor:a,:bdefinitialize(a,b)@a,@b=a,bendend所以如果我从中非常快地制作一个objobj=C.new("foo","bar")#justgaveitsomerandomvalues然后我可以把它变成一个kindaidstring=obj.to_s#whichreturns""我终于可以将此字符串打印到文件或其他内容中。我的问题是,我该如何再次将这个id变回一个对象?我知道我可以自己挑选信息并制作一个接受该信