Articles of perl

在Perl脚本中的命令不工作

当我把这个命令放在perl脚本中时,它将不起作用: `chkconfig –level 3 nslcd on`; 但是,如果我在一个linux命令行上执行它,它就可以工作。 [root@barf Scripts]# chkconfig –level 3 nslcd on 我很好奇它为什么不能在perl脚本中工作。 TIA

通过SSPI + CGI Perl检索Windows用户名

当他访问我的内部网页时,我需要检索当前login的Windows用户的用户名。 我正尝试在Windows Server 2008上使用SSPI(mod_auth_sspi.so)和Apache 2.2来validation我的网页。 我已经对httpd.conf文件进行了以下更改,并将我的Intranet站点添加到浏览器设置上的受信任站点。 我的网页是在Perl中,正在使用CGI.pm。 我尝试通过$ cgi-> user_name()和$ cgi-> remote_user()检索用户名,并检查REMOTE_USER和AUTH_USER cgi ENVvariables以获取用户名。 <IfModule !mod_auth_sspi.c> LoadModule sspi_auth_module modules/mod_auth_sspi.so </IfModule> <Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/TestWeb/"> <Files Test.pl> AuthName "TestWeb" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic Off Require valid-user SSPIDomain domain name </Files> </Directory> 更改后我重新启动了Apache。 我没有看到cgi环境variables来获取环境variables中的用户标识符。 我已经search了同一个论坛和其他人,这就是他们已经完成的工作。 我错过了什么吗? 感谢任何帮助。 谢谢

Net :: FTP Perl模块挂起

所以,我在RHEL5.2系统上运行Perl 5.8.8。 我最近移动了LDAP源进行身份validation,现在我遇到了Net::FTP问题。 validation与新的LDAP源完美协同工作。 现在,作为系统上的一个特定的非root用户,如果我执行“ use Net::FTP ”,脚本会挂起,并开始填充消息日志: Mar 28 12:10:05 serverx perl: nss_ldap: failed to bind to LDAP server ldaps://ldapserver.domain.net: Can't contact LDAP server Mar 28 12:10:05 serverx perl: nss_ldap: reconnecting to LDAP server (sleeping 64 seconds)… 如果我以root身份执行“ use Net::FTP ”,没有问题。 我已经清除了nscdcaching(hosts,passwd,group),并且完成了重启服务器的任何工作(这实际上不是一个选项)。 有谁知道为什么会发生这种事情? 提前致谢;

在CentOS上更新Perl表单5.10到5.18时@INC的问题

我在CentOS 6上(以root身份)使用Perl 5.10,并安装了很多模块(使用yum和CPAN)。 我试图将Perl升级到5.18,现在有一些@INC的问题。 我收到一些模块在@INC中不能使用的消息,我已经解决了其中一些从yum重新安装它们的消息,但是其中一些仍然是不可靠的。 请显示将我早期安装的模块添加到@INC的最佳方法(我已经阅读了很多有关这个问题的论坛,而像在bash中使用lib或添加旧模块path的解决scheme对我来说并不是很好) 提前致谢! 更新: 我能降级到5.10,如果是的话,我的旧模块将工作? 或者唯一正确的方法是重新安装我的系统?

删除欺骗电子邮件通知

我正在用MIMEdefang使用CentOS版本6.5(最终版),而且我正在使用电子邮件欺骗者的垃圾邮件。 他从random-user @ mydomain发送了很多电子邮件到同一个random-user @ mydomain。 我已经在MIMEdefang上设置了一些垃圾邮件规则,这样邮件就被拒绝了,但是当他们这样做的时候,random-user @ mydomain会收到邮件被标记为垃圾邮件的通知,这真的令人沮丧。 我的问题是我如何closuresany-user_ @mydomain的通知,所以我没有收到垃圾邮件的拒绝 ? 在我的/ etc / mail / mimedefangfilter中,我有以下代码: if($ hits> = $ req){` #我们拒绝超过最大req分数的垃圾邮件 md_graphdefang_log('spam_blocked',$ hits,$ RelayAddr);` md_syslog('warning',“拒绝因为垃圾邮件而得分:$ hits($ names)”);“ action_bounce(“拒绝,因为消息似乎是垃圾邮件,得分:$ hit($ names),554,5.7.1);`

Perl FTP脚本从crontab失败,从cmd工作

我们有一个Perl脚本,我们已经使用(从crontab启动)好几年来使用Net :: FTP上传图片。 最近我们开始注意到图像没有上传的问题,错误出现在日志中。 在进行故障排除时,我发现目前从cmd行启动的程序工作得很好,但是从crontab启动时,它的错误一直存在。 在远程服务器上,我可以在FTP日志中看到连接仍然处于活动状态,客户端正在更改目录,但STOR命令从不像正常情况下那样显示。 在客户端,当ftp-> put被发出时,响应看起来是'227进入被动模式' 我尝试了一切可以想到的事情来追踪原因(防火墙,短暂端口,内存泄漏),但到目前为止,我唯一的解决scheme是从cmd行手动运行它。 有没有人有任何想法可能是这个问题的原因? 更新:这里是Debug => 1的一些输出: 当从crontab运行并且失败时(最后一行'ERROR'来自perl脚本并且包括$ ftp-> message,即“进入被动模式”): Net::FTP=GLOB(0xa004910)>>> CWD /images/shots Net::FTP=GLOB(0xa004910)<<< 250 CWD command successful Net::FTP=GLOB(0xa004910)>>> PASV Net::FTP=GLOB(0xa004910)<<< 227 Entering Passive Mode (181,71,41,114,114,112). ERROR: Couldn't put file /home/user/data/shot/212/212474.000078.jpg to f/4/f41891045708388275a0b1d1fe8a34fa.jpg on 127.0.0.1 because Entering Passive Mode (181,71,41,114,114,112). 从命令行运行并成功时: Net::FTP=GLOB(0x8619170)>>> CWD /images/shots Net::FTP=GLOB(0x8619170)<<< 250 CWD command successful […]

在启用/禁用apache2虚拟主机时,自动添加/删除/从/ etc / hosts中的条目

当我创build虚拟主机时,我几乎总是忘记在/etc/hosts添加一个条目,直到我尝试在networking浏览器中检查网站,并呻吟了一下监督。 我想要做的是修改a2ensite和a2dissite以便在运行时发生以下情况: a2ensite在/etc/hosts查找网站条目。 如果找不到,请将该网站附加到127.0.0.1条目。 否则,什么都不要做。 a2dissite在/etc/hosts查找网站条目。 如果发现,请从127.0.0.1中删除该网站。 否则,什么都不要做。 要么(MAMP在OS X上)或者添加一个提醒,我需要编辑etc/hosts来让虚拟主机工作。 我试图编辑这些文件,但是,因为我不知道PERL,我不确定做什么修改。 此外,我不确定编辑这些文件是最好的select,如果在升级apache2时覆盖我的更改。

CentOS7.1缺less许多perl rpms

我只是安装一个Centos7.1! 它似乎失踪了很多perl rpms。 例如:perl-PerlIO-gz,perl-DBD-Sybase … 我似乎无法在任何回购中find他们。 有任何想法吗? 谢谢,

Perl和nginxconfiguration

我试图获得与Perl一起运行的最新的nginx。 我知道Perl本身已经安装,因为我可以从命令行完美运行test.cgi 。 但是,试图从浏览器运行时,我得到一个“502错误的网关”错误。 以下是我目前的configuration: server { listen 80; server_name mysite.net www.mysite.net; access_log /srv/www/mysite.net/logs/access.log; error_log /srv/www/mysite.net/logs/error.log; root /srv/www/mysite.net/www; location / { root /srv/www/mysite.net/www; index index.html index.htm index.php; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/www/mysite.net/www$fastcgi_script_name; } location ~ \.cgi$ { gzip off; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; […]

CGI的Apache环境variables没有设置

我正在尝试为Apache Web服务器设置我的环境variables,因为它不是正确的Perl包。 我按照服务器故障中的一个答案的build议来更新httpd文件并添加环境variables,它仍然不起作用。 在我更新httpd文件后,我也弹回了httpd进程。 在命令行中,正确的PATH被用于Perl。 任何人可以提供任何指导? 错误在apache error.log文件中: [pid 29460] [client 10.199.106.141:57768] AH01215: install_driver(Informix) failed: Can't locate DBD/Informix.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 7) Perl应该检查Perl模块的Perl的正确位置 /usr/bin/perl 更新了/ etc / sysconfig / httpd文件 #Configuration of variables for webserver export INFORMIXDIR=/opt/informix export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/tools export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts PATH=$PATH:$HOME/bin:$INFORMIXDIR/bin:$LD_LIBRARY_PATH export PATH 其他环境variables […]