韦伯敏 php-lib.pl 修改

2022-08-30 17:54:32

我已将 PHP 版本更新到 5.5.26。在 PHP 5.4 中,我使用 FCGI 的 Apache 配置是:

AddHandler fcgid-script .php
AddHandler fcgid-script .php5

对于新版本的PHP,我需要将其他配置工作:

<FilesMatch \.php$>
    SetHandler fcgid-script
</FilesMatch>

没关系,它正在工作。

我的问题是Webmin的Virtualmin模块。我不想每次都更改配置,所以我编辑了Perl文件/usr/share/webmin/virtual-server/php-lib.pl

# Directives for fcgid
local $dest = "$d->{'home'}/fcgi-bin";
#push(@phplines, "AddHandler fcgid-script .php");

# New config for PHP files
push(@phplines, "<FilesMatch \\.php\$>");
push(@phplines, "SetHandler fcgid-script");
push(@phplines, "</FilesMatch>");

push(@phplines, "FCGIWrapper $dest/php$ver.fcgi .php");
foreach my $v (&list_available_php_versions($d)) {
  #push(@phplines,
  #     "AddHandler fcgid-script .php$v->[0]");
  push(@phplines, "FCGIWrapper $dest/php$v->[0].fcgi " . ".php$v->[0]");
}

但是我的更改没有任何作用,Webmin继续放置行。我已经重新启动了Webmin,我清除了文件。AddHandler/etc/webmin/module.infos.cache


答案 1

首先,您应该使用单引号而不是双引号来获得更简单的语法:

...
push(@phplines, '<FilesMatch \.php$>');
push(@phplines, 'SetHandler fcgid-script');
push(@phplines, '</FilesMatch>');
...

检查此特定文件是否存在语法错误

perl -c /usr/share/webmin/virtual-server/php-lib.pl

在此文件中的某个位置添加一个日志文件,以便确保调用此文件。例如,在上面显示的代码之前添加类似这样的东西:

my $fh;
open($fh, '>>', "/tmp/test.log") or die "Couldn't open: $!";
print $fh "This file is actually used!";
close $fh;
...

答案 2

推荐