gpt4 book ai didi

php - webmin php-lib.pl 修改

转载 作者:IT王子 更新时间:2023-10-28 23:45:59 27 4
gpt4 key购买 nike

我已经将 PHP 版本更新到 5.5.26。对于 PHP 5.4,我的 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 继续添加 AddHandler 行。我重新启动了 Webmin,我清除了文件 /etc/webmin/module.infos.cache

最佳答案

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

...
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;
...

关于php - webmin php-lib.pl 修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31285479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com