From 1522e48c854046b947284dbe50296cc0e159be4c Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Thu, 31 Oct 2013 16:32:46 +0800 Subject: Bug 887117: Move the compiled template cache dir to a directory in the document root to avoid storing on NFS --- .bzrignore | 19 +----------------- .htaccess | 2 ++ Bugzilla/Constants.pm | 2 +- contrib/compile-templates.pl | 47 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 19 deletions(-) create mode 100755 contrib/compile-templates.pl diff --git a/.bzrignore b/.bzrignore index e009f01c8..0370a07e0 100644 --- a/.bzrignore +++ b/.bzrignore @@ -10,22 +10,5 @@ /data /localconfig /index.html - -/skins/contrib/Dusk/IE-fixes.css -/skins/contrib/Dusk/admin.css -/skins/contrib/Dusk/attachment.css -/skins/contrib/Dusk/create_attachment.css -/skins/contrib/Dusk/dependency-tree.css -/skins/contrib/Dusk/duplicates.css -/skins/contrib/Dusk/editusers.css -/skins/contrib/Dusk/enter_bug.css -/skins/contrib/Dusk/help.css -/skins/contrib/Dusk/panel.css -/skins/contrib/Dusk/page.css -/skins/contrib/Dusk/params.css -/skins/contrib/Dusk/reports.css -/skins/contrib/Dusk/show_bug.css -/skins/contrib/Dusk/search_form.css -/skins/contrib/Dusk/show_multiple.css -/skins/contrib/Dusk/summarize-time.css +/template_cache .DS_Store diff --git a/.htaccess b/.htaccess index 4e0a08f57..81561d566 100644 --- a/.htaccess +++ b/.htaccess @@ -41,6 +41,8 @@ Redirect permanent /etiquette.html https://bugzilla.mozilla.org/page.cgi?id=etiq Redirect permanent /duplicates.html https://bugzilla.mozilla.org/duplicates.cgi RewriteEngine On +RewriteRule ^template_cache/ - [F,L,NC] +RewriteRule ^template_cache.deleteme/ - [F,L,NC] RewriteRule ^review(.*) page.cgi?id=splinter.html$1 [QSA] RewriteRule ^user_?profile(.*) page.cgi?id=user_profile.html$1 [QSA] RewriteRule ^request_defer(.*) page.cgi?id=request_defer.html$1 [QSA] diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index d884270e3..e13a93388 100644 --- a/Bugzilla/Constants.pm +++ b/Bugzilla/Constants.pm @@ -650,7 +650,7 @@ sub bz_locations { # make sure this still points to the CGIs. 'cgi_path' => $libpath, 'templatedir' => "$libpath/template", - 'template_cache' => "$datadir/template", + 'template_cache' => "$libpath/template_cache", 'project' => $project, 'localconfig' => "$libpath/$localconfig", 'datadir' => $datadir, diff --git a/contrib/compile-templates.pl b/contrib/compile-templates.pl new file mode 100755 index 000000000..e39e0c338 --- /dev/null +++ b/contrib/compile-templates.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl -w + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use strict; +use warnings; +use lib qw(. lib); + +use Bugzilla; +use Bugzilla::Constants; +use Bugzilla::Install::Filesystem qw(fix_dir_permissions); +use Bugzilla::Template; +use File::Path qw(mkpath rmtree); + +Bugzilla->usage_mode(USAGE_MODE_CMDLINE); +$| = 1; + +# rename the current directory and create a new empty one +# this is quicker than the method used in precompile_templates + +my $path = bz_locations()->{'template_cache'}; +my $delete_path = "$path.deleteme"; + +print "Moving '$path' to '$delete_path'\n"; +rmtree("$delete_path") if -e "$delete_path"; +rename($path, $delete_path) + or die "renaming '$path' to '$delete_path' failed: $!\n"; + +print "Creating '$path'\n"; +mkpath($path) + or die "creating '$path' failed: $!\n"; +fix_dir_permissions($path); + +# pre-compile all templates + +Bugzilla::Template::precompile_templates(1); +fix_dir_permissions($path); + +# finally delete the temp directory (it's ok if this fails) + +print "Deleting $delete_path\n"; +rmtree("$delete_path"); -- cgit v1.2.3-24-g4f1b