2015-07-08 13 views
24

Ho aggiornato la versione di PHP a 5.5.26. Con PHP 5.4 la mia configurazione di Apache con fcgi era:Modifica Webmin php-lib.pl

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

Con la nuova versione di PHP ho bisogno di mettere altra configurazione di opere:

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

Va bene, sta funzionando.

Il mio problema è con il modulo Virtualmin di Webmin. Io non voglio cambiare la configurazione ogni volta, quindi ho modificato il file 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]"); 
} 

Ma il mio cambiamento non fa nulla, Webmin continua a mettere le linee AddHandler. Ho riavviato Webmin, ho cancellato il file /etc/webmin/module.infos.cache.

+0

Esiste una funzione di distribuzione da qualche parte? – simbabque

+2

Inserisci una riga per accedere al file per confermare che questo è lo script chiamato da webmin – dlporter98

+0

Penso che il tag php sia sbagliato. – adrian7

risposta

3

Prima di tutto si dovrebbe utilizzare le virgolette singole al posto delle virgolette doppie per una sintassi più semplice:

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

Controllare questo file specifico per errori di sintassi con

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

Aggiungere un file di log da qualche parte in questo file in modo da essere sicuri che questo file venga chiamato. Per esempio. aggiungi qualcosa di simile prima del codice mostrato sopra:

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