Perl Apache问题
我甚至不能解决这个问题,我已经尝试了这么多的事情,但没有任何效果 我基本上是为我的一个朋友做这件事的,我在他的ubuntu服务器上正确地安装了apache,但是每当我试图访问Perl Apache问题,apache,perl,Apache,Perl,我甚至不能解决这个问题,我已经尝试了这么多的事情,但没有任何效果 我基本上是为我的一个朋友做这件事的,我在他的ubuntu服务器上正确地安装了apache,但是每当我试图访问usr/lib/cgi-bin中的注册文件时,它总是给我一个500内部服务器错误 这是站点配置文件(000 default.conf) 通过在终端中键入perl-v来检查您的perl版本。如果是5.20
usr/lib/cgi-bin
中的注册文件时,它总是给我一个500内部服务器错误
这是站点配置文件(000 default.conf)
通过在终端中键入perl-v来检查您的perl版本。如果是5.20<,您应该安装perl模块CGI.pm,因为它已从核心perl捆绑包中删除。 在perl代码的顶部,您编写了
use strict;
use warnings;
use CGI;
use Method::Signatures;
use Digest::MD5 qw(md5_hex);
use Drivers::MySQL;
use feature qw(say);
print header(); #########
my %arrConfig = (
dbHost => '127.0.0.1',
dbName => 'Luna',
dbUser => 'root',
dbPass => 'password123'
);
my $objHtml = CGI->new; #########
my $objMysql = MySQL->new;
据我所知,应该是这样写的:
use strict;
use warnings;
use CGI;
use Method::Signatures;
use Digest::MD5 qw(md5_hex);
use Drivers::MySQL;
use feature qw(say);
my $objHtml = CGI->new; #########
print $objHtml->header(); #########
my %arrConfig = (
dbHost => '127.0.0.1',
dbName => 'Luna',
dbUser => 'root',
dbPass => 'password123'
);
my $objMysql = MySQL->new;
希望这将工作良好。。。
请使用以下命令perl-c运行以下命令,以了解perl中是否存在任何其他语法错误。它将帮助您识别服务器中任何缺失的模块。从您的日志:
在@INC中找不到Drivers/MySQL.pm(您可能需要安装Drivers::MySQL模块)(@INC-contains:/etc/perl/usr/usr/local/lib/perl/5.18.2/usr/local/share/perl/perl5/usr/lib/perl/5.18/usr/share/perl/5.18/usr/local/lib/site_perl.)在/var/www/cgi-bin/register/index.pl第11行。
BEGIN失败--编译在/var/www/cgi-bin/register/index.pl第11行中止
您需要安装Drivers::MySQL模块
希望cpanm驱动程序::MySQL
能做到这一点,但有更多的说明
您在
Data::Alias
方面也有类似的问题,以下是错误日志的重要部分:
无法在@INC中找到Drivers/MySQL.pm(您可能需要安装
驱动程序::MySQL模块)(@INC包含:/etc/perl
/usr/local/lib/perl/5.18.2/usr/local/share/perl/5.18.2/usr/lib/perl5
/usr/share/perl5/usr/lib/perl/5.18/usr/share/perl/5.18
/usr/local/lib/site_perl.)at/var/www/cgi-bin/register/index.pl行
11BEGIN失败--编译在/var/www/cgi-bin/register/index.pl第11行中止
以及:
在@INC中找不到Data/Alias.pm(您可能需要安装
Data::Alias module)(@INC包含:/etc/perl
/usr/local/lib/perl/5.18.2/usr/local/share/perl/5.18.2/usr/lib/perl5
/usr/share/perl5/usr/lib/perl/5.18/usr/share/perl/5.18
/usr/local/lib/site_perl.)位于
/usr/local/share/perl/5.18.2/Method/Signatures.pm第980行。
在/var/www/cgi-bin/register/index.pl的require中编译失败
第11行。BEGIN失败--编译在处中止
/var/www/cgi-bin/register/index.pl第11行
有两个模块称为Drivers::MySQL和Data::Alias。我所说的失踪是指这两种情况中有一种是真的:
@INC
的变量中)
你有两个选择来修复它。将模块的本地副本移动到@INC
中的一个目录,或者(可能更好)调整@INC
以包含模块所在的目录。这通常是通过use lib
语句完成的。例如:
use lib ('/path/to/the/directory/that/includes/Drivers',
'/path/to/the/directory/that/includes/Data');
尝试了这个,仍然显示一个内部服务器错误。我以前使用过这么多ubuntu服务器…这是我第一次遇到这样的问题…添加了它,很抱歉fornat:s im在电话上没关系。根据日志,您没有安装诸如Drivers::MySQL之类的perl模块。请使用以下命令perl-c运行以下命令,以了解perl中是否存在任何其他语法错误。它将帮助您识别服务器中缺少的任何模块。检查语法后,它会显示“Ok”,没有错误。我检查了权限并尝试将其更改为705755711,但遗憾的是没有任何效果。对不起。没有这台机器我就无能为力了。希望您是perl程序员。检查错误日志。希望你能从中有所收获。通常出现500错误的原因是你的脚本死掉了。apache错误日志中几乎总是有它死亡的原因的指示,所以请看那里代码>在顶部。然后,如果脚本运行,您应该在浏览器中获得一些有意义的信息。
use strict;
use warnings;
use CGI;
use Method::Signatures;
use Digest::MD5 qw(md5_hex);
use Drivers::MySQL;
use feature qw(say);
print header(); #########
my %arrConfig = (
dbHost => '127.0.0.1',
dbName => 'Luna',
dbUser => 'root',
dbPass => 'password123'
);
my $objHtml = CGI->new; #########
my $objMysql = MySQL->new;
use strict;
use warnings;
use CGI;
use Method::Signatures;
use Digest::MD5 qw(md5_hex);
use Drivers::MySQL;
use feature qw(say);
my $objHtml = CGI->new; #########
print $objHtml->header(); #########
my %arrConfig = (
dbHost => '127.0.0.1',
dbName => 'Luna',
dbUser => 'root',
dbPass => 'password123'
);
my $objMysql = MySQL->new;
use lib ('/path/to/the/directory/that/includes/Drivers',
'/path/to/the/directory/that/includes/Data');