Speeding Up Joomla! a little bit
Since my server is still suffering, Ive decide today to take some actions.
user: changes can be done on shared hosting with limited user rights.
root. changes require a full access to the server (root access with secure shell ssh)
I have currently per months, 160.000 visitors and 2 Millions Hits.or per day 8000 visitors and 24000 pages view.
Server has only 1GB RAM.
UPDATE: I found one/THE reason why my host is slowing down…SPAMMERS!
click read more
I Optimize (repair, refresh statistics) MySQL tables through MySQL admin, but It can be done through PLESK
|user:||Tune Joomla!! cache|
I Increase Joomla! cache lifetime from 900seconds to 24 hours as it better reflect the way I update my site (daily)
|user:||keep pages small|
|user:||Hunting software bugs|
By switching the site to debug mode, I notice some nasty queries (select count(*) from), all created by my statistics module ( Content Statistics on right side), In fact Joomla!! module do not inherit from Joomla!! cache automatically. I fix value in this module since I do not want to program cache support in it right now.
|root||One more cache|
I decide to install a PHP accelerator: PHPA from http://www.php-accelerator.co.uk/
Install is straightforward: just copy library into /usr/local/lib/php_accelerator_1.3.3r2.so
I use that tool: HTTP Viewer to check if my page now contains a header X-Accelerated-By:·PHPA/1.3.3r2
Reduce surface of attack: I found my components that were not used by Joomla! (very old code and uused components . So go through all directories with FTp/SCP and remove any un-needed code….
Review table data directly in the database…
This is how I found 27 000 spams in my gallery (Zoom gallery)
- I remove all entries
- Disallow comments operations (in Zoom gallery admin panel),
but spammers were still able to insert comments, so I edit the file components/com_zoom/lib/image.class.php
//add because of spammers
header(“HTTP/1.0 403 Forbidden”);
//$database->setQuery(“INSERT INTO #__zoom_comments (imgid,cmtname,cmtcontent,cmtdate) VALUES (‘”.mysql_escape_str
Note: I recommend You to use also mod_evasive and mod_security (root access needed), see aprevious article on my site
Some links, where I borrow some ideas: