Подтвердить что ты не робот

Изменение Webmin php-lib.pl

Я обновил версию PHP до 5.5.26. С PHP 5.4 моя конфигурация Apache с FCGI была:

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

С новой версией PHP мне нужно запустить другую конфигурацию:

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

Его ОК, его работа.

Моя проблема связана с модулем Virtualmin Webmin. Я не хочу менять конфигурацию каждый раз, поэтому я отредактировал файл 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.

4b9b3361

Ответ 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;
...