所以我检查了一下我的剧本
perl -cw /var/www/cgi/env.pl
var/www/cgi/env.pl syntax OK
我在命令行中仔细检查它。它工作并向我显示我的环境值。
我的/etc/apache2/sites-available/mysite.com
看起来像这样:
服务器管理网站管理员@本地主机服务器名mysite.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks +ExecCGI
AllowOverride None
AddHandler cgi-script .cgi .pl
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /var/www/cgi/
<Directory "/var/www/cgi">
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
它应该工作,但我有500错误. Apache日志说:
[Fri Sep 19 09:29:04 2014] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/var/www/cgi/env.pl' failed
[Fri Sep 19 09:29:04 2014] [error] [client 127.0.0.1] Premature end of script headers: env.pl
我应该怎么做才能让它工作呢?有没有可能phpmyadmin
像这样影响到apache服务器。我做了not use php
,除了phpmyadmin的数据库。也许这里是问题所在?
1条答案
按热度按时间a8jjtwal1#
好吧。这是我的错误。这个脚本是在Windows机器上写的,我忘记了这个事实一段时间。所以我试着删除回车符。现在我的脚本工作了。
解决的办法是:
perl -pi -e 's/\r\n/\n/g /path/to/your/script'