Koha Tuning Guide

From Koha Wiki

Jump to: navigation, search
Home > Documentation
Home > Documentation
Home > Documentation > Documentation examples
Tips & Tricks > Tips & Tricks/Customising Notices and Slips > Tips & Tricks


Contents

MySQL tuning

 #
 # The MySQL database server configuration file.
 #
 # You can copy this to one of:
 # - "/etc/mysql/my.cnf" to set global options,
 # - "~/.my.cnf" to set user-specific options.
 # 
 # One can use all long options that the program supports.
 # Run program with --help to get a list of available options and with
 # --print-defaults to see which it would actually understand and use.
 #
 # For explanations see
 # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
 
 # This will be passed to all mysql clients
 # It has been reported that passwords should be enclosed with ticks/quotes
 # escpecially if they contain "#" chars...
 # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
 # Here is entries for some specific programs
 # The following values assume you have at least 32M ram

 # This was formally known as [safe_mysqld]. Both versions are currently parsed.
 [mysqld]
 #
 # * Basic Settings
 #
 #
 # * Fine Tuning
 #
 key_buffer		= 2000M
 max_allowed_packet	= 16M
 thread_stack		= 128K
 thread_cache_size	= 8
 # This replaces the startup script and checks MyISAM tables if needed
 # the first time they are touched
 myisam-recover		= BACKUP
 max_connections        = 500
 max_user_connections        = 500
 #table_cache            = 64
 thread_concurrency     = 300
 table_cache            = 30000
 open_files_limit       = 65000
 #innodb_force_recovery =6

 #
 # * Query Cache Configuration
 #
 query_cache_limit       = 50M
 query_cache_size        = 300M
 #
 # * Logging and Replication
 #
 #
 # * InnoDB
 #
 # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
 # Read the manual for more InnoDB related options. There are many!
 # You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
 #skip-innodb
 innodb_buffer_pool_size=16777216
 innodb_file_per_table

apache configuration

Add that to your configuration file.

 <IfModule mod_gzip.c>
    mod_gzip_on yes
    mod_gzip_dechunk yes
    mod_gzip_keep_workfiles No
    mod_gzip_can_negotiate yes
    mod_gzip_update_static No
    mod_gzip_temp_dir /tmp
    mod_gzip_minimum_file_size 512
    mod_gzip_maximum_file_size 1000000
    mod_gzip_maximum_inmem_size 1000000
    mod_gzip_handle_methods GET POST
    mod_gzip_item_exclude reqheader "User-Agent: .*Mozilla/4\..*\["
    mod_gzip_item_exclude mime ^image/.*
    mod_gzip_item_exclude rspheader Content-Type:image/*
    mod_gzip_item_include file \.js$
    mod_gzip_item_include mime ^application/x-javascript$
    mod_gzip_item_include file \.php$
    mod_gzip_item_include mime ^text/html$
    mod_gzip_item_include file \.css$
    mod_gzip_item_include mime ^text/css$
  </IfModule>

  <IfModule mod_deflate.c>

    # Compress content with type html, text, and css, ...
    AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css
    AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript

    DeflateCompressionLevel 9

    # Properly handle old browsers that do not support compression
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    DeflateFilterNote Input instream
    DeflateFilterNote Output outstream
    DeflateFilterNote Ratio ratio

    LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    <IfModule mod_headers.c>
      #properly handle requests coming from behind proxies
      Header append Vary User-Agent
    </IfModule>
 </IfModule>
  SetOutputFilter DEFLATE
  SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip

 <FilesMatch "\.(jpg|gif|png|css|js$)$">
   ExpiresDefault "access plus 7 days"
   Header set Cache-Control "public"
 </FilesMatch>
 <FilesMatch "\.(pl|html?)$">
   Header set Pragma "no-cache"
   Header set Cache-Control "no-cache, must-revalidate, post-check=0, pre-check=0"
   Header set Expires 1
 </FilesMatch>

How to install deflate, expires and headers in ubuntu

 #sudo a2enmod gzip deflate expires headers

Reduce CPU usage of webcrawlers: robots.txt

Ona typical installation just:

 cd /usr/share/koha/opac/htdocs
 sudo nano robots.txt

And add:

 User-agent: *
 Disallow:/cgi-bin/koha/opac-search.pl
 Disallow:/cgi-bin/koha/opac-user.pl
 Disallow:/cgi-bin/koha/opac-reserve.pl
 Disallow:/cgi-bin/koha/opac-authorities-home.pl
 Disallow:/cgi-bin/koha/opac-export.pl
 Disallow:/cgi-bin/koha/opac-showmarc.pl
 Disallow:/cgi-bin/koha/opac-ISBDdetail.pl
 Disallow:/cgi-bin/koha/opac-MARCdetail.pl

Check at <yourserver>/robots.txt

Personal tools