Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Apache问题_Apache_Perl - Fatal编程技术网

Perl Apache问题

Perl Apache问题,apache,perl,Apache,Perl,我甚至不能解决这个问题,我已经尝试了这么多的事情,但没有任何效果 我基本上是为我的一个朋友做这件事的,我在他的ubuntu服务器上正确地安装了apache,但是每当我试图访问usr/lib/cgi-bin中的注册文件时,它总是给我一个500内部服务器错误 这是站点配置文件(000 default.conf) 通过在终端中键入perl-v来检查您的perl版本。如果是5.20

我甚至不能解决这个问题,我已经尝试了这么多的事情,但没有任何效果

我基本上是为我的一个朋友做这件事的,我在他的ubuntu服务器上正确地安装了apache,但是每当我试图访问
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。我所说的失踪是指这两种情况中有一种是真的:

  • 此服务器上未安装该模块
  • 模块安装在此服务器上,但它不在Perl查找库的目录中
  • 错误消息提供了Perl查找库的目录列表(位于名为
    @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');