Showing posts with label Apache. Show all posts
Showing posts with label Apache. Show all posts

Tuesday, January 4, 2011

Set up mod_jk and apache2

1. Install mod_jk

apt-get install libapache2-mod-jk

2. Under /etc/apache2/mods-enabled, create jk.conf and add the contents below.

# Sample mod_jk configuration
# for Apache 2
#
# for all commands/options available see the manual
# provided in libapache-mod-jk-doc package.

# The location where mod_jk will find the workers definitions
JkWorkersFile /etc/libapache2-mod-jk/workers.properties

# The location where mod_jk is going to place its log file
JkLogFile /var/log/apache2/mod_jk.log

# The log level:
# - info log will contain standard mod_jk activity (default).
# - warn log will contain non fatal error reports.
# - error log will contain also error reports.
# - debug log will contain all information on mod_jk activity
# - trace log will contain all tracing information on mod_jk activity
JkLogLevel info


# Assign specific URLs to Tomcat. In general the structure of a
# JkMount directive is: JkMount [URL prefix] [Worker name]


# send all requests ending in .jsp to ajp13_worker
# send all requests ending /servlet to ajp13_worker
#JkMount /*/servlet/ ajp13_worker

# JkUnmount directive acts as an opposite to JkMount and blocks access
# to a particular URL. The purpose is to be able to filter out the
# particular content types from mounted context.

# do not send requests ending with .gif to ajp13_worker
#JkUnMount /servlet/*.gif ajp13_worker


# JkMount / JkUnMount directives can also be used inside
# sections of your httpd.conf file.

3. Configure workers.
Under /etc/libapache2-mod-jk, create workers.properties and add the contents below. Normally this file already existed there, what you should do is checking the tomcat-home and jvm path correctly or not.


# workers.properties -
#
# This file is a simplified version of the workers.properties supplied
# with the upstream sources. The jni inprocess worker (not build in the
# debian package) section and the ajp12 (deprecated) section are removed.
#
# As a general note, the characters $( and ) are used internally to define
# macros. Do not use them in your own configuration!!!
#
# Whenever you see a set of lines such as:
# x=value
# y=$(x)\something
#
# the final value for y will be value\something
#
# Normaly all you will need to do is un-comment and modify the first three
# properties, i.e. workers.tomcat_home, workers.java_home and ps.
# Most of the configuration is derived from these.
#
# When you are done updating workers.tomcat_home, workers.java_home and ps
# you should have 3 workers configured:
#
# - An ajp13 worker that connects to localhost:8009
# - A load balancer worker
#
#

# OPTIONS ( very important for jni mode )

#
# workers.tomcat_home should point to the location where you
# installed tomcat. This is where you have your conf, webapps and lib
# directories.
#
workers.tomcat_home=/usr/local/tomcat

#
# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=/usr/lib/jvm/java-6-sun

#
# You should configure your environment slash... ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=/

#
#------ ADVANCED MODE ------------------------------------------------
#---------------------------------------------------------------------
#

#
#------ worker list ------------------------------------------
#---------------------------------------------------------------------
#
#
# The workers that your plugins should create and work with
#
worker.list=ajp13_worker

#
#------ ajp13_worker WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#

#
# Defining a worker named ajp13_worker and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.ajp13_worker.lbfactor=1

#
# Specify the size of the open connection cache.
#worker.ajp13_worker.cachesize

#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
#---------------------------------------------------------------------
#

#
# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# workers.
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13_worker


4.Configure the URI to worker mapping.
for example

ServerAdmin dang@company.net
ServerName example.company.net
DocumentRoot /home/lamp/webroot/nanocycle
JkMount /*.jsp ajp13_worker
JkMount /routecalc* ajp13_worker
JkMount /Logger* ajp13_worker
JkMount /Params* ajp13_worker

Options FollowSymLinks
AllowOverride None


Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


deny from all

DirectoryIndex index.php index.html index.jsp
LogLevel error
CustomLog /var/log/apache2/access.log combined
ServerSignature Off


5.Enable worker in tomcat
Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

config a host for worker, if use localhost, noneed
otherwise need create a new one:

forexample, a virtualhost for nanocylebooking
cause jk port call locally, add a record in host file, to define a local ip for nanocycle, then in worker.properties, connect to nanocycle like locally

nanocycle.cbdweb.net


6. Restart apache,tomcat
# /etc/init.d/apache2 restart

Tuesday, August 31, 2010

Convert from mpm_prefork to mpm_worker using php-cgi in Ubuntu

Installation Steps


1.
install php-cgi package and mpm-prefork

apt-get -u install php5-cgi libapache2-mod-fcgid apache2-mpm-worker

2.
mkdir {WEBROOTFOLDER}/fcgi-bin.d
eg /home/lamp/webroot
mkdir {WEBROOTFOLDER}/fcgi-bin.d/php5-default

ln -s /usr/bin/php5-cgi /home/lamp/webroot/fcgi-bin.d/php5-default/php-fcgi-wrapper





Configuration Steps

1.

Remove mod_php4 / mod_php5 if not already done

# a2dismod php4
# a2dismod php5
2.

Enable mod_actions and mod_fcgid

# a2enmod actions
# a2enmod fcgid
3.

Raise the communication timeout (= maximum execution time) for FCGI applications in /etc/apache2/mods-enabled/fcgid.conf by adding the “IPCCommTimeout” directive


AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock

# Communication timeout: Default value is 20 seconds
IPCCommTimeout 60

# Connection timeout: Default value is 3 seconds

#IPCConnectTimeout 3

4.

Create a new file /etc/apache2/conf.d/php-fcgid.conf:










# Path to php.ini – defaults to /etc/phpX/cgi
DefaultInitEnv PHPRC=/etc/php5/cgi

# Number of PHP childs that will be launched. Leave undefined to let PHP decide.
#DefaultInitEnv PHP_FCGI_CHILDREN 3

# Maximum requests before a process is stopped and a new one is launched
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000

# Define a new handler "php-fcgi" for ".php" files, plus the action that must follow
AddHandler php-fcgi .php
Action php-fcgi /fcgi-bin/php-fcgi-wrapper

# Define the MIME-Type for ".php" files
AddType application/x-httpd-php .php

# Define alias "/fcgi-bin/". The action above is using this value, which means that
# you could run another "php5-cgi" command by just changing this alias
Alias /fcgi-bin/ /var/www/fcgi-bin.d/php5-default/

# Turn on the fcgid-script handler for all files within the alias "/fcgi-bin/"

SetHandler fcgid-script
Options +ExecCGI










5.

Next, create the directory which is chosen by the alias, and put in a symlink to the php5-cgi binary

# mkdir /var/www/fcgi-bin.d/php5-default
# ln -s /usr/bin/php5-cgi /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper
6.

Finally, restart Apache

/etc/init.d/apache2 restart

Thursday, August 5, 2010

Sunday, April 11, 2010

Apache test config syntax

/usr/sbin/apache2ctl -t
add +Includes for directory required SSI