/Main_Page

::You must have ninja focus to complete your mission::NinjaFocus::

EZ Publish Performance

Views:


EZ Publish is extremely powerful and complicated. It's amazing that eZ wrote it in PHP and not Java - bloody good show chaps! Anyway, it's slow if you don't tune it.

You need to get Linux (or wink2k8) in order along with Apache and MySQL. Make sure you are using FastCGI and eaccelerator. Also install ImageMagick. Apache can cache content and file handles for you. Use it. Split your site across multiple domain names - even if these point to the same server. At the very least run your administration interface under a different domain name and not under the domain of your public web site.

If you can avoid it, do not install all of the content classes and templates that come bundled. Keep your staging and production sites clean, and export any of the bundled classes you need from a development site and import them in to your staging/production sites. (You are building this on a development server right?).

Override the entire cronjob.ini configuration and make sure you know exactly what is running and when. Push as much work in to cronjobs as possible. You can limit ez pub's ability to automatically flush caches and have a cronjob routinely flush them out and rebuild them.

Check your extensions. Some of the ones on the community web site are not that new/good/fast. You may be better of rewriting them or testing out some others.

There are some settings you can change, below. You also need to get to grips with the templating. Ez publish templating has some features to help control caching but most of these are red herrings. Lean how the templates are organised and why they've been done that way before you jump in. Keep templates small and split in to multiple files that you can reuse. Be careful in the forums because there is a lot of old code and techniques passed around in there and while they might work OK they might not be the "right" way.

In the configuration you'll want this in settings/siteaccess/<your public site> or settings/override: site.ini.append.php:

# not letting users create accounts? 
[SiteAccessSettings]
RequireUserLogin=false
ShowHiddenNodes=false

[ContentSettings]
TranslationList=
ViewCaching=enabled

[TemplateSettings]
TemplateCache= enabled
TemplateCompile= enabled
TemplateOptimization= enabled
NodeTreeCaching=enabled
Debug=false
ShowUsedTemplates=disabled

[OverrideSettings]
Cache=enabled

If you are making complex relationships between content classes then you'll need to let ez pub know so that it can check whether or not to flush content caches when your editors update content. Read the manual for this one. viewcache.ini.append.php:

[ViewCacheSettings]
SmartCacheClear=enabled
# common                    - common relations made on object level
# embedded                  - embedded objects
# linked                    - linked objects
# attribute                 - relations made with attributes of 'object relation' or
#                             'object relations' datatypes
# reverse_common            - reverse common relations (objects that relate the one currently
#                             being published) on object level
# reverse_embedded          - objects that have current object as embedded
# reverse_linked            - objects that have linked current object
# reverse_attribute         - objects that have current object as related in their attributes.
#
ClearRelationTypes[]
ClearRelationTypes[]=common
ClearRelationTypes[]=reverse_common
ClearRelationTypes[]=reverse_embedded
ClearRelationTypes[]=reverse_attribute
ClearRelationTypes[]=reverse_linked
ClearRelationTypes[]=attribute
#ClearRelationTypes[]=embedded
#ClearRelationTypes[]=linked

[featured_page]
DependentClassIdentifier[]
DependentClassIdentifier[]=genre
DependentClassIdentifier[]=front_page
DependentClassIdentifier[]=folder
MaxParents=2
ClearCacheMethod[]
ClearCacheMethod[]=object
ClearCacheMethod[]=parent

[news]
DependentClassIdentifier[]
DependentClassIdentifier[]=front_page
DependentClassIdentifier[]=folder
MaxParents=2
ClearCacheMethod[]
ClearCacheMethod[]=parent
ClearCacheMethod[]=object

[your content class name]
...

In the configuration you'll want this in settings/siteaccess/<your admin site>: site.ini.append.php:

[ContentSettings]
CachedViewPreferences[full]=admin_navigation_content=0;admin_navigation_details=0;admin_navigation_languages=0;admin_navigation_locations=0;admin_navigation_relations=0;admin_navigation_roles=0;admin_navigation_policies=0;admin_navigation_content=0;admin_navigation_translations=0;admin_children_viewmode=list;admin_list_limit=1;admin_edit_show_locations=0;admin_leftmenu_width=10;admin_url_list_limit=10;admin_url_view_limit=10;admin_section_list_limit=1;admin_orderlist_sortfield=user_name;admin_orderlist_sortorder=desc;admin_search_stats_limit=1;admin_treemenu=1;admin_bookmarkmenu=1;admin_left_menu_width=13
TranslationList= 

[TemplateSettings]
TemplateCache=enabled
TemplateCompile=enabled
TemplateOptimisation=enabled
NodeTreeCaching=enabled
Debug=disabled
ShowUsedTemplates=disabled

[OverrideSettings]
Cache=enabled

Main Menu

Personal tools

Toolbox