多年来,我已经习惯于在“vi”中编辑 Perl CGI 脚本并同时打开浏览器来测试它们。最近,当我这样做时,我收到了“500”服务器错误,当我从 shell 运行脚本时,我得到“错误解释器:文本文件繁忙”。唯一的解决方案是每当我想测试脚本时退出“vi”,这是一种极大的痛苦,应该完全没有必要。那是怎么回事?我正在运行一个 Debian 服务器,我会定期更新它,我假设它是从一些所谓的“升级”开始的:)
我试图通过运行“cpan”并在提示符下键入“install DateTime”来安装 Perl DateTime 模块。经过大量处理和打印后,我收到了这条消息:
在 (eval 907) 第 3 行的 require 中编译失败。
# 看起来你的测试在输出任何东西之前就死了。
t/41cldr_format.........可疑
测试返回状态 255 (wstat 65280, 0xff00)
死了。失败的测试 1-101
101/101 测试失败,0.00% 正常
t/42duration_class ......好的
t/pod-coverage..........已跳过
全部跳过:测试 POD 覆盖率需要 Test::Pod::Coverage 1.08
t/pod…………跳过
全部跳过:Test::Pod 1.14 需要测试 POD
失败的测试统计 Wstat 总失败 失败 失败列表
-------------------------------------------------- -----------------------------
t/07compare.t 255 65280 26 18 69.23% 18-26
t/17set_return.t 255 65280 7 12 171.43% 2-7
t/19leap_second.t 255 65280 172 302 175.58% 22-172
t/23storable.t 255 65280 21 42 200.00% 1-21
t/24from_object.t 255 65280 10 8 80.00% … 我正在开展一个项目,为常见的 Web/Internet 任务创建一些极其精简的界面,以使我的视力受损的祖母可以访问计算机。目前她使用 Mac OS X Mail.app,但我有一个想法,我可以重新设计在我自己的服务器上运行的网络邮件界面,以便她更容易使用。
用作起点的理想 Web 邮件界面应该没有框架或 AJAX,并用 Python、Perl 或 PHP5+ 编写,但只要模板和样式表文件与应用程序本身分开,任何设置都可以工作。
该前端还必须连接到远程 IMAP 服务器,因为她的电子邮件帐户在她的 ISP 处而不在我的服务器上。
任何人都可以推荐一个简单的,严肃的网络邮件界面,适用于此吗?
我正在尝试使用 perl 编写一个 FTP 客户端,以使用被动模式从 IIS 7.5 FTP 服务器传输文件。
我已经按照说明配置了 FTP 服务器,并且还配置了 Windows 防火墙以允许这种类型的流量。我已经通过检查确保日志中没有被阻止的数据包来验证防火墙的行为是否正确。我已经验证了 FTP 控制通道正在端口 21 上打开。
我相信 IIS 会告诉客户端在被动模式下连接哪个端口,而 IIS 拒绝允许此连接。
perl 日志如下所示:
C:\cygwin\Perl\lib\FMT>perl FTPTest.pl
Net::FTP>>> Net::FTP(2.77)
Net::FTP>>> Exporter(5.64_01)
Net::FTP>>> Net::Cmd(2.29)
Net::FTP>>> IO::Socket::INET(1.31)
Net::FTP>>> IO::Socket(1.31)
Net::FTP>>> IO::Handle(1.28)
Net::FTP=GLOB(0x20abac0)<<< 220 Microsoft FTP Service
Net::FTP=GLOB(0x20abac0)>>> USER ftpuser
Net::FTP=GLOB(0x20abac0)<<< 331 Password required for ftpuser.
Net::FTP=GLOB(0x20abac0)>>> PASS ....
Net::FTP=GLOB(0x20abac0)<<< 230 User logged in.
Net::FTP=GLOB(0x20abac0)>>> CWD /Logs
Net::FTP=GLOB(0x20abac0)<<< 250 CWD command successful.
Net::FTP=GLOB(0x20abac0)>>> PASV
Net::FTP=GLOB(0x20abac0)<<< 227 Entering Passive Mode (xx,xxx,xxx,xxx,160,41).
Net::FTP=GLOB(0x20abac0)>>> RETR filename.txt …Run Code Online (Sandbox Code Playgroud) 操作系统 Ubuntu Ubuntu 16.04.2 LTS Apache/2.4.18 Perl v5.22.1
所以我有读取mysql数据库的perl代码,然后创建一个动态网页。该代码多年来一直运行良好。一周前,我的客户打电话说他们收到了 500 条内部服务器消息。我看了一下,一切似乎都很好,但是当我尝试加载页面时,出现 500 错误。在apache错误日志中,有这个错误:
[Tue May 30 22:16:13.144199 2017] [http:error] [pid 12487] [client 99.99.99.99:55628] AH02429: Response header name '<!-- warning' contains invalid characters, aborting request
有没有人看到这个,或者知道是什么导致了它?
当您通过基本身份验证页面登录时,您身份验证的用户名是否存储在任何地方(在服务器或客户端计算机上),可能在环境变量中?
背景:我有一个用于电子邮件服务器的通用 Web 管理页面,我想知道谁在做什么。当用户通过基本身份验证成功登录时,我希望能够识别他们并记录他们的操作。所以每次提交请求时,我都可以写入日志文件。基本格式是:
$username ran a $function against $useraccount
Run Code Online (Sandbox Code Playgroud)
因此,如果用户更改了某人的权限,例如:
Admin-Bob ran a permission change against User-Scott
Run Code Online (Sandbox Code Playgroud)
因此,如果发生错误,我可以轻松地在日志文件中追溯导致原因的操作。我尝试检查%ENV哈希无济于事,有什么想法吗?
我真的不想进入类似 PHP 的会话,因为这意味着取消我的基本身份验证,这已经给了我很好的控制程度。如果我必须用会话编码一些东西,我需要实现一个系统来在最大尝试后阻止用户等等,我真的不想编码。我认为这更适合于 serverfault,因为它更适合 Apache 而不是编程语言。会议可以用多种语言完成。
我正在尝试使用 CPAN 安装 XML::Parser perl 模块,但无法使其工作。以下是 CPAN 显示的输出,似乎表明问题在于 Expat。
\n\n安装这个对我们来说至关重要,我不知道下一步该做什么。任何帮助将不胜感激!
\n\ncpan[1]> install XML::Parser\nCPAN: Storable loaded ok (v2.21)\nGoing to read \'/root/.cpan/Metadata\'\n Database was generated on Fri, 15 Apr 2011 16:29:49 GMT\nRunning install for module \'XML::Parser\'\nRunning make for C/CH/CHORNY/XML-Parser-2.40.tar.gz\nCPAN: Digest::SHA loaded ok (v5.48)\nCPAN: Compress::Zlib loaded ok (v2.03)\nChecksum for /root/.cpan/sources/authors/id/C/CH/CHORNY/XML-Parser-2.40.tar.gz ok\nScanning cache /root/.cpan/build for sizes\n............................................................................DONE\nCPAN: Archive::Tar loaded ok (v1.68)\nXML-Parser-2.40\nXML-Parser-2.40/Changes\nXML-Parser-2.40/Makefile.PL\nXML-Parser-2.40/MANIFEST\nXML-Parser-2.40/META.yml\nXML-Parser-2.40/Parser.pm\nXML-Parser-2.40/README\nXML-Parser-2.40/Expat\nXML-Parser-2.40/Expat/encoding.h\nXML-Parser-2.40/Expat/Expat.pm\nXML-Parser-2.40/Expat/Expat.xs\nXML-Parser-2.40/Expat/Makefile.PL\nXML-Parser-2.40/Expat/typemap\nXML-Parser-2.40/inc\nXML-Parser-2.40/inc/Devel\nXML-Parser-2.40/inc/Devel/CheckLib.pm\nXML-Parser-2.40/Parser\nXML-Parser-2.40/Parser/LWPExternEnt.pl\nXML-Parser-2.40/Parser/Encodings\nXML-Parser-2.40/Parser/Encodings/big5.enc\nXML-Parser-2.40/Parser/Encodings/euc-kr.enc\nXML-Parser-2.40/Parser/Encodings/ibm866.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-2.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-3.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-4.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-5.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-7.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-8.enc\nXML-Parser-2.40/Parser/Encodings/iso-8859-9.enc\nXML-Parser-2.40/Parser/Encodings/Japanese_Encodings.msg\nXML-Parser-2.40/Parser/Encodings/koi8-r.enc\nXML-Parser-2.40/Parser/Encodings/README\nXML-Parser-2.40/Parser/Encodings/windows-1250.enc\nXML-Parser-2.40/Parser/Encodings/windows-1251.enc\nXML-Parser-2.40/Parser/Encodings/windows-1252.enc\nXML-Parser-2.40/Parser/Encodings/windows-1255.enc\nXML-Parser-2.40/Parser/Encodings/x-euc-jp-jisx0221.enc\nXML-Parser-2.40/Parser/Encodings/x-euc-jp-unicode.enc\nXML-Parser-2.40/Parser/Encodings/x-sjis-cp932.enc\nXML-Parser-2.40/Parser/Encodings/x-sjis-jdk117.enc\nXML-Parser-2.40/Parser/Encodings/x-sjis-jisx0221.enc\nXML-Parser-2.40/Parser/Encodings/x-sjis-unicode.enc\nXML-Parser-2.40/Parser/Style\nXML-Parser-2.40/Parser/Style/Debug.pm\nXML-Parser-2.40/Parser/Style/Objects.pm\nXML-Parser-2.40/Parser/Style/Stream.pm\nXML-Parser-2.40/Parser/Style/Subs.pm\nXML-Parser-2.40/Parser/Style/Tree.pm\nXML-Parser-2.40/samples\nXML-Parser-2.40/samples/canonical\nXML-Parser-2.40/samples/canontst.xml\nXML-Parser-2.40/samples/ctest.dtd\nXML-Parser-2.40/samples/REC-xml-19980210.xml\nXML-Parser-2.40/samples/xmlcomments\nXML-Parser-2.40/samples/xmlfilter\nXML-Parser-2.40/samples/xmlstats\nXML-Parser-2.40/t\nXML-Parser-2.40/t/astress.t\nXML-Parser-2.40/t/cdata.t\nXML-Parser-2.40/t/decl.t\nXML-Parser-2.40/t/defaulted.t\nXML-Parser-2.40/t/encoding.t\nXML-Parser-2.40/t/ext.ent\nXML-Parser-2.40/t/ext2.ent\nXML-Parser-2.40/t/external_ent.t\nXML-Parser-2.40/t/file.t\nXML-Parser-2.40/t/finish.t\nXML-Parser-2.40/t/foo.dtd\nXML-Parser-2.40/t/namespaces.t\nXML-Parser-2.40/t/parament.t\nXML-Parser-2.40/t/partial.t\nXML-Parser-2.40/t/skip.t\nXML-Parser-2.40/t/stream.t\n/bin/tar: Read 3072 bytes from -\nXML-Parser-2.40/t/styles.t\nCPAN: File::Temp loaded ok (v0.22)\nCPAN: Parse::CPAN::Meta loaded ok (v1.40)\n\n CPAN.pm: Going to build C/CH/CHORNY/XML-Parser-2.40.tar.gz\n\n\nExpat must be installed prior …Run Code Online (Sandbox Code Playgroud) 这类似于这个问题,没有得到回应: How to debug CGI over fcgiwrap/nginx
如何让 perl 错误自动放入 nginx 错误日志中?现在,当出现任何 perl 错误时,错误日志中会出现以下消息:
2014/05/11 22:43:48 [error] 1730#0: *5 connect() failed (111: Connection refused) while connecting to upstream, client: localhost, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
Run Code Online (Sandbox Code Playgroud)
这对于调试来说完全没用。我可以使用 CGI::Carp qw{fatalsToBrowser} 之类的东西,但这不是最佳选择。最好将其记录到服务器端文件中。
我的 CGI Perl 脚本 CentOS 7 运行不正确,它们要么显示为纯文本,要么出现服务器错误。
我一直把我的脚本放在默认/var/www/cgi-bin目录中,但没有运气。
我试图将 CGI 脚本放入其中,/var/www/html/another-dir但它们只是作为纯文本出现。
问题
有没有办法让 spamassassin 绕过我的 linux 系统的 dns 服务器来查询 DNSBL?
背景信息
当我的服务器收到电子邮件时,它会被 spamassassin 检查。其中一项检查在 DNS 黑名单中查找相关邮件服务器。不幸的是,我的提供商的 DNS 不允许再查询这些 BL。这由 spamassassin 的标题信息URIBL_BLOCKED在我收到的所有电子邮件中显示。我也手动测试了这个:
root@net:# dig 2.0.0.127.multi.uribl.com txt +short
"127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: 123.123.123.123]"
Run Code Online (Sandbox Code Playgroud)
(123.123.123.123在我的/etc/resolv.confdns 中配置。)
当我直接 手动查询他们的名称服务器之一(请参阅@cc.uribl.com。)而不使用我的提供者的递归时,我得到了一个答案:
root@net:# dig 2.0.0.127.multi.uribl.com txt @cc.uribl.com. +short
permanent testpoint
Run Code Online (Sandbox Code Playgroud)
(请注意,这是应该给出此结果的 BL 的测试查询)
总结
那么,除了在这个系统上安装 dns 递归器之外,有什么方法可以让 spamassassin 不使用系统默认 dns 进行 dnsbl 查询?
UPDATE
好吧,其实安装本地dns-recursor是没有问题的。它轻巧且易于设置,现在我不再遇到 BL 的问题。
perl ×10
cgi ×3
cpan ×2
linux ×2
500 ×1
apache-2.2 ×1
apache-2.4 ×1
blacklist ×1
centos7 ×1
debian ×1
email ×1
ftp ×1
httpd ×1
iis-7.5 ×1
nginx ×1
php ×1
python ×1
rbl ×1
spamassassin ×1
spawn-fcgi ×1
time ×1
ubuntu-16.04 ×1
vi ×1
webmail ×1