How-To: Server Optimization Guide (2007) (Apache Web Server)

Collapse
This is a sticky topic.
X
X
 
  • Time
  • Show
Clear All
new posts
  • siosios
    g0d!
    Kung Fu Master
    • Oct 2006
    • 13626

    #1

    How-To: Server Optimization Guide (2007) (Apache Web Server)

    Hello,
    Well I'm sure by now most of you have read the Web Server Optimization Guide by Shaw Networks. It came in handy for me when I was first starting out, I reduced my load & memory usage by tonnes. I thought I would make a new thread with an updated How-To.

    Recommended Tools/Programs:
    Putty - Free SSH Client - http://www.putty.nl/download.html
    WinSCP - Free SFTP and SCP Client - http://winscp.net/eng/index.php


    MySQL Optimization:
    BACKUP:
    cp /etc/my.cnf /etc/my.cnf.backup

    Use Pico (pico /etc/my.cnf) or Download via WinSCP for editing,
    Delete everything that is currently in the file and add the following...

    Code:
    Code:
    [mysqld]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    skip-locking
    skip-innodb
    query_cache_limit=8M
    query_cache_size=256M
    query_cache_type=1
    max_connections=500
    max_user_connections=100
    interactive_timeout=60
    wait_timeout=60
    connect_timeout=30
    thread_cache_size=128
    key_buffer=16M
    join_buffer=1M
    max_allowed_packet=16M
    table_cache=1024
    record_buffer=1M
    sort_buffer_size=2M
    read_buffer_size=2M
    max_connect_errors=100
    # Try number of CPU's*2 for thread_concurrency
    thread_concurrency=2
    myisam_sort_buffer_size=64M
    #log-bin
    server-id=1
    
    [mysqldump]
    quick
    max_allowed_packet = 16M
    
    [mysql]
    no-auto-rehash
    
    [isamchk]
    key_buffer = 256M
    sort_buffer_size = 256M
    read_buffer = 2M
    write_buffer = 2M
    
    [myisamchk]
    key_buffer = 256M
    sort_buffer_size = 256M
    read_buffer = 2M
    write_buffer = 2M
    
    [mysqlhotcopy]
    interactive-timeoutTo Save: CTRL-X
    Restart Service: "service mysqld restart" or "service mysql restart" or "/etc/rc.d/init.d/mysql restart"

    HTTP/APACHE Optimization:

    BACKUP:
    cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.backup

    Use Pico (pico /usr/local/apache/conf/httpd.conf) or Download via WinSCP for editing,
    Change the following settings in your httpd.conf...

    Set "Timeout" value to "Timeout 60"
    Set "KeepAlive" to "KeepAlive on"
    Set "KeepAliveTimeout" to "KeepAliveTimeout 3"
    Set "MinSpareServers" to "MinSpareServers 16"
    Set "MaxSpareServers" to "MaxSpareServers 32"
    Set "MaxRequestsPerChild" to "MaxRequestsPerChild 256"
    Set "HostnameLookups" to "HostnameLookups Off"

    Note:
    These settings will not work under all server environments its recommended that you tweak around with the numbers until your web server is running 100% please read Apache documentation before changing any settings so you know what you are changing http://httpd.apache.org/docs/

    To Save: CTRL-X
    Restart Service: "service httpd restart" or "/etc/rc.d/init.d/httpd restart"


    Installing eAccelerator:
    eAccelerator is a further development from mmcache PHP Accelerator & Encoder. It increases performance of PHP scripts by caching them in compiled state, so that the overhead of compiling is almost completely eliminated. http://eaccelerator.net/

    If you run CPanel please visit eAccelerator auto installer - for cPanel : Technical and Security Tutorials : Web Hosting Talk for an auto-installer which will do all the hard work for you.

    Run the following in SSH.

    Code:
    Code:
    cd /
    
    mkdir ea
    
    cd ea
    
    wget [url]http://optusnet.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.bz2[/url]
    
    bunzip2 eaccelerator-0.9.5.tar.bz2
    tar -xvf eaccelerator-0.9.5.tar
    
    cd eaccelerator-0.9.5
    
    export PHP_PREFIX="/usr"
    
    $PHP_PREFIX/bin/phpize
    
    ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
    
    make
    
    make install
    
    mkdir /phpcache
    
    chmod 0777 /phpcache
    Edit your PHP.INI file and at the bottom add...

    Code:
    Code:
    To install as a ZEND extension:
    
    zend_extension="/ea/eaccelerator-0.9.5/modules/eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/phpcache"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    
    OR to install as a PHP extension:
    
    extension="/ea/eaccelerator-0.9.5/modules/eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/phpcache"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    Restart Service: "service httpd restart" or "/etc/rc.d/init.d/httpd restart"

    For a great tutorial on Optimizing host.conf & sysctl.conf visit..


    Common SSH Commands visit..


    How to block an IP using iptables visit..
    We wrote about blocking particular IP addresses with the route command here. If you are already using iptables, or want to start, a better way is to block particular hosts: iptables -I INPUT -s 25.55.55.55 -j DROP This command will simply drop any packet coming from the address 25.55.55.55. To list the chains: iptables -L […]
    ------------------------------------------------

    |W0rd|SexualTurtletara420ת/ύ: Hey there daddy..

    ------------------------------------------------
    \\\ ///
    ( @ @ )
    .....o00o.(_).o00o.....


    ------------------------------------------
Working...