Das eigentliche Script zum komprimieren der Dateien ist sehr leicht zu verstehen, es wird bei Bedarf von mir ausgeführt. Einfach das Ursprungsverzeichnis und das Zeilverzeichnis konfigurieren und gut ist.
$inpath = '/var/www/www.domain.de/css_raw';
$outpath = '/var/www/domain.de/css';
opendir(DIR,$inpath) || die "$inpath: $!";
my @Dateien = readdir(DIR);
closedir(DIR);
foreach(@Dateien) {
if($_ =~ /.+\.css/) {
use CSS::Minifier qw(minify);
open(INFILE, '< '.$inpath.'/'.$_) or die('Fehler beim oeffnen der css-files'); open(OUTFILE, '> '.$outpath.'/'.$_) or die('Fehler beim erstellen der css-files');
minify(input => *INFILE, outfile => *OUTFILE);
close(INFILE);
close(OUTFILE);
}
}
Lediglich die erste Installation des Perl-Scripts oder eines Perl-Scripts allgemein, war für mich etwas neues. Das Verzeichnis habe ich nach /usr/scripting/CSS-Minifer/ bzw. /usr/scripting/CSS-Minifer/minimize_css.pl kopiert.
Hier kurz die Schritte zum Generieren der .pl-Datei und der Installation:
root@server01:/usr/scripting/CSS-Minifer$ perl Makefile.PL ......Writing Makefile for CSS::Minifier root@server01:/usr/scripting/CSS-Minifer$ make root@server01:/usr/scripting/CSS-Minifer$ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/CSS-Minifier.t .. ok All tests successful. Files=1, Tests=4, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.06 cusr 0.00 csys = 0.09 CPU) Result: PASS root@server01:/usr/scripting/CSS-Minifer$ make install Installing /usr/local/share/perl/5.10.1/CSS/Minifier.pm Installing /usr/local/man/man3/CSS::Minifier.3pm Appending installation info to /usr/local/lib/perl/5.10.1/perllocal.pod
Soweit der Abschnitt zum Perl. Jetzt noch die Pfade anpassen in der minimize.pl-Datei anpassen, die Datei selbst für das Linux System ausführbar machen und einen Testlauf machen:
root@server01: nano /usr/scripting/minimize_css.pl root@server01: chmod +x /usr/scripting/minimize_css.pl root@server01: /usr/scripting/minimize_css.pl
In meinem Fall gab es nun noch ein paar Probleme mit den Benutzerrechten, der Zielordner gehörte ja www-data und das Perl-Script konnte die komprimierten CSS- und Javascript-Dateien nicht in den Zielordner kopieren. Dies löste ich, indem ich das Script/Programm einfach als anderer Benutzer ausführte (in meinem Fall www-data).
[download link="http://www.devilweb.de/wp-content/uploads/2011/03/js_minimizer.zip" smalltext="js_minimizer.zip 24 kB"]Download JS-Minimizer[/download]
[download link="http://www.devilweb.de/wp-content/uploads/2011/03/css_minimizer.zip" smalltext="css_minimizer.zip 24 kB"]Download CSS-Minimizer[/download]



