vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=242)
-   -   FractalizeR: VBulletin 4 extensive optimization guide (Part II) (https://vborg.vbsupport.ru/showthread.php?t=241783)

FractalizeR 05-02-2010 10:00 PM

FractalizeR: VBulletin 4 extensive optimization guide (Part II)
 
Continuation from Part I

Install mod_evasive and DDOSDeflate script


If your forum is a constant target for DDOS attacks, to lower their performance impact, you can install Apache module mod_evasive and DDOS Deflate scripts. mod_evasive installation guides are scattered across the net, so I leave you with Google on it?s installation. As for DDOS Deflate, just wget http://www.inetbase.com/scripts/ddos/install.sh and run it (don?t forget to chmod u+x it first). Generally these two doesn?t need to be tuned and their default settings are ok.

Move Avatars and Profile Pics to the file system


You need to move pictures to the filesystem as well. Go to your AdminCP, expand the Avatars menu on the left side and click User Picture Storage Type.

Move CSS to the file system

Go to your AdminCP, expand the vBulletin Options menu and select vBulletin options. From there select Style and Language Options in the drop down menu. Then set ?Store CSS Stylesheets as Files?? to Yes and click Submit.

Enable caching of static content

This option will tell user browser to download files from your website less often thus decreasing server load and improving page load times for user. You will have to have mod_expires active in Apache. Add the following to .htaccess in the forum root

Code:

##  Expires
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType text/html  "access plus 1 seconds"
 ExpiresByType image/gif "access plus  3456000 seconds"
 ExpiresByType image/jpeg "access plus 3456000  seconds"
 ExpiresByType image/png "access plus 3456000 seconds"
 ExpiresByType text/css "access plus 3456000 seconds"
 ExpiresByType  text/javascript "access plus 3456000 seconds"
 ExpiresByType  application/x-javascript "access plus 3456000 seconds"
 ExpiresByType  application/javascript "access plus 3456000 seconds"
</IfModule>

I don?t recommend here to turn off E-tags because I am not currently convinced this will improve performance. Also turning them off together with enabling mod_expires may lead to server reporting files are up to date when they have updated and client should fetch updated versions of them.

Install and attach MemCached

Consider installing and attaching MemCached to VBulletin (for example, from RPMForge repository. If you are on RedHat or CentOS you can install RPMForge repository quickly this way and install MemCached from there using yum install memcached after. Don?t forget to issue chkconfig memcached on to make sure memcached will auto-start on next server reboot).
You will need to edit your /includes/config.php and uncomment the following lines there:

PHP Code:

$config['Datastore']['class'] =  'vB_Datastore_Memcached';
$i  0;
// First Server
$i++;
$config['Misc']['memcacheserver'][$i]          = '127.0.0.1';
$config['Misc']['memcacheport'][$i]             =  11211;
$config['Misc']['memcachepersistent'][$i]     = true;
$config['Misc']['memcacheweight'][$i]          = 1;
$config['Misc']['memcachetimeout'][$i]         = 1;
$config['Misc']['memcacheretry_interval'][$i]   = 15

Also, memcached from RPMForge repository is insecure by default and is listening on all IPs by default (it allows external connections). Either close the port 11211 with firewall, or consider to always start memcached with ?-l 127.0.0.1″ option to listen only on localhost. On RedHat or CentOS you can do that by editing /etc/sysconfig/memcached file and adding a setting to OPTIONS line like this:

OPTIONS="-l 127.0.0.1"

InnoDB: Migrating


Consider migrating to InnoDB to improve concurrency if you have a really large forum and you want to make it faster. Please note, that on small forums (or on servers with a little of physical memory) this option can even slow things a bit. Be sure you have at least 2-4Gb RAM on your server before considering InnoDB migration.

InnoDB: increase innodb_buffer_pool_size

If you migrated to InnoDB, you need to increase innodb_buffer_pool_size to at least 512Mb depending on your server free RAM available. It is the memory area, used to cache data for InnoDB tables and by default it is very small (8Mb only, suitable for Pentium 166MMX home machine with database of your video tapes).
If your server is running something else together with VBulletin, please consult with your server administrator for this change since it is server-wide.

InnoDB: lower transaction isolation level

VBulletin is running in autocommit mode and does not really use transactions. Default InnoDB transaction isolation level is REPEATABLE READ, which leads to excessive use of system resources in autocommit mode. You can lower it to READ COMMITTED. If you run ONLY VBulletin on your server, to lower transaction isolation level you need to add the following line to /etc/my.cnf (MySQL main configuration file):

Code:

transaction-isolation = READ-COMMITTED
If your server is also running something else, that is using InnoDB transactions with another isolation level, you will have to patch /includes/class_core.php instead of changing MySQL default configuration. Open it and add to vB_Database::db_connect before ?return $link? the following:

PHP Code:

$this->sql "SET SESSION TRANSACTION ISOLATION  LEVEL READ  COMMITTED";
 
$this->execute_query(true,   $link); 

Remember to do this (class_core.php patch) after VBulletin upgrade also. However, if you forget, nothing dangerous will happen. You will just loose this optimization?s benefits.

Tune MySQL for your forum

There are several ways to optimize your MySQL server even if you are not a professional DBA. One is to open PHPMyAdmin, go to Status tab to see server status and look for values in red color there. You will find some hints next to them (although, they could be not so clear).
Another is to use various MySQL analysis scripts, that analyze MySQL status reported by server themselves. You can get one here (it?s a bash script, you need to wget it, then chmod u+x tuning-primer.sh, and then execute: ./tuning-primer.sh) and another in Perl here. They report more understandable resuts.
Before making changes to your my.cnf, please, consider making a backup of it so that you could easily revert corrupted or unoptimal settings.

Optimize your MySQL tables regularly


Consider running the following simple script every several weeks depending on forum load (of course, you should run it at nights when your forum is the least loaded)

PHP Code:

<?php
 
//Change  the following line depending on  where you placed this script.
require_once  (dirname(__FILE__) .  '/../www/includes/config.php');
 
ini_set("memory_limit",  "50M");
set_time_limit(0);
 
//Connecting  DB
mysql_connect($config['MasterServer']['servername'],    $config['MasterServer']['username'],
 
$config['MasterServer']['password']) or die(mysql_error());
mysql_select_db($config['Database']['dbname'])   or die(mysql_error());
 
$sql 'SHOW  TABLES';
$alltables  mysql_query("$sql") or die(mysql_error());
while  (
$table  mysql_fetch_assoc($alltables))
{
 foreach (
$table as $db =>  $tablename) {
 
mysql_query("OPTIMIZE TABLE  `".$tablename."`;") or die(mysql_error());
 
sleep(10); //Let  some queries to execute to lower forum load
 
}
}

Don?t put this script inside www root because it can be used as ddos tool if it will be publicly accessible ;) Keep in mind, that running this script may take a long time depending on your forum (especially, if you switched into InnoDB, because OPTIMIZE TABLE for InnoDB currently is equivalent to ALTER TABLE with full table rebuild. This will also effectively write-lock the table during OPTIMIZE operation).
You can add it to Linux cron if you like.

Consider moving to newer MySQL server version

Generally, newer MySQL server versions are more clever. They know how to optimize queries better, how to handle resources better etc. So, you may receive a small benefit from moving to a newer MySQL server version. If you are on CentOS or RedHat this is complicated, because default repositories have only 5.0 version of MySQL server. So, I cannot recomment that. But you can always get RPM from MySQL website and install it. If you are an IT geek, you can even move to Percona MySQL server. This is a tweaked MySQL server with some optimization patches (from Google for example) applied and improved InnoDB performance. Unlike Oracle?s MySQL, Percona has own RPM repository, that can be installed using this rpm.
Despite performance gains, I don?t recommend this until you are really in need because maintaining another version of MySQL different from the one provided with your OS by default will take much time and resources from you.

Turn off apache modules, that you don?t need

Consider turning off all apache modules you don?t use on server, that holds your forum. For example, on my server httpd.conf has the following LoadModule configuration part:
Code:

LoadModule auth_basic_module  modules/mod_auth_basic.so
#LoadModule  auth_digest_module  modules/mod_auth_digest.so
LoadModule  authn_file_module  modules/mod_authn_file.so
#LoadModule  authn_alias_module  modules/mod_authn_alias.so
#LoadModule  authn_anon_module  modules/mod_authn_anon.so
#LoadModule  authn_dbm_module  modules/mod_authn_dbm.so
#LoadModule  authn_default_module  modules/mod_authn_default.so
LoadModule  authz_host_module  modules/mod_authz_host.so
LoadModule  authz_user_module  modules/mod_authz_user.so
#LoadModule  authz_owner_module  modules/mod_authz_owner.so
#LoadModule  authz_groupfile_module  modules/mod_authz_groupfile.so
#LoadModule  authz_dbm_module  modules/mod_authz_dbm.so
#LoadModule  authz_default_module  modules/mod_authz_default.so
#LoadModule  ldap_module modules/mod_ldap.so
#LoadModule  authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule  include_module modules/mod_include.so
LoadModule  log_config_module  modules/mod_log_config.so
LoadModule  logio_module modules/mod_logio.so
LoadModule  env_module modules/mod_env.so
LoadModule  ext_filter_module  modules/mod_ext_filter.so
LoadModule  mime_magic_module  modules/mod_mime_magic.so
LoadModule  expires_module modules/mod_expires.so
LoadModule  deflate_module modules/mod_deflate.so
LoadModule  headers_module  modules/mod_headers.so
#LoadModule  usertrack_module  modules/mod_usertrack.so
LoadModule  setenvif_module modules/mod_setenvif.so
LoadModule  mime_module modules/mod_mime.so
#LoadModule  dav_module modules/mod_dav.so
#LoadModule  status_module modules/mod_status.so
#LoadModule  autoindex_module  modules/mod_autoindex.so
#LoadModule  info_module modules/mod_info.so
#LoadModule  dav_fs_module modules/mod_dav_fs.so
#LoadModule  vhost_alias_module  modules/mod_vhost_alias.so
LoadModule  negotiation_module  modules/mod_negotiation.so
LoadModule  dir_module modules/mod_dir.so
#LoadModule  actions_module modules/mod_actions.so
#LoadModule  speling_module  modules/mod_speling.so
#LoadModule  userdir_module modules/mod_userdir.so
LoadModule  alias_module modules/mod_alias.so
LoadModule  rewrite_module  modules/mod_rewrite.so
#LoadModule  proxy_module modules/mod_proxy.so
#LoadModule  proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule  proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule  proxy_http_module  modules/mod_proxy_http.so
#LoadModule  proxy_connect_module  modules/mod_proxy_connect.so
#LoadModule  cache_module modules/mod_cache.so
#LoadModule  suexec_module modules/mod_suexec.so
#LoadModule  disk_cache_module  modules/mod_disk_cache.so
#LoadModule  file_cache_module  modules/mod_file_cache.so
#LoadModule  mem_cache_module  modules/mod_mem_cache.so
LoadModule  cgi_module modules/mod_cgi.so
LoadModule  version_module modules/mod_version.so

Disabled modules are prefixed with ?#? (commented). After you edited httpd.conf, please don?t restart apache right away;) First you need to check syntax of the file to be sure, apache will startup normally. You can do this issuing apachectl configtest command. Generally, for example, disabling autoindex module requires some more commenting of httpd.conf because corresponding setting lines are not wrapped into IfModule directives.

Enable KeepAlive in Apache settings

KeepAlive setting allows Apache server to send replies to several requests over the same TCP connection. This is of course faster than to open new TCP connection for each resource sent. To enable KeepAlive search for ?KeepAlive? in apache configuration file (httpd.conf) and set it to On:

Code:

KeepAlive  On
If there is no such option, you may add it. This will make your forum pages to load faster for endusers. However, this could lead to a need to slightly increase a number of MaxConnections allowed to be accepted by Apache and a little more resources will be consumed especially on forums with many users online.

Turn off PHP modules you don?t need


VBulletin uses the following PHP modules: gd, iconv, mbstring, mysql or mysqli (depending on your VBulletin database connection settings). All others (except for those, that are compiled with PHP by default and were not disabled using ?disable-XXX switch during PHP compilation) are not required. You can skip loading them to make PHP occupy less memory and start faster. On RedHat and CentOS you can just comment ?extension=? lines in each corresponding file inside /etc/php.d directory.

Turn on PHP bytecode caching

If
  • your PHP is running as apache module (mod_php) or
  • PHP is configured as fast-cgi
you can benefit from bytecode caching. By default, PHP is parsing and compiling to internal byte-codes (like Java) each script and on every client request. This takes time and resources. PHP bytecode caches allows to store once compiled script and reuse already compiled bytecodes. I recomment using APC as your bytecode cache. It can be installed from PECL repository. On RedHat and CentOS you can install it the following commands:

Code:

yum install php-devel
pecl install  APC

The first command installs php development package, that is used to compile PHP extensions. The second installs APC itself. You may need to activate it inside your php.ini after compilation. You may need to install basic prerequisites for source compilation:

Code:

yum install  autoconf libtool gcc gcc-c++
Please note, that if PHP is running as CGI, turning on bytecode cache will give you no benefits as the cache will be invalidated on each new request.

Optimizations, that will speed up forum for users, but may increase server load


Enable compression of content


If you have some spare CPU power and want to make your forum load faster for users, you can also enable static content compression. You will have to have both mod_headers and mod_deflate active in Apache. Add the following to your .htaccess in the forum root:


Code:

#Compression
<IfModule mod_headers.c>
    <IfModule mod_deflate.c>
        AddOutputFilterByType  DEFLATE text/css text/xml text/javascript  application/x-javascript  application/javascript
        BrowserMatch ^Mozilla/4  gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    </IfModule>
</IfModule>

You can also set Cookies and HTTP Header Options -> GZIP HTML Output to true to speed up HTML delivery to end user.

Forum settings, that seriously affect database performance

You can tune all below if your forum causes great load to database
  • General Settings ->Thread/Forum Read Marking Type
  • Server Settings and Optimization Options -> Cached Posts Lifespan
  • Server Settings and Optimization Options -> Update Thread Views Immediately
  • Server Settings and Optimization Options -> Update Attachment Views Immediately
  • Message Searching Options -> Maximum Search Results to Return
  • Message Searching Options -> Automatic Similar Thread Search
  • Message Searching Options -> Search Result Sharing
  • Forums Home Page Options -> Display Logged in Users?
  • Forum Display Options (forumdisplay) -> Show Users Browsing Forums
  • Forum Display Options (forumdisplay) -> Highlight Threads in Which User Has Posted
  • Thread Display Options (showthread) -> Show Users Browsing Threads
  • Thread Display Options (showthread) -> Check Thread Rating
  • Thread Display Options (showthread) Check Thread Subscription

Princeton 05-03-2010 06:14 PM

great article - thanks for sharing

bpr 05-03-2010 08:33 PM

Nice one!

I actually cant change the directories for attachments and so on, because it is saying that there is an error with the folder ... i am pretty shure i messed up the path ... is it a full path or a relative one ? or is it from /srv/ ... ?

DDOSDeflate doesnt work for me on opensuse its kind of difficult : (

FractalizeR 05-03-2010 09:13 PM

Quote:

Originally Posted by Princeton (Post 2031266)
great article - thanks for sharing

Welcome ;)

Quote:

Originally Posted by bpr
is it a full path or a relative one ? or is it from /srv/ ... ?

Full one from root (/var/www/html/site.com/..... for example).

Create a PHP script somewhere and put to it the following code:
PHP Code:

<?php
echo __FILE__;

It will show full script name. You will see dir there.

Quote:

Originally Posted by bpr
DDOSDeflate doesnt work for me on opensuse its kind of difficult : (

It may miss necessary tools (netstat and awk must be present at least as I know. Anyway, need to know what exacly the problem is.

kmohamed 05-03-2010 10:29 PM

than you again for part 2 of the article great job
even though is kind of difficult for me to deal with some stuff you've mention but its a great start for me to learn those

thanx for every word

bpr 05-03-2010 10:48 PM

Thank you very much indeed FractalizeR!

I will pop in later again here, gotta do a nerd root session later on this night however...

All the best

giorgino 05-05-2010 07:07 PM

Great article! Really thank you! :)

In my httpd.conf I've this directives:

Code:

#mod_deflate
<IfModule mod_deflate.c>
DeflateCompressionLevel 9

<Location / >
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \
\.(?:exe|t?gz|zip|bz2|sit|rar)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</Location>
</IfModule>

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 259200000 seconds"
  ExpiresByType image/jpeg "access plus 259200000 seconds"
  ExpiresByType image/png "access plus 259200000 seconds"
  ExpiresByType text/css "access plus 60480000 seconds"
  ExpiresByType text/javascript "access plus 21600000 seconds"
  ExpiresByType application/x-javascript "access plus 21600000 seconds"
  ExpiresByType application/javascript "access plus 3456000 seconds"
</ifModule>

<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=25920000, public"
  </filesMatch>
  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=6048000, public"
  </filesMatch>
  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=2160000, private"
  </filesMatch>
  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=2160000, public, must-revalidate"
  </filesMatch>
  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>
<ifModule mod_headers.c>
  Header unset ETag
</ifModule>
FileETag None
<ifModule mod_headers.c>
  Header unset Last-Modified
</ifModule>

Are correct?

pedroenf 05-17-2010 01:17 AM

Nice tutorial. Didn't get the script part. Could explain better? I've created the php file with your script in it but just get a blank page.

FractalizeR 05-17-2010 06:40 AM

Add
PHP Code:

error_reporting(E_ALL);
ini_set("display_errors"true); 

to the beginning of the file after php tag and see what error is that.

pedroenf 05-17-2010 11:14 AM

Thanks Fractalizer, it was a wrong path problem. But tel me something, does the script prints any results in the screen or?...

FractalizeR 05-18-2010 06:28 AM

No, it does not. If you put something in cron, all printed results will be sent to your root email. If nothing is printed - nothing is sent. So, it's good for having all problems on your email.

daveaite 05-21-2010 06:40 PM

*scratches me head*
nice work. :) I will probably be need these articles in a year or 2.

Rafa-el 05-22-2010 11:32 PM

Very Usefull :)

Thanks for share.

ageurtse 05-23-2010 03:21 PM

1 Attachment(s)
after turning on saving ccs to filesystem i get this error. what could be wrong ?

FractalizeR 05-24-2010 06:22 AM

Quote:

Originally Posted by ageurtse (Post 2042272)
after turning on saving ccs to filesystem i get this error. what could be wrong ?

Upgrade to latest VB (4.0.3 for today) please and revert old templates. When you add a new style to VB, make it a child of main default style. Don't make it separate style.

melbo 06-19-2010 03:10 AM

Do we need to configure MemCached in any way or is it tuned out of the box?

FractalizeR 06-19-2010 07:38 AM

Actually, it is turned on and is listening on all Ips. So, you might need to close it's port 11211 to make it inaccessible externally.

Boofo 08-04-2010 06:56 AM

Where do we check for this on a VPS?

Quote:

mod_expires active in Apache

TheSupportForum 08-04-2010 07:55 AM

Quote:

Originally Posted by Boofo (Post 2078956)
Where do we check for this on a VPS?

if you are trying to cache then your VPS may not support this, i know that cpanel VPS does not, so enabling it in config.pph is not correct

or you can read this more more information
http://www.google.co.uk/#hl=en&sourc...880e0c34638eae

Boofo 08-04-2010 08:14 AM

Quote:

Originally Posted by simonhind (Post 2078974)
if you are trying to cache then your VPS may not support this, i know that cpanel VPS does not, so enabling it in config.pph is not correct

or you can read this more more information
http://www.google.co.uk/#hl=en&sourc...880e0c34638eae

I have the code above in my domain root htaccess but I don't know where to see if it is enabled. There has to be somewhere it tells you, doesn't there?

EDIT: I found it. I do have it installed on the VPS. I ran this line from the root:

Quote:

/usr/local/apache/bin/apachectl -l
and it listed all the modules installed. And mod_expires was there. ;)

Shaheen 08-06-2010 10:12 PM

Thanks Fractalizer , very usefull .

Can we use MemCached & eaccelerator togather ? If no then which one is better with attachment on file system?

FractalizeR 08-09-2010 09:10 AM

Yea, you can surely use both at the same time.

fluidswork 08-10-2010 05:55 AM

Really thanks for the article ....

Shaheen 08-17-2010 07:23 AM

Quote:

Originally Posted by FractalizeR (Post 2081223)
Yea, you can surely use both at the same time.

Thanks for your response ,

Will you recommend using both ? if not then which one you prefer ?

FractalizeR 08-18-2010 07:05 AM

They are a little bit different. Vbulletin uses memcached to cache it's datastore, and eaccelerator caches PHP bytecode to speedup execution speed. So, you should use both if you can.

8thos 10-07-2010 08:08 PM

Too complicated for me to try.

FractalizeR 10-08-2010 06:25 AM

Life is also a difficult thing ;)

8thos 10-08-2010 07:09 AM

wtf

Raeven 11-01-2010 04:44 PM

Very nice Tutorial, helps also much with windows servers

final kaoss 12-08-2010 02:40 AM

Hi instead of that file to optimize the database once per week can't we just make a plugin to do this for us in the admin cp via the Plugin & Products System -> add new plugin option?

If so what code do we use for that?

KissOfDeath 02-18-2011 07:16 PM

I'm trying the "InnoDB: Migrating" and managed to convert all tables successfully except

Code:

alter table thread engine=InnoDB;
Which gives me this error
Code:

#1214 - The used table type doesn't support FULLTEXT indexes
Is their a way to fix it, and if not is it ok to leave it as it is?

FractalizeR 02-19-2011 07:30 AM

Did you convert all tables without exceptions?

KissOfDeath 02-19-2011 10:50 AM

Quote:

Originally Posted by FractalizeR (Post 2164218)
Did you convert all tables without exceptions?

Only the tables you listed here:
Code:

http://www.vbulletin.com/forum/entry.php?2413-Part-2-vB4mance-vBulletin4-Optimization-Basic-Guide-to-InnoDB-Conversion
and thread was the only one that gave the full text error

FractalizeR 02-20-2011 07:10 AM

Well, it's some legacy indexes. You can safely drop them:
Code:

alter table post drop index title;
alter table thread drop index title;


KissOfDeath 02-20-2011 10:40 AM

Quote:

Originally Posted by FractalizeR (Post 2164526)
Well, it's some legacy indexes. You can safely drop them:
Code:

alter table post drop index title;
alter table thread drop index title;


thanks you, worked great

FractalizeR 02-21-2011 06:33 AM

Welcome.

cpvrx 03-09-2011 05:34 AM

Great article. :)

cpvrx 03-15-2011 09:40 AM

One thing that also speeds up your community is switching from Apache to Litespeed(web server).


All times are GMT. The time now is 06:35 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01558 seconds
  • Memory Usage 1,917KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (13)bbcode_code_printable
  • (5)bbcode_php_printable
  • (11)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (38)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete