<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEMAQ3Y7fyp7ImA9WhRUGE0.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508</id><updated>2012-01-28T19:07:22.807-08:00</updated><category term="install" /><category term="connector" /><category term="php5" /><category term="winner" /><category term="2009" /><category term="development" /><category term="VirtualBox" /><category term="Polifemo" /><category term="apt-get" /><category term="javafx game" /><category term="ps" /><category term="open source" /><category term="command" /><category term="kill" /><category term="Postgres" /><category term="chrome" /><category term="firefox" /><category term="javafx challenge" /><category term="download" /><category term="css" /><category term="University" /><category term="apache tomcat" /><category term="script" /><category term="gimp" /><category term="windows" /><category term="Flex" /><category term="eclipse" /><category term="web server" /><category term="PermGen space failure" /><category term="mod_jk" /><category term="rar" /><category term="layout manager" /><category term="javafx" /><category term="tomcat 7" /><category term="diego benna" /><category term="jsp" /><category term="ssh" /><category term="memory" /><category term="website" /><category term="earn" /><category term="AdSense" /><category term="java 6" /><category term="interview" /><category term="JDK" /><category term="running" /><category term="3D" /><category term="virtual host" /><category term="design" /><category term="MySql" /><category term="ubuntu" /><category term="project" /><category term="DBMS" /><category term="Apache2" /><category term="Applet" /><category term="unity" /><title>Diego Benna's Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://diegobenna.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>59</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/DiegoBenna" /><feedburner:info uri="diegobenna" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C04ARHw_eSp7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-2670920511599261949</id><published>2011-10-07T14:12:00.001-07:00</published><updated>2011-10-07T14:12:25.241-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T14:12:25.241-07:00</app:edited><title>Install GUI in Ubuntu Server</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
We have already discussed how to &lt;a href="http://www.ubuntugeek.com/step-by-step-ubuntu-904-jaunty-lamp-server-setup.html" target="_blank"&gt;install ubuntu 9.04 LAMP server&lt;/a&gt; .If you are a new user and not familiar with command prompt you can install GUI for your ubuntu LAMP server using the 2 options&lt;br /&gt;
&lt;br /&gt;
&lt;span id="more-1369"&gt;&lt;/span&gt;&lt;br /&gt;

1) Install desktop Environment&lt;br /&gt;

2) Install Webmin&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
1) Install desktop Environment&lt;/strong&gt;&lt;br /&gt;

First you nee to make sure you have enabled Universe and multiverse 
repositories in /etc/apt/sources.list file once you have enable you need
 to use the following command to install GUI&lt;br /&gt;

&lt;blockquote&gt;
sudo apt-get update&lt;/blockquote&gt;
&lt;blockquote&gt;
sudo apt-get install ubuntu-desktop&lt;/blockquote&gt;
The above command will install GNOME desktop&lt;br /&gt;

If you wan to install a graphical desktop manager without some of the
 desktop addons like Evolution and OpenOffice, but continue to use the 
server flavor kernel use the following command&lt;br /&gt;

&lt;blockquote&gt;
sudo aptitude  install --without-recommends ubuntu-desktop&lt;/blockquote&gt;
If you want to install light weight desktop install xfce using the following command&lt;br /&gt;

&lt;blockquote&gt;
sudo apt-get install xubuntu-desktop&lt;/blockquote&gt;
If you want to install KDE desktop use the following command&lt;br /&gt;

&lt;blockquote&gt;
sudo apt-get install kubuntu-desktop&lt;/blockquote&gt;
&lt;strong&gt;2) Install Webmin in Ubuntu&lt;/strong&gt;&lt;br /&gt;

Webmin is a web-based interface for system administration for Unix. 
Using any modern web browser, you can setup user accounts, Apache, DNS, 
file sharing and much more. Webmin removes the need to manually edit 
Unix configuration files like /etc/passwd, and lets you manage a system 
from the console or remotely.Currently There is no Webmin package in the
 Ubuntu repositories.This tutorial will explain how to Install Webmin in
 Ubuntu Jaunty&lt;br /&gt;

You can install webmin for your server web interface to configure 
apache2,mysql,FTp servers and many more.Now we will see how to install 
webmin in Ubuntu 9.04&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Preparing your system&lt;/strong&gt;&lt;br /&gt;

First you need to install the following packages&lt;br /&gt;

&lt;blockquote&gt;
sudo aptitude install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl&lt;/blockquote&gt;
Now download the latest webmin using the following command or from &lt;a href="http://www.webmin.com/download.html" target="_blank"&gt;here &lt;/a&gt;&lt;br /&gt;

&lt;blockquote&gt;
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.470_all.deb&lt;/blockquote&gt;
Now we have webmin_1.470_all.deb package install this package using the following command&lt;br /&gt;

&lt;blockquote&gt;
sudo dpkg -i webmin_1.470_all.deb&lt;/blockquote&gt;
This will complete the installation.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Using the Webmin APT repository&lt;/strong&gt;&lt;br /&gt;

If you like to install and update Webmin via APT, edit the /etc/apt/sources.list file on your system&lt;br /&gt;

&lt;blockquote&gt;
sudo vi /etc/apt/sources.list&lt;/blockquote&gt;
add the line&lt;br /&gt;

&lt;blockquote&gt;
deb http://download.webmin.com/download/repository sarge contrib&lt;/blockquote&gt;
Save and exit the file&lt;br /&gt;

You should also fetch and install my GPG key with which the repository is signed, with the commands : cd /root&lt;br /&gt;

&lt;blockquote&gt;
wget http://www.webmin.com/jcameron-key.asc&lt;/blockquote&gt;
&lt;blockquote&gt;
sudo apt-key add jcameron-key.asc&lt;/blockquote&gt;
You will now be able to install with the commands&lt;br /&gt;

&lt;blockquote&gt;
sudo apt-get update&lt;/blockquote&gt;
&lt;blockquote&gt;
sudo apt-get install webmin&lt;/blockquote&gt;
All dependencies should be resolved automatically.&lt;br /&gt;

Ubuntu in particular don’t allow logins by the root user by default. 
However, the user created at system installation time can use sudo to 
switch to root. Webmin will allow any user who has this sudo capability 
to login with full root privileges.&lt;br /&gt;
&lt;br /&gt;

Now you need to open your web browser and enter the following&lt;br /&gt;
&lt;br /&gt;

https://your-server-ip:10000/&lt;br /&gt;
&lt;br /&gt;

Now you should see similar to the following Screen&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" class="alignnone" height="166" src="http://www.ubuntugeek.com/images/lamp9/41.png" width="393" /&gt;&lt;br /&gt;

&lt;br /&gt;
After login if you want to configure Apache,Mysql server you need to 
click on Servers on your lefthand side you should many servers are ready
 to configure&lt;br /&gt;

This is very Easy to configure most of the servers and Enjoy your new Ubuntu Jaunty LAMP Server.&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-2670920511599261949?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/1DaRHBSdAmU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/2670920511599261949/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/install-gui-in-ubuntu-server.html#comment-form" title="15 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/2670920511599261949?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/2670920511599261949?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/1DaRHBSdAmU/install-gui-in-ubuntu-server.html" title="Install GUI in Ubuntu Server" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>15</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/install-gui-in-ubuntu-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08ARXs5fCp7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-8933995061978696655</id><published>2011-10-07T14:10:00.001-07:00</published><updated>2011-10-07T14:10:44.524-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T14:10:44.524-07:00</app:edited><title>Bandwidth Monitoring Tools For Linux</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Bandwidth in computer networking refers to the data rate supported by a 
network connection or interface. One most commonly expresses bandwidth 
in terms of bits per second (bps). The term comes from the field of 
electrical engineering, where bandwidth represents the total distance or
 range between the highest and lowest signals on the communication 
channel (band).&lt;br /&gt;
&lt;br /&gt;

&lt;span id="more-142"&gt;&lt;/span&gt;Bandwidth represents the capacity of the 
connection. The greater the capacity, the more likely that greater 
performance will follow, though overall performance also depends on 
other factors, such as latency.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Bandwidthd&lt;/strong&gt;&lt;br /&gt;

BandwidthD tracks usage of TCP/IP network subnets and builds html 
files with graphs to display utilization. Charts are built by individual
 IPs, and by default display utilization over 2 day, 8 day, 40 day, and 
400 day periods. Furthermore, each ip address’s utilization can be 
logged out at intervals of 3.3 minutes, 10 minutes, 1 hour or 12 hours 
in cdf format, or to a backend database server. HTTP, TCP, UDP, ICMP, 
VPN, and P2P traffic are color coded.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 2.0.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://bandwidthd.sourceforge.net/" target="_blank"&gt;http://bandwidthd.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Bmon&lt;/strong&gt;&lt;br /&gt;

bmon is a portable bandwidth monitor and rate estimator running on 
various operating systems. It supports various input methods for 
different architectures. Various output modes exist including an 
interactive curses interface,lightweight HTML output but also formatable
 ASCII output.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Bwbar&lt;/strong&gt;&lt;br /&gt;

bwbar is a small C-based program for Linux-based machines which 
produces bandwidth usage statistics for a network interface. It was 
originally written by H. Peter Anvin, and I (Brian Towne) modified it 
somewhat to better suit my needs. The original program was released 
under the GPL. A number of people have asked for the modified program 
and its source, so I have created this page.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.2.3&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;bwm&lt;/strong&gt;&lt;br /&gt;

This is a very tiny bandwidth monitor (not X11). Can monitor up to 16 interfaces in the in the same time, and shows totals too.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.1.0&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;bwm-ng&lt;/strong&gt;&lt;br /&gt;

small and simple console-based bandwidth monitor.Bandwidth Monitor NG
 is a small and simple console-based live bandwidth monitor.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.6&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.gropp.org/?id=projects&amp;amp;sub=bwm-ng" target="_blank"&gt;http://www.gropp.org/?id=projects&amp;amp;sub=bwm-ng&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Cacti&lt;/strong&gt;&lt;br /&gt;

Cacti is a complete network graphing solution designed to harness the
 power of RRDTool’s data storage and graphing functionality. Cacti 
provides a fast poller, advanced graph templating, multiple data 
acquisition methods, and user management features out of the box. All of
 this is wrapped in an intuitive, easy to use interface that makes sense
 for LAN-sized installations up to complex networks with hundreds of 
devices.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.8.7e&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://cacti.net/" target="_blank"&gt;http://cacti.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;cbm&lt;/strong&gt;&lt;br /&gt;

cbm — the color bandwidth meter — is a small program to display the traffic currently flowing through your network devices.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.1&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;dstat&lt;/strong&gt;&lt;br /&gt;

Dstat is a versatile replacement for vmstat, iostat, netstat, nfsstat
 and ifstat. Dstat overcomes some of their limitations and adds some 
extra features, more counters and flexibility. Dstat is handy for 
monitoring systems during performance tuning tests, benchmarks or 
troubleshooting.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.7.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://dag.wieers.com/home-made/dstat/" target="_blank"&gt;http://dag.wieers.com/home-made/dstat/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;EtherApe&lt;/strong&gt;&lt;br /&gt;

EtherApe is a graphical network monitor for Unix modeled after 
etherman. Featuring link layer, ip and TCP modes, it  displays network 
activity graphically. Hosts and links change in size with traffic. Color
 coded protocols display.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.9.9&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :-&lt;a href="http://etherape.sourceforge.net/" target="_blank"&gt; http://etherape.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;gdesklets&lt;/strong&gt;&lt;br /&gt;

gDesklets is a system for bringing mini programs (desklets), such as 
weather forecasts, news tickers, system information displays, or music 
player controls, onto your desktop, where they are sitting there in a 
symbiotic relationship of eye candy and usefulness. The possibilities 
are really endless and they are always there to serve you whenever you 
need them, just one key-press away. The system is not restricted to one 
desktop environment, but currently works on most of the modern Unix 
desktops (including GNOME, KDE, Xfce).&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.36.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.gdesklets.de/" target="_blank"&gt;http://www.gdesklets.de/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;GKrellM&lt;/strong&gt;&lt;br /&gt;

GKrellM is a single process stack of system monitors which supports 
applying themes to match its appearance to your window manager, Gtk, or 
any other theme.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 2.3.4&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html" target="_blank"&gt;http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;ipband&lt;/strong&gt;&lt;br /&gt;

ipband is a pcap based IP traffic monitor. It tallies per-subnet 
traffic and bandwidth usage and starts detailed logging if specified 
threshold for the specific subnet is exceeded. If traffic has been high 
for a certain period of time, the report for that subnet is generated 
which can be appended to a file or e-mailed. When bandwidth usage drops 
below the threshold, detailed logging for the subnet is stopped and 
memory is freed.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.8.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page &lt;/strong&gt;:- &lt;a href="http://ipband.sourceforge.net/" target="_blank"&gt;http://ipband.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;iftop&lt;/strong&gt;&lt;br /&gt;

iftop does for network usage what top does for CPU usage. It listens 
to network traffic on a named interface and  displays a table of current
 bandwidth usage by pairs of hosts. Handy for answering the question 
“why is our ADSL link so slow”.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.17&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.ex-parrot.com/pdw/iftop/" target="_blank"&gt;http://www.ex-parrot.com/pdw/iftop/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;iperf&lt;/strong&gt;&lt;br /&gt;

Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning
 of various parameters and UDP characteristics. Iperf reports bandwidth,
 delay jitter, datagram loss.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;ipfm&lt;/strong&gt;&lt;br /&gt;

IP Flow Meter (IPFM) is a bandwidth analysis tool, that measures how much bandwidth specified hosts use on their Internet link.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.11.5&lt;/strong&gt;&lt;br /&gt;

Project Home Page :- &lt;a href="http://robert.cheramy.net/ipfm/" target="_blank"&gt;http://robert.cheramy.net/ipfm/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;ifstat&lt;/strong&gt;&lt;br /&gt;

ifstat is a tool to report network interfaces bandwith just like vmstat/iostat do for other system counters.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.1&lt;/strong&gt;&lt;br /&gt;

Project Home Page :- &lt;a href="http://gael.roualland.free.fr/ifstat/" target="_blank"&gt;http://gael.roualland.free.fr/ifstat/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;ibmonitor&lt;/strong&gt;&lt;br /&gt;

ibmonitor is an interactive linux console application which shows bandwidth consumed and total data transferred on all&lt;br /&gt;
interfaces.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.4 &lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://ibmonitor.sourceforge.net/" target="_blank"&gt;http://ibmonitor.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;ipaudit&lt;/strong&gt;&lt;br /&gt;

IPAudit monitors network activity on a network by host, protocol and 
port.IPAudit listens to a network device in promiscuous mode, and 
records every connection between two ip addresses. A unique connection 
is determined by the ip&lt;br /&gt;
addresses of the two machines, the protocol used between them, and the port numbers (if they are communicating via udp or tcp).&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.95&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://ipaudit.sourceforge.net/" target="_blank"&gt;http://ipaudit.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;IPTraf&lt;/strong&gt;&lt;br /&gt;

IPTraf is a console-based network statistics utility for Linux. It 
gathers a variety of figures such as TCP connection packet and byte 
counts, interface statistics and activity indicators, TCP/UDP traffic 
breakdowns, and LAN station packet and byte counts.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 3.0.0&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://iptraf.seul.org/" target="_blank"&gt;http://iptraf.seul.org/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;IFStatus&lt;/strong&gt;&lt;br /&gt;

IFStatus was developed for Linux users that are usually in console 
mode. It is a simple, easy to use program for displaying commonly needed
 / wanted statistics in real time about ingoing and outgoing traffic of 
multiple network interfaces that is usually hard to find, with a simple 
and effecient view. It is the substitute for PPPStatus and EthStatus 
projects.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.1.0&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;jnettop&lt;/strong&gt;&lt;br /&gt;

Jnettop is a traffic visualiser, which captures traffic going through
 the host it is running from and displays streams sorted by bandwidth 
they use.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.13.0&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://jnettop.kubs.info/wiki/" target="_blank"&gt;http://jnettop.kubs.info/wiki/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;MRTG&lt;/strong&gt;&lt;br /&gt;

The Multi Router Traffic Grapher (MRTG) is a tool to monitor the 
traffic load on network links. MRTG generates HTML pages containing PNG 
images which provide a LIVE visual representation of this traffic.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 2.16.3&lt;/strong&gt;&lt;br /&gt;

Project Home Page :- &lt;a href="http://oss.oetiker.ch/mrtg/" target="_blank"&gt;http://oss.oetiker.ch/mrtg/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;moodss &lt;/strong&gt;&lt;br /&gt;

moodss is a graphical monitoring application. It is modular so that 
the code accessing the monitored objects is completely separate from the
 application core. The core takes care of managing modules (loading and 
unloading),displaying modules data through sortable tables and diverse 
graphical viewers, handling user set threshold conditions with email 
alerts, recording and browsing data history from a database.moodss can 
even predict the future, using sophisticated statistical methods and 
artificial neural networks, and therefore be used for capacity planning.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 21.5&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://moodss.sourceforge.net/" target="_blank"&gt;http://moodss.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;monitord&lt;/strong&gt;&lt;br /&gt;

A lightweight (distributed?) network security monitor for 
TCP/IP+Ethernet LANs. It will capture certain network events and record 
them in a relational database. The recorded data will be available for 
analysis through a CGI based interface.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 4.0&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://sourceforge.net/projects/monitord/" target="_blank"&gt;http://sourceforge.net/projects/monitord/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Netmrg&lt;/strong&gt;&lt;br /&gt;

NetMRG is a tool for network monitoring, reporting, and graphing. Based on RRDTOOL, the best of open source graphing&lt;br /&gt;
systems, NetMRG is capable of creating graphs of any parameter of your network.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.20&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.netmrg.net/" target="_blank"&gt;http://www.netmrg.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;nload&lt;/strong&gt;&lt;br /&gt;

nload is a console application which monitors network traffic and 
bandwidth usage in real time. It visualizes the in-and outgoing traffic 
using two graphs and provides additional info like total amount of 
transfered data and min/max network usage.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.7.2&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.roland-riegel.de/nload/index.html" target="_blank"&gt;http://www.roland-riegel.de/nload/index.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;ntop&lt;/strong&gt;&lt;br /&gt;

ntop shows the current network usage. It displays a list of hosts 
that are currently using the network and reports information concerning 
the IP (Internet Protocol) and Fibre Channel (FC) traffic generated by 
each host. The traffic is sorted according to host and protocol. Default
 protocol list (this is user configurable).&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 3.3.10&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.ntop.org/" target="_blank"&gt;http://www.ntop.org&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;netspeed &lt;/strong&gt;&lt;br /&gt;

Netspeed is just a little GNOME-applet that shows how much traffic 
occurs on a specified network device (for example eth0). You get the 
best impression of it, if you look at the screenshots below.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.14&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Netwatch&lt;/strong&gt;&lt;br /&gt;

Netwatch is a Linux program created to aid in monitoring Network 
Connections. It is based on a program called “statnet” but has been 
substantially modified for its Ethernet emphasis. It is a dynamic 
program which displays the Ethernet status based each the connection’s 
activity. It has the capability of monitoring hundreds of site 
statistics simultaneously. The connection’s port number (Well Known 
Service) and destination address are available as well. There are 
options which allow router statistics to be measured on simple networks 
(with one router). External network communication is counted and 
transfer rates are displayed.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.3.0-1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.slctech.org/%7Emackay/netwatch.html" target="_blank"&gt;http://www.slctech.org/~mackay/netwatch.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;NOCOL&lt;/strong&gt;&lt;br /&gt;

NOCOL is a popular system and network monitoring (network management) software that runs on Unix systems and can&lt;br /&gt;
monitor network and system devices. It uses a very simple architecture 
and is very flexible for adding new network management modules&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 4.3.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.netplex-tech.com/nocol/" target="_blank"&gt;http://www.netplex-tech.com/nocol/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;NeTraMet&lt;/strong&gt;&lt;br /&gt;

NeTraMet is an open-source (GPL) implementation of the RTFM architecture for Network Traffic Flow Measurement,&lt;br /&gt;
developed and supported by Nevil Brownlee at the University of Auckland. Nevil also developed a version of NeTraMet&lt;br /&gt;
which uses the CoralReef library to read packet headers. This ‘CoralReef NeTraMet meter’ can work with any CoralReef&lt;br /&gt;
data source; it has been tested on both CAIDA and NLANR trace files, and on DAG and Apptel ATM interface cards.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 43&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://freshmeat.net/projects/netramet/" target="_blank"&gt;http://freshmeat.net/projects/netramet/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;NetPIPE&lt;/strong&gt;&lt;br /&gt;

NetPIPE is a protocol independent performance tool that visually represents the network performance under a variety of&lt;br /&gt;
conditions. It performs simple ping-pong tests, bouncing messages of increasing size between two processes, whether&lt;br /&gt;
across a network or within an SMP system. Message sizes are chosen at 
regular intervals, and with slight perturbations, to provide a complete 
test of the communication system. Each data point involves many 
ping-pong tests to provide an accurate timing. Latencies are calculated 
by dividing the round trip time in half for small messages ( &amp;lt;64 
Bytes ).&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 3.7.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.scl.ameslab.gov/netpipe/" target="_blank"&gt;http://www.scl.ameslab.gov/netpipe/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;netperf&lt;/strong&gt;&lt;br /&gt;

Netperf is a benchmark that can be use to measure various aspect of networking performance. The primary foci are bulk&lt;br /&gt;
(aka unidirectional) data transfer and request/response performance 
using either TCP or UDP and the Berkeley Sockets interface. As of this 
writing, the tests available either unconditionally or conditionally&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 2.4.5&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.netperf.org/netperf/" target="_blank"&gt;http://www.netperf.org/netperf/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;potion&lt;/strong&gt;&lt;br /&gt;

This is a console utility which will listen on an interface using 
libpcap, aggregate the traffic into flows and display the top (as many 
as can fit on your screen) flows with their average throughput. A flow 
is identified ip protocol, source ip, source port, destination ip, 
destination port, and type of service flag.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.0.4&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;pktstat&lt;/strong&gt;&lt;br /&gt;

Display a real-time list of active connections seen on a network 
interface, and how much bandwidth is being used by what. Partially 
decodes HTTP and FTP protocols to show what filename is being 
transferred. X11 application names are also shown. Entries hang around 
on the screen for a few seconds so you can see what just happened. Also 
accepts filter expressions á la tcpdump.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.8.4&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.adaptive-enterprises.com.au/%7Ed/software/pktstat/" target="_blank"&gt;http://www.adaptive-enterprises.com.au/~d/software/pktstat/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;RTG&lt;/strong&gt;&lt;br /&gt;

RTG is a flexible, scalable, high-performance SNMP statistics 
monitoring system. It is designed for enterprises and service providers 
who need to collect time-series SNMP data from a large number of targets
 quickly. All collected data is inserted into a relational database that
 provides a common interface for applications to generate complex 
queries and reports. RTG includes utilities that generate configuration 
and target files, traffic reports, 95th percentile reports and graphical
 data plots. These utilities may be used to produce a web-based 
interface to the data.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.7.4&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://rtg.sourceforge.net/" target="_blank"&gt;http://rtg.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;speedometer&lt;/strong&gt;&lt;br /&gt;

Monitor network traffic or speed/progress of a file transfer. The 
program can be used for cases like: how long it will take for my 38MB 
transfer to finish, how quickly is another transfer going, How fast is 
the upstream on this ADSL line and how fast can I write data to my 
filesystem.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 2.6&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://excess.org/speedometer/" target="_blank"&gt;http://excess.org/speedometer/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Spong&lt;/strong&gt;&lt;br /&gt;

Spong is a simple system-monitoring package written in Perl. It 
features client based monitoring, monitoring of network services, 
results displayed via the Web or console, history of problems, and 
flexible messaging when problems occur.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 2.7.6&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://spong.sourceforge.net/" target="_blank"&gt;http://spong.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;slurm&lt;/strong&gt;&lt;br /&gt;

slurm started as a pppstatus port to FreeBSD. As I ripped off several functions&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.3.3&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;SNIPS&lt;/strong&gt;&lt;br /&gt;

SNIPS (System &amp;amp; Network Integrated Polling Software) is a system 
and network monitoring software that runs on Unix systems and can 
monitor network and system devices. It is capable of monitoring DNS, 
NTP, TCP or web ports, host performance, syslogs, radius servers, BGP 
peers, etc. New monitors can be added easily (via a C or Perl API).&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.1&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.navya.com/software/snips/" target="_blank"&gt;http://www.navya.com/software/snips/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;tcpflow&lt;/strong&gt;&lt;br /&gt;

tcpflow is a program that captures data transmitted as part of TCP connections (flows), and stores the data in a way&lt;br /&gt;
that is convenient for protocol analysis or debugging. A program like tcpdump shows a summary of packets seen on the&lt;br /&gt;
wire, but usually doesn’t store the data that’s actually being 
transmitted. In contrast, tcpflow reconstructs the actual data streams 
and stores each flow in a separate file for later analysis. tcpflow 
understands TCP sequence numbers and will correctly reconstruct data 
streams regardless of retransmissions or out-of-order delivery.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.21&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://www.circlemud.org/%7Ejelson/software/tcpflow/" target="_blank"&gt;http://www.circlemud.org/~jelson/software/tcpflow/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;vnstat&lt;/strong&gt;&lt;br /&gt;

vnStat is a network traffic monitor for Linux that keeps a log of 
daily network traffic for the selected interface(s).vnStat isn’t a 
packet sniffer. The traffic information is analyzed from the /proc 
-filesystem, so vnStat can be used without root permissions. However at 
least a 2.2.x kernel is required.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 1.10&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://humdi.net/vnstat/" target="_blank"&gt;http://humdi.net/vnstat/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;WMND&lt;/strong&gt;&lt;br /&gt;

Shows a graph of incoming/outgoing traffic, activity indicators for 
rx/tx and current/maximum rate for rx/tx in bytes or packets.Tailored 
for use with WindowMaker, it will as well work with any other window 
manager though.&lt;br /&gt;

&lt;strong&gt;Current Stable Version :- 0.4.13&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Project Home Page&lt;/strong&gt; :- &lt;a href="http://dockapps.org/file.php/id/178" target="_blank"&gt;http://dockapps.org/file.php/id/178&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-8933995061978696655?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/oK09Kmfr7Fk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/8933995061978696655/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/bandwidth-monitoring-tools-for-linux.html#comment-form" title="9 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/8933995061978696655?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/8933995061978696655?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/oK09Kmfr7Fk/bandwidth-monitoring-tools-for-linux.html" title="Bandwidth Monitoring Tools For Linux" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/bandwidth-monitoring-tools-for-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHQH0zeCp7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-3383493159254307691</id><published>2011-10-07T14:07:00.001-07:00</published><updated>2011-10-07T14:07:11.380-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T14:07:11.380-07:00</app:edited><title>Speed Up Firefox web browser</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Mozilla Firefox is a graphical web browser developed by the Mozilla 
Corporation. Started as a fork of the browser component (Navigator) of 
the Mozilla Application Suite, Firefox has replaced the Mozilla Suite as
 the flagship product of the Mozilla project, stewarded by the Mozilla 
Foundation and a large community of external contributors.&lt;br /&gt;
&lt;br /&gt;

&lt;span id="more-92"&gt;&lt;/span&gt;Mozilla Firefox is a cross-platform 
browser, providing support for various versions of Microsoft Windows, 
Mac OS X, and Linux. Although not officially released for certain 
operating systems, the freely available source code works for many other
 operating systems, including FreeBSD,OS/2, Solaris, SkyOS, BeOS and 
more recently, Windows XP Professional x64 Edition.&lt;br /&gt;
&lt;br /&gt;

I am providing some Very Useful Tips to speedup your Firefox.&lt;br /&gt;
&lt;br /&gt;

In your location bar, type &lt;strong&gt;about:config&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

Once it Opens You should see similar to the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/1.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip1&lt;/strong&gt;&lt;br /&gt;

In the filter bar type &lt;strong&gt;network.http.pipelining&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

You should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/2.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Normally it says ” false ” under value field , Double click it so it becomes ” true “.&lt;br /&gt;

Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/3.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip2&lt;/strong&gt;&lt;br /&gt;

In the filter bar again and type &lt;strong&gt;network.http.pipelining.maxrequests&lt;/strong&gt;&lt;br /&gt;

Once it Opens You should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/4.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Default it says 4 under value field and you need to change it to 8&lt;br /&gt;

Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/5.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip3&lt;/strong&gt;&lt;br /&gt;

Go to the filter bar again and type &lt;strong&gt;network.http.proxy.pipelining&lt;/strong&gt;&lt;br /&gt;

Once it Opens You should see similar to the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/6.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Normally it says ” false ” under value field , Double click it so it becomes ” true “.&lt;br /&gt;

Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/7.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip4&lt;/strong&gt;&lt;br /&gt;

Go to the filter bar again and type &lt;strong&gt;network.dns.disableIPv6&lt;/strong&gt;&lt;br /&gt;

Once it Opens You should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/8.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Normally it says ” false ” under value field , Double click it so it becomes ” true “.&lt;br /&gt;

Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/9.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip5&lt;/strong&gt;&lt;br /&gt;

Go to the filter bar again and type &lt;strong&gt;plugin.expose_full_path&lt;/strong&gt;&lt;br /&gt;

Once it Opens You should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/10.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Normally it says ” false ” under value field , Double click it so it becomes ” true “.&lt;br /&gt;

Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/11.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip6&lt;/strong&gt;&lt;br /&gt;

Now you need to Create new Preference name with interger value for this got to Right click -&amp;gt; New -&amp;gt; Integer&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/12.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once it opens you should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/13.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Here you need to type &lt;strong&gt;nglayout.initialpaint.delay&lt;/strong&gt; and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/14.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Now you need to enter 0 in value filed and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/15.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/16.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip7&lt;/strong&gt;&lt;br /&gt;

Now you need to Create one more Preference name with interger value for this got to Right click -&amp;gt; New -&amp;gt; Integer&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/12.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once it opens you should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/13.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Here you need to type &lt;strong&gt;content.notify.backoffcount&lt;/strong&gt; and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/17.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Now you need to enter 5 in value filed and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/18.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/19.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Tip8&lt;/strong&gt;&lt;br /&gt;

Now you need to Create one more Preference name with interger value for this got to Right click -&amp;gt; New -&amp;gt; Integer&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/12.png" /&gt;&lt;br /&gt;

&amp;nbsp; &lt;br /&gt;
Once it opens you should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/13.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Here you need to type ui.submenuDelay and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/20.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Now you need to enter 0 in value filed and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/21.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once you finished this you should see the following screen.&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.ubuntugeek.com/images/firefox/22.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Some more Tweaks&lt;/strong&gt;&lt;br /&gt;

Enable the spellchecker for inputfields and textareas (default is textareas only)&lt;br /&gt;

layout.spellcheckDefault=2&lt;br /&gt;

Open lastfm://-links directly in amarok&lt;br /&gt;

network.protocol-handler.app.lastfm=amarok&lt;br /&gt;
network.protocol-handler.external.lastfm=true&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Firefox Memory Leak Fix&lt;/strong&gt;&lt;br /&gt;

Open a new tab. Type “about:config” without quotes into the address bar and hit enter/click Go.&lt;br /&gt;

&lt;br /&gt;
Right-click anywhere, select New, then Integer. In the dialog prompt that appears, type:&lt;br /&gt;

browser.cache.memory.capacity&lt;br /&gt;

Click OK. Another dialog prompt will appear. This is where you decide
 how much memory to allocate to Firefox. This depends on how much RAM 
your computer has, but generally you don’t want to allocate too little 
(under 8MB), but if you allocate too much, you might as well not do 
this. A good recommended setting is 16MB. If you want 16MB, enter this 
value into the dialog prompt:&lt;br /&gt;
&lt;br /&gt;

16384&lt;br /&gt;

(Why 16384 instead of 16000? Because computers use base-12 counting. 
Thus 16 megabytes = 16384 bytes. Likewise, if you want to double that 
and allocate 32MB, you’d enter 32768.)&lt;br /&gt;

Click OK to close the dialog box, then close all instances of Firefox
 and restart. If your Firefox still uses the same amount of memory, give
 it a few minutes and it should slowly clear up. If that fails, try a 
system reboot.&lt;br /&gt;
&lt;br /&gt;

Now your Firefox will now be 3 - 30 times faster in loading pages.&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-3383493159254307691?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/QxiIN4n0D8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/3383493159254307691/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/speed-up-firefox-web-browser.html#comment-form" title="12 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/3383493159254307691?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/3383493159254307691?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/QxiIN4n0D8c/speed-up-firefox-web-browser.html" title="Speed Up Firefox web browser" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/speed-up-firefox-web-browser.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCSXs8cSp7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-858329959502983338</id><published>2011-10-07T14:04:00.001-07:00</published><updated>2011-10-07T14:04:28.579-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T14:04:28.579-07:00</app:edited><title>Mount and Unmout ISO images without burning them</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Some times you want to use iSO images without burning them.If you don’t 
want to waste your CD’s/DVD’s here is the simple possible solutions 
using these tips you can mount and unmount ISO images without burning 
them.&lt;br /&gt;
&lt;br /&gt;

&lt;span id="more-33"&gt;&lt;/span&gt;I know two possible solutions:&lt;br /&gt;

1) Using Nautilus Scripts&lt;br /&gt;

2) Using kernel loop module&lt;br /&gt;
&lt;br /&gt;

Now we will see each one in detailed&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Using Nautilus Scripts&lt;/strong&gt;&lt;br /&gt;

I am taking this tip from &lt;a href="http://www.ubuntuforums.org/showthread.php?t=87369&amp;amp;page=3" target="_blank"&gt;here&lt;/a&gt; first you need to download two scripts for mount iso images download from &lt;a href="http://www.debianadmin.com/images/iso/mount.sh" target="_blank"&gt;here&lt;/a&gt; for unmount iso images download from &lt;a href="http://www.debianadmin.com/images/iso/unmount.sh" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;

Once you have these two scripts you need to change the permissions using the following commands&lt;br /&gt;
&lt;br /&gt;

sudo chmod +x /home/username/mount.sh&lt;br /&gt;

sudo chmod +x /home/username/unmount.sh&lt;br /&gt;
&lt;br /&gt;

Now you need to copy them nautilus scripts&lt;br /&gt;
&lt;br /&gt;

sudo mv /home/username/mount.sh ~/.gnome2/nautilus-scripts/&lt;br /&gt;

sudo mv /home/username/unmount.sh ~/.gnome2/nautilus-scripts/&lt;br /&gt;
&lt;br /&gt;

That’s it now you are ready for mounting and unmounting your ISO images.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;Mount ISO Image&lt;/strong&gt;&lt;br /&gt;

Now i have one ISO image if you want to mount you need to right click and select scripts ---&amp;gt; mount-iso&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/0.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Now it will prompt for root password and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/1.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
You can see the Mounter notification like the following&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/2.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Here is the Successfully mounted message if you want to open this one click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/3.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
This shows you available contents in mounted ISO image&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/4.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Unmount ISO Image&lt;/strong&gt;&lt;br /&gt;

Now i have one ISO image if you want to mount you need to right click and select scripts---&amp;gt;unmount-iso&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/5.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Here is the Successfully Unmounted message&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/iso/6.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Using loop Kernel Module&lt;/strong&gt;&lt;br /&gt;

First you need to make the directory to put the ISO into using the following command&lt;br /&gt;
&lt;br /&gt;

sudo mkdir /media/isoimage&lt;br /&gt;
&lt;br /&gt;

Now you need to add the loop module to your kernel.&lt;br /&gt;

What kernel loop module does?&lt;br /&gt;

I want to give brief introduction to kernel loop module.Using the 
module loop it is possible to mount a filesystem file. squashfs is a 
“loop” with (de)compression (Compressed Loopback Device) and it is 
possible to mount a compressed filesystem like a block device and 
seamlessly decompress its data while accessing it.&lt;br /&gt;

Use the following command to load loop module&lt;br /&gt;

sudo modprobe loop&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Mount ISO Image&lt;/strong&gt;&lt;br /&gt;

If you want to mount you need to use the following command&lt;br /&gt;
&lt;br /&gt;

sudo mount debianetch.iso /media/isoimage/ -t iso9660 -o loop&lt;br /&gt;
&lt;br /&gt;

In the above command you can replace debianetch.iso to your own iso image.&lt;br /&gt;

Now you should have your iso file mounted, and accessible from your desktop.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Unmount ISO Image&lt;/strong&gt;&lt;br /&gt;

Unmount ISO Image Using the following command&lt;br /&gt;

sudo umount /media/isoimage&lt;br /&gt;

&lt;center&gt;

&lt;ins style="border: none; display: inline-table; height: 280px; margin: 0; padding: 0; position: relative; visibility: visible; width: 336px;"&gt;&lt;ins id="aswift_4_anchor" style="border: none; display: block; height: 280px; margin: 0; padding: 0; position: relative; visibility: visible; width: 336px;"&gt;&lt;br /&gt;&lt;/ins&gt;&lt;/ins&gt;
&lt;/center&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-858329959502983338?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/hkuhECr3aJg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/858329959502983338/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/mount-and-unmout-iso-images-without.html#comment-form" title="11 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/858329959502983338?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/858329959502983338?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/hkuhECr3aJg/mount-and-unmout-iso-images-without.html" title="Mount and Unmout ISO images without burning them" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>11</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/mount-and-unmout-iso-images-without.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBQnwyfCp7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-5705928304246954912</id><published>2011-10-07T14:02:00.001-07:00</published><updated>2011-10-07T14:02:33.294-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T14:02:33.294-07:00</app:edited><title>Share your Ubuntu Desktop Using Remote Desktop</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
vino is VNC server for GNOME.VNC is a protocol that allows remote 
display of a user’s desktop. This package provides a VNC server that 
integrates with GNOME, allowing you to export your running desktop to 
another computer for remote use or diagnosis.&lt;br /&gt;

&lt;span id="more-15"&gt;&lt;/span&gt;By default ubuntu will come with 
vino-server so it is very easy to configure to enable remote desktop 
sharing in your ubuntu machine.If you want to access ubuntu machine 
remotely you need to login in to your ubuntu system.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Important note:&lt;/strong&gt;&lt;br /&gt;

Remote Desktop will only work if there’s a GNOME login 
session.Leaving your computer with an unattended GNOME login session is 
not secure and not recommended.&lt;br /&gt;
&lt;br /&gt;

Some Tips&lt;br /&gt;
&lt;br /&gt;

1) You can lock your screen using System---&amp;gt;Quit&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;img align="middle" src="http://www.debianadmin.com/images/rds/6.png" /&gt;&lt;br /&gt;

Once you click on quit you should see the following screen here you need to select lockscreen&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;img align="middle" src="http://www.debianadmin.com/images/rds/7.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
2) switch off your monitor when computer is left unattended&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Configuring Remote Desktop&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

First you need to go to System -&amp;gt; Preferences -&amp;gt; Remote Desktop&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/rds/3.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once it opens you should see the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/rds/4.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
In the above screen you need to configure remote desktop preferences for sharing and security&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;For Sharing&lt;/strong&gt;&lt;br /&gt;

you need to tick the box next to the following two options&lt;br /&gt;

Allow other users to view your desktop&lt;br /&gt;
Allow other users to control your desktop&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;For Security&lt;/strong&gt;&lt;br /&gt;

you need to tick the box next to the following two options&lt;br /&gt;

Ask you for confirmation (If you tick this option some one need to 
click on allow from remote desktop once it connected if you don’t want 
you can untick this option)&lt;br /&gt;
Require the user to enter this password:&lt;br /&gt;
&lt;br /&gt;
Password: Specify the password&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/rds/5.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;strong&gt;Connecting from Ubuntu Machine&lt;/strong&gt;&lt;br /&gt;

Open your terminal from Applications---&amp;gt;Accessories---&amp;gt;Terminal and enter the following command&lt;br /&gt;
&lt;br /&gt;

vncviewer -fullscreen 192.168.2.23:0&lt;br /&gt;
&lt;br /&gt;

now you should see the following message asking for password enter 
the password after complete success you can see VNC authentication 
succeeded message and starting remote desktop&lt;br /&gt;
&lt;br /&gt;

VNC viewer version 3.3.7 - built Jul  4 2006 10:04:48&lt;br /&gt;
Copyright (C) 2002-2003 RealVNC Ltd.&lt;br /&gt;
Copyright (C) 1994-2000 AT&amp;amp;T Laboratories Cambridge.&lt;br /&gt;
See http://www.realvnc.com for information on VNC.&lt;br /&gt;
VNC server supports protocol version 3.7 (viewer 3.3)&lt;br /&gt;
&lt;br /&gt;
Password:&lt;br /&gt;
&lt;br /&gt;
VNC authentication succeeded&lt;br /&gt;

If you want to quit vncviewer&lt;br /&gt;

Press ‘F8′ and select Quit viewer&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Connecting from Windows machine&lt;/strong&gt;&lt;br /&gt;

If you are trying to connect from your windows machine you need to 
install vncviewer of your choice i have installed from here 
http://www.realvnc.com/download.html.Install this program once you 
install this you can opem from start---&amp;gt;All 
programs---&amp;gt;RealVNC---&amp;gt;VNC Viewer 4---&amp;gt;Run VNC Viewer once it 
opens you should see the following screen here enter the remotemachine 
ipaddress:0 format and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/rds/8.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Now it will prompt for password enter your password and click ok&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/rds/9.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Now on the remote machine you should see the following screen asking 
for permission to allow this connection you need to click on allow this 
will comeup only if you tick “Ask you for confirmation” option under 
sharing&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" src="http://www.debianadmin.com/images/rds/1.png" /&gt;&lt;br /&gt;

&lt;br /&gt;
Once it connected you should see the remote machine desktop like the following screen&lt;br /&gt;
&lt;br /&gt;

&lt;img align="middle" height="522" src="http://www.debianadmin.com/images/rds/2.png" width="674" /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-5705928304246954912?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/E--LOoAzHHI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/5705928304246954912/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/share-your-ubuntu-desktop-using-remote.html#comment-form" title="9 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5705928304246954912?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5705928304246954912?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/E--LOoAzHHI/share-your-ubuntu-desktop-using-remote.html" title="Share your Ubuntu Desktop Using Remote Desktop" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/share-your-ubuntu-desktop-using-remote.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UGRH89fip7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-5875573905887717617</id><published>2011-10-07T14:00:00.001-07:00</published><updated>2011-10-07T14:00:25.166-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T14:00:25.166-07:00</app:edited><title>How to install Ubuntu Linux from USB Stick</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
This tutorial describes how to install Ubuntu by copying the contents of
 the installation CD to an USB memory stick (aka flash drive) and making
 the stick bootable. This is handy for machines like ultra portable 
notebooks that do not have a CD drive but can boot from USB media.&lt;br /&gt;
&lt;br /&gt;

&lt;span id="more-464"&gt;&lt;/span&gt;&lt;br /&gt;

In short here’s what you do:&lt;br /&gt;

Prepare the USB flash drive&lt;br /&gt;

Boot the computer from your USB flash drive.&lt;br /&gt;

Install Ubuntu as you would from a normal boot CD&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br /&gt;

A running Ubuntu 8.04 or any ubuntu version installation&lt;br /&gt;

A USB device (stick, pen-drive, USB hard disk) that has already been 
formatted with FAT32 and has enough free space to hold your Ubuntu 
installation image&lt;br /&gt;

A Ubuntu CD image downloaded from the Ubuntu servers or mirrors (*.iso file) or from &lt;a href="http://www.ubuntu.com/getubuntu/download" target="_blank"&gt;here &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Step 1&lt;/strong&gt;&lt;br /&gt;

On the root directory of your USB device, create a folder “install”&lt;br /&gt;
Copy the installer kernel and the initramdisk into this folder (Download
 source below.You need the files “vmlinux” and “initrd.gz”).&lt;br /&gt;

Download source for the installer kernel and initramdisk&lt;br /&gt;
&lt;br /&gt;

For AMD64 Download from &lt;a href="http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-amd64/current/images/hd-media/" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;
For i386 Download from &lt;a href="http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

You need to download the files “vmlinux” and “initrd.gz”.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Step 2&lt;/strong&gt;&lt;br /&gt;

Note: You need to have the installer that fits the architecture of 
your Ubuntu version you want to install. In other words, you need a 
amd64 installer if you want to install an amd64 Ubuntu .iso image and 
the i386 installer for an i386 iso.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Step 3&lt;/strong&gt;&lt;br /&gt;

From the installation iso image you downloaded, copy the folder 
“isolinux” to the root directory of your USB device (right-click on the 
.iso file, choose “extract here”). Rename “isolinux” into “syslinux”. Go
 inside the directroy “syslinux”. There, rename the file “isolinux.cfg” 
into “syslinux.cfg”.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Step 4&lt;/strong&gt;&lt;br /&gt;

Make the stick bootable: Use fdisk to set the boot flag,&lt;br /&gt;

Install syslinux using the following command&lt;br /&gt;

sudo aptitude install syslinux&lt;br /&gt;

Now use syslinux to install a boot sector on your USB device&lt;br /&gt;
&lt;br /&gt;

sudo syslinux /dev/sdbX&lt;br /&gt;
&lt;br /&gt;

where sdbX is the device name and number of your USB device, check 
with “sudo mount”. A file called “ldlinux.sys” will be created in the 
root direcotry of the USB device.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Step 5&lt;/strong&gt;&lt;br /&gt;

Copy the Ubuntu CD image in the root directory of your USB device 
(Contents of USB you can see as follows).If you are using i386 you need 
to copy the complete .iso image in to the root directory of your USB 
device.&lt;br /&gt;
&lt;br /&gt;
&lt;img align="middle" src="http://www.ubuntugeek.com/images/us.png" /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-5875573905887717617?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/_CZOXld8SEA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/5875573905887717617/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/how-to-install-ubuntu-linux-from-usb.html#comment-form" title="9 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5875573905887717617?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5875573905887717617?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/_CZOXld8SEA/how-to-install-ubuntu-linux-from-usb.html" title="How to install Ubuntu Linux from USB Stick" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/how-to-install-ubuntu-linux-from-usb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YHRHs7fip7ImA9WhdbEE8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-36428731945905565</id><published>2011-10-07T13:58:00.001-07:00</published><updated>2011-10-07T13:58:55.506-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T13:58:55.506-07:00</app:edited><title>How to Install Chromium (Google chrome) in Ubuntu using deb package</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
We have already discussed how to install &lt;a href="http://www.ubuntugeek.com/install-google-chrome-with-wine-in-ubuntu.html" target="_blank"&gt;google chrome using wine&lt;/a&gt;
 .Chromium is an open-source browser project that aims to build a safer,
 faster, and more stable way for all Internet users to experience the 
web. The Chromium codebase is the basis for Google’s Chrome browser.&lt;br /&gt;
&lt;br /&gt;
&lt;span id="more-645"&gt;&lt;/span&gt;First you can use &lt;a href="http://www.ubuntugeek.com/install-chromium-google-chrome-web-browser-in-ubuntu.html" target="_blank"&gt;this tutorial to install chromium&lt;/a&gt; in Ubuntu using PPAs and after that you can try any one of the following methods.&lt;br /&gt;
&lt;br /&gt;

First you need to download .deb package from &lt;a href="http://www.codeweavers.com/services/ports/chromium/" target="_blank"&gt;here&lt;/a&gt; using the following command&lt;br /&gt;

wget http://media.codeweavers.com/pub/crossover/chromium/cxchromium_0.9.0-1_i386.deb&lt;br /&gt;

Now you have cxchromium_0.9.0-1_i386.deb package install this package using the following command&lt;br /&gt;
&lt;br /&gt;

sudo dpkg -i cxchromium_0.9.0-1_i386.deb&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Using Ubuntu PPA&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;

First you need edit /etc/apt/sources.list file&lt;br /&gt;

&lt;blockquote&gt;
gksudo gedit /etc/apt/sources.list&lt;/blockquote&gt;
&lt;strong&gt;Add the following two lines for Ubuntu 9.04 (Jaunty) Users&lt;/strong&gt;&lt;br /&gt;

&lt;blockquote&gt;
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main&lt;br /&gt;
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main&lt;/blockquote&gt;
&lt;strong&gt;For ubuntu 9.10 (Karmic) Users add the following two lines&lt;/strong&gt;&lt;br /&gt;

&lt;blockquote&gt;
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main&lt;br /&gt;
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main&lt;/blockquote&gt;
&lt;strong&gt;For ubuntu 10.04 (Lucid) Users add the following two lines&lt;/strong&gt;&lt;br /&gt;

&lt;blockquote&gt;
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu lucid main&lt;br /&gt;
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu lucid main&lt;/blockquote&gt;
save and exit the file&lt;br /&gt;

Now add the GPG key using the following command&lt;br /&gt;

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xfbef0d696de1c72ba5a835fe5a9bf3bb4e5e17b5&lt;br /&gt;

or For karmic users use the following command&lt;br /&gt;

&lt;blockquote&gt;
sudo add-apt-key ppa:chromium-daily/ppa&lt;/blockquote&gt;
Update source list&lt;br /&gt;

&lt;blockquote&gt;
sudo apt-get update&lt;/blockquote&gt;
Install chromium browser using the following command&lt;br /&gt;

&lt;blockquote&gt;
sudo apt-get install chromium-browser&lt;/blockquote&gt;
&lt;br /&gt;
This will complete the installation&lt;br /&gt;

If you want to open chromium go to Applications-&amp;gt;CrossOver Chromium-&amp;gt;Chromium&lt;br /&gt;

Chromium web browser in action&lt;br /&gt;
&lt;br /&gt;

&lt;img alt="" height="384" src="http://www.ubuntugeek.com/images/chromium.png" style="vertical-align: middle;" width="641" /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-36428731945905565?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/LOuqrAQjaSY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/36428731945905565/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/how-to-install-chromium-google-chrome.html#comment-form" title="8 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/36428731945905565?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/36428731945905565?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/LOuqrAQjaSY/how-to-install-chromium-google-chrome.html" title="How to Install Chromium (Google chrome) in Ubuntu using deb package" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/how-to-install-chromium-google-chrome.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UFRnw8eip7ImA9WhdbEEw.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-4916502551106885910</id><published>2011-10-07T13:23:00.000-07:00</published><updated>2011-10-07T13:26:57.272-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T13:26:57.272-07:00</app:edited><title>Large WAR file cannot be deployed in Tomcat 7</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;h3&gt;


Problem&lt;br /&gt;
&lt;/h3&gt;
When uploading a WAR file larger than 50 MB, the Tomcat 7 Manager application reports:
&lt;br /&gt;
The server encountered an internal error () that prevented it from fulfilling this request.
&lt;br /&gt;
Exception java.lang.IllegalStateException:
&lt;br /&gt;
org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException:
&lt;br /&gt;
the request was rejected because its size (XXX) exceeds the configured maximum (52428800)
&lt;br /&gt;
&lt;h3&gt;


Solution&lt;br /&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Go to the web.xml of the manager application (for instance it could be under /tomcat7/webapps/manager/WEB-INF/web.xml.
&lt;/li&gt;
&lt;li&gt;Increase the max-file-size and max-request-size:
&lt;/li&gt;
&lt;/ul&gt;
&amp;lt;multipart-config&amp;gt;

&amp;lt;!--– 50MB max –--&amp;gt;
&lt;br /&gt;
&amp;lt;max-file-size&amp;gt;&amp;lt;strong&amp;gt;52428800&amp;lt;/strong&amp;gt;&amp;lt;/max-file-size&amp;gt;
&lt;br /&gt;
&amp;lt;max-request-size&amp;gt;&amp;lt;strong&amp;gt;52428800&amp;lt;/strong&amp;gt;&amp;lt;/max-request-size&amp;gt;
&lt;br /&gt;
&amp;lt;file-size-threshold&amp;gt;0&amp;lt;/file-size-threshold&amp;gt;
&lt;br /&gt;
&lt;br /&gt;

&amp;lt;/multipart-config&amp;gt;

&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-4916502551106885910?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/zwK0vL9QdhY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/4916502551106885910/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/large-war-file-cannot-be-deployed-in.html#comment-form" title="8 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4916502551106885910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4916502551106885910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/zwK0vL9QdhY/large-war-file-cannot-be-deployed-in.html" title="Large WAR file cannot be deployed in Tomcat 7" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/large-war-file-cannot-be-deployed-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQEQXc_fip7ImA9WhdUGUo.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-6885330627591618843</id><published>2011-10-07T00:53:00.000-07:00</published><updated>2011-10-07T01:48:20.946-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T01:48:20.946-07:00</app:edited><title>Linux Web Server and Domain Configuration Tutorial</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iWd3aIgJRf4/To6wAKS-9GI/AAAAAAAAAI8/86gRy96oa98/s1600/server-linux.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://2.bp.blogspot.com/-iWd3aIgJRf4/To6wAKS-9GI/AAAAAAAAAI8/86gRy96oa98/s200/server-linux.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4&gt;&lt;/h4&gt;Create a web server with Linux, Apache, FTP and bind DNS: This tutorial covers the Linux server configuration required to host a website. The Apache web server, FTP server and DNS configuration are covered. The Apache web server is required to serve the web pages, the  FTP server is required for users to upload content and the DNS server is required to resolve the domain names so that a URL entered into a web  browser will point to your  web server and properly serve the correct pages. The configurations presented will include virtual hosting which will allow a single Linux server to support multiple web site domains.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;big&gt;Web Site Prerequisites:&lt;/big&gt;&lt;/b&gt;     &lt;br /&gt;
This tutorial assumes that a computer has Linux installed and running.  See &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialRedHatInstallation.html"&gt;RedHat Installation&lt;/a&gt; for the basics. A connection to the internet is also assumed.  A connection of 128 Mbits/sec or greater will yield the best results. ISDN, DSL, cable modem or better are all suitable.  A 56k modem will work but the results will be mediocre at best. The tasks must also be performed with the root user login and password. &lt;br /&gt;
No single distribution seems to have an advantage. A Ubuntu, SuSe,  Fedora, Red Hat or CentOS distribution will include all of the software  you will need to configure a web server.  If using Red Hat Enterprise Linux, both the Workstation or the Server  edition will support your needs except that the Workstation edition will  not include the vsFTP package. It will have to be compiled from source  or use sftp. &lt;br /&gt;
&lt;b&gt;Software Prerequisites:&lt;/b&gt; The Apache web server (httpd),  FTP (requires xinetd or inetd) and Bind (named) software packages with their dependencies are all required.  One can use the &lt;b&gt;rpm&lt;/b&gt; command to verify installation: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Fedora Core 1+, Red Hat Enterprise 4/5, CentOS 4/5:      &lt;pre&gt;rpm -q httpd bind bind-chroot bind-utils system-config-bind xinetd vsftpd
    &lt;/pre&gt;RPMs added FC2+: &lt;tt&gt;system-config-httpd&lt;/tt&gt;     &lt;br /&gt;
RPMs added FC3+: &lt;tt&gt;httpd-suexec&lt;/tt&gt;          &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Red Hat 9.0     &lt;pre&gt;rpm -q httpd bind xinetd vsftpd&lt;/pre&gt;A Red Hat 8.0 wu-ftpd RPM may be installed (Newer version 2.6.2 or later with security fix &lt;tt&gt;wu-ftpd-2.6.2-11&lt;/tt&gt;) or install from &lt;a href="ftp://ftp.wu-ftpd.org/pub/wu-ftpd/"&gt;source&lt;/a&gt;.          &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Red Hat 8.0           &lt;pre&gt;rpm -q httpd bind xinetd wu-ftpd&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Red Hat 7.x:           &lt;pre&gt;rpm -q apache bind inetd wu-ftpd&lt;/pre&gt;Use  wu-ftpd version 2.6.2 or later to avoid security problems.                      &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;SuSE 9.3:           &lt;pre&gt;rpm -ivh apache2 apache2-prefork bind bind-chrootenv bind-utils vsftpd&lt;/pre&gt;Note: The apache2-MPM is a generic term for Apache installation options for "Multi-Processing Modules (MPM)s "prefork" or "worker". If you try and only install apache2 you will get the following error:           &lt;pre&gt;apache2-MPM is needed by apache2-2.0.53-9&lt;/pre&gt;Also see &lt;a href="http://httpd.apache.org/docs/2.0/mpm.html"&gt;Apache.org: MPMs&lt;/a&gt;  &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Ubuntu (natty 11.04) / Debian:           &lt;pre&gt;apt-get install apache2
         
   apt-get install bind9 
         
   apt-get install vsftpd &lt;/pre&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Ubuntu (dapper 6.06/hardy 8.04) / Debian:           &lt;pre&gt;apt-get install apache2 apache2-common apache2-mpm-prefork apache2-utils
         
   apt-get install bind9 
         
   apt-get install vsftpd &lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;One should also have a working knowledge of the Linux init process so that these services are initiated upon system boot. See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html"&gt;YoLinux init process tutorial&lt;/a&gt; for more info.    &lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="HTTPD"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt; &lt;td&gt;&lt;b&gt;&lt;big&gt;Apache HTTP Web server configuration:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;This tutorial is for the Apache HTTP web server (Version 1.3 and 2.0). See the  &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxHttpServers.html"&gt;YoLinux list of Linux HTTP servers&lt;/a&gt; for a list of other web servers for the Hyper Text Transport Protocol. &lt;br /&gt;
The Apache web server configuration file is: &lt;tt&gt;/etc/httpd/conf/httpd.conf&lt;/tt&gt; &lt;br /&gt;
Web pages are served from the directory as configured by the        &lt;tt&gt;DocumentRoot&lt;/tt&gt; directive. The default directory location is: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;&lt;th&gt;Linux distribution&lt;/th&gt;&lt;th&gt;Apache web server "DocumentRoot"&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Red Hat 7.x-9, Fedora Core, Red Hat Enterprise 4/5/6, CentOS 4/5/6&lt;/td&gt;&lt;td&gt;&lt;tt&gt;/var/www/html/&lt;/tt&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Red Hat 6.x and older&lt;/td&gt;&lt;td&gt;&lt;tt&gt;/home/httpd/html/&lt;/tt&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Suse 9.x&lt;/td&gt;&lt;td&gt;&lt;tt&gt;/srv/www/htdocs/&lt;/tt&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Ubuntu (dapper 6.06) / Debian&lt;/td&gt;&lt;td&gt;&lt;tt&gt;/var/www/html&lt;/tt&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Ubuntu (hardy 8.04/natty 11.04) / Debian&lt;/td&gt;&lt;td&gt;&lt;tt&gt;/var/www&lt;/tt&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;The default home page for the default configuration is &lt;tt&gt;index.html&lt;/tt&gt;.  Note the pages should not be owned by user &lt;tt&gt;apache&lt;/tt&gt; as this is the  process owner of the httpd web server daemon. If the web server process is comprimised, it should not be allowed to alter the files. The files should of course be readable by user &lt;tt&gt;apache&lt;/tt&gt;.  Apache may be configured to run as a host for one web site in this fashion or it may be configured to serve for multiple domains. Serving for multiple domains may be achieved in two ways: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Virtual hosts: One IP address but multiple domains - "Name based" virtual hosting. &lt;/li&gt;
&lt;li&gt;Multiple IP based virtual hosts: One IP address for each domain - "IP based" virtual hosting. &lt;/li&gt;
&lt;/ul&gt;The default configuration will allow one to have multiple user accounts under one domain by using a reference to the user account:        &lt;tt&gt;http://www.&lt;i&gt;domain.com&lt;/i&gt;/~user1/&lt;/tt&gt;.  If no domain is registered or configured, the IP address may also be used:       &lt;tt&gt;http://&lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;/~user1/&lt;/tt&gt;.  &lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;  The default umask for directory creation is correct by default but if not use:       &lt;tt&gt; chmod 755 /home/&lt;i&gt;user1&lt;/i&gt;/public_html&lt;/tt&gt; &lt;br /&gt;
&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt; When creating new "&lt;tt&gt;Directory&lt;/tt&gt;"  configuration directives, I found that placing them by the existing "&lt;tt&gt;Directory&lt;/tt&gt;" directives  to be a bad idea. It would not use the &lt;tt&gt;.htaccess&lt;/tt&gt; file. This was because the statement defining the use of the &lt;tt&gt;.htaccess&lt;/tt&gt; file was after the  "&lt;tt&gt;Directory&lt;/tt&gt;" statement. Previously in RH 6.x the files were separated and the order was defined a little different. I now place new "&lt;tt&gt;Directory&lt;/tt&gt;" statements near the end of the file just before the "&lt;tt&gt;VirtualHost&lt;/tt&gt;" statements. &lt;br /&gt;
For users of Red Hat 7.1, the GUI configuration tool &lt;tt&gt;apacheconf&lt;/tt&gt; was introduced for the crowd who like to use pretty point and click tools. &lt;br /&gt;
Files used by Apache: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Start/stop/restart script:   &lt;ul&gt;&lt;li&gt;Red Hat/Fedora/CentOS: &lt;tt&gt;/etc/rc.d/init.d/httpd&lt;/tt&gt;    &lt;/li&gt;
&lt;li&gt;SuSE 9.3: &lt;tt&gt;/etc/init.d/apache2&lt;/tt&gt;   &lt;/li&gt;
&lt;li&gt;Ubuntu (dapper 6.06/hardy 8.04/natty 11.04) / Debian: &lt;tt&gt;/etc/init.d/apache2&lt;/tt&gt;   &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Apache main configuration file:   &lt;ul&gt;&lt;li&gt;Red Hat/Fedora/CentOS: &lt;tt&gt;/etc/httpd/conf/httpd.conf&lt;/tt&gt;   &lt;/li&gt;
&lt;li&gt;SuSE: &lt;tt&gt;/etc/apache2/httpd.conf&lt;/tt&gt;         &lt;br /&gt;
(Need to add directive: &lt;tt&gt;ServerName &lt;i&gt;host-name&lt;/i&gt;&lt;/tt&gt;)   &lt;/li&gt;
&lt;li&gt;Ubuntu (dapper 6.06/hardy 8.04/natty 11.04) / Debian: &lt;tt&gt;/etc/apache2/apache2.conf&lt;/tt&gt;   &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Apache suplementary configuration files:     &lt;ul&gt;&lt;li&gt;Red Hat/Fedora/CentOS: &lt;tt&gt;/etc/httpd/conf.d/&lt;i&gt;&lt;b&gt;component&lt;/b&gt;&lt;/i&gt;.conf&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;SuSE: &lt;tt&gt;/etc/apache2/conf.d/&lt;i&gt;&lt;b&gt;component&lt;/b&gt;&lt;/i&gt;.conf&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;Ubuntu (dapper 6.06/hardy 8.04/natty 11.04) / Debian:                &lt;ul&gt;&lt;li&gt;Virtual domains: &lt;tt&gt;/etc/apache2/sites-enabled/&lt;i&gt;&lt;b&gt;domain&lt;/b&gt;&lt;/i&gt;&lt;/tt&gt;               &lt;br /&gt;
(Create soft link from &lt;tt&gt;/etc/apache2/sites-enabled/&lt;i&gt;domain&lt;/i&gt;&lt;/tt&gt; to &lt;tt&gt;/etc/apache2/sites-available/&lt;i&gt;domain&lt;/i&gt;&lt;/tt&gt; to turn on. Use command &lt;tt&gt;a2ensite&lt;/tt&gt;)               &lt;/li&gt;
&lt;li&gt;Additional configuration directives: &lt;tt&gt;/etc/apache2/conf.d/&lt;/tt&gt;               &lt;/li&gt;
&lt;li&gt;Modules to load: &lt;tt&gt;/etc/apache2/mods-available/&lt;/tt&gt;                    &lt;br /&gt;
(Soft link to &lt;tt&gt;/etc/apache2/mods-enabled/&lt;/tt&gt; to turn on)               &lt;/li&gt;
&lt;li&gt;Ports to listen to: &lt;tt&gt;/etc/apache2/ports.conf&lt;/tt&gt;               &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/var/log/httpd/access_log&lt;/tt&gt; and &lt;tt&gt;error_log&lt;/tt&gt; -     Red Hat/Fedora Core Apache log files     &lt;br /&gt;
(Suse: &lt;tt&gt;/var/log/apache2/&lt;/tt&gt;) &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Start/Stop/Restart scripts:&lt;/b&gt; The script is to be run with the qualifiers &lt;tt&gt;start&lt;/tt&gt;, &lt;tt&gt;stop&lt;/tt&gt;,       &lt;tt&gt;restart&lt;/tt&gt; or &lt;tt&gt;status&lt;/tt&gt;.        &lt;br /&gt;
i.e.        &lt;tt&gt;/etc/rc.d/init.d/httpd restart&lt;/tt&gt;. A restart allows the web server  to start again and read the configuration files to pick up any changes. To have this script invoked upon system boot issue the command       &lt;tt&gt;chkconfig --add httpd&lt;/tt&gt;.  See &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html"&gt;Linux Init Process Tutorial&lt;/a&gt; for a more complete discussion. &lt;br /&gt;
Also Apache control tool: &lt;tt&gt;/usr/sbin/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=apachectl"&gt;apachectl&lt;/a&gt; start&lt;/tt&gt; &lt;br /&gt;
&lt;b&gt;Apache Control Command: apachectl:&lt;/b&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Red Hat / Fedora Core / CentOS: &lt;tt&gt;&lt;b&gt;apachectl&lt;/b&gt; &lt;i&gt;directive&lt;/i&gt;&lt;/tt&gt;  Ubuntu dapper 6.06 / hardy 8.04 / natty 11.04 / Debian: &lt;tt&gt;&lt;b&gt;apache2ctl&lt;/b&gt; &lt;i&gt;directive&lt;/i&gt;&lt;/tt&gt;   &lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;       &lt;th&gt;Directive&lt;/th&gt;       &lt;th&gt;Description&lt;/th&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;start&lt;/td&gt;       &lt;td&gt;Start  the Apache httpd daemon. Gives an error if it is already running.&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;stop&lt;/td&gt;       &lt;td&gt;Stops the Apache httpd daemon.&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;graceful&lt;/td&gt;       &lt;td&gt;Gracefully restarts the Apache httpd daemon. If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;restart&lt;/td&gt;       &lt;td&gt;Restarts the Apache httpd daemon. If the daemon is not running, it is started. This command automatically checks the configuration files as in configtest before initiating the restart to make sure the daemon doesn't die.&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;status&lt;/td&gt;       &lt;td valign="top"&gt;Displays a  brief  status  report.&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;fullstatus&lt;/td&gt;       &lt;td valign="top"&gt;Displays a full status report from mod_status. Requires mod_status enabled on your server and a text-based browser such as lynx available on your system. The URL used to access the status report can be set by editing the STATUSURL variable in the script.&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign="top"&gt;configtest&lt;br /&gt;
-t&lt;/td&gt;       &lt;td valign="top"&gt;Run a configuration file syntax test.&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;b&gt;Apache Configuration Files:&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;/etc/httpd/conf/httpd.conf&lt;/tt&gt;: is used to configure Apache. In the past it was broken down into three files. These may now be all concatenated into one file.  See &lt;a href="http://www.apache.org/docs/"&gt;Apache online documentation&lt;/a&gt; for the full manual. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/etc/httpd/conf.d/&lt;i&gt;application&lt;/i&gt;.conf&lt;/tt&gt;: All configuration files     in this directory are included during Apache start-up. Used to store application specific configurations.  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/etc/sysconfig/httpd&lt;/tt&gt;: Holds environment variables used when starting Apache. &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Basic settings:&lt;/b&gt; Change the default value for &lt;tt&gt;ServerName www.&amp;lt;&lt;i&gt;your-domain.com&lt;/i&gt;&amp;gt;&lt;/tt&gt; &lt;br /&gt;
&lt;b&gt;Giving Apache access to the file system:&lt;/b&gt; It is prudent to limit Apache's  view of the file system to only those directories necessary. This is done with the directory statement. Start by denying access to everything, then grant access to the necessary directories. &lt;br /&gt;
Deny access completely to file system root ("/") as the default: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Deny first, then grant permissions:   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;div class="syntaxhighlighter  " id="highlighter_422353"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;pre&gt;&amp;lt;Directory /&amp;gt;
   Options None
   AllowOverride None
&amp;lt;/Directory&amp;gt;


&lt;/pre&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Set default location of system web pages and allow access: (Red Hat/Fedora/CentOS)   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;div class="syntaxhighlighter  " id="highlighter_73995"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;pre&gt;DocumentRoot "/var/www/html"

&amp;lt;Directory "/var/www/html"&amp;gt;
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
&amp;lt;/Directory&amp;gt;


&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;Grant access to a user's web directory: public_html&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Enabling Red Hat / Fedora Linux, Apache &lt;tt&gt;public_html&lt;/tt&gt; user directory access:&lt;/b&gt;   This will allow users to serve content from their home directories under the subdirectory "&lt;tt&gt;/home/&lt;i&gt;userid&lt;/i&gt;/public_html/&lt;/tt&gt;" by accessing the URL &lt;tt&gt;http://&lt;i&gt;hostname&lt;/i&gt;/~userid/&lt;/tt&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;File: &lt;tt&gt;/etc/httpd/conf/httpd.conf&lt;/tt&gt;   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;LoadModule userdir_module modules/mod_userdir.so

...
...

&amp;lt;IfModule mod_userdir.c&amp;gt;
    #UserDir disable             - Add comment to this line
    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disable" line above, and uncomment
    # the following line instead:
    UserDir public_html          # Uncomment this line
&amp;lt;/IfModule&amp;gt;

...
...

&amp;lt;Directory /home/*/public_html&amp;gt;
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    &amp;lt;Limit GET POST OPTIONS&amp;gt;
        Order allow,deny
        Allow from all
    &amp;lt;/Limit&amp;gt;
    &amp;lt;LimitExcept GET POST OPTIONS&amp;gt;
        Order deny,allow
        Deny from all
    &amp;lt;/LimitExcept&amp;gt;
&amp;lt;/Directory&amp;gt;

&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Change to a comment (add "#" at beginning of line) from Fedora Core default &lt;tt&gt;UserDir  disable&lt;/tt&gt; and assign the directory &lt;tt&gt;public_html&lt;/tt&gt; as a web server accessible directory.       &lt;br /&gt;
&lt;b&gt;OR&lt;/b&gt;       &lt;br /&gt;
Assign a single user the specific ability to share their directory:&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;div class="syntaxhighlighter  " id="highlighter_111196"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;pre&gt;&amp;lt;Directory /home/user1/public_html&amp;gt;
   AllowOverride None
   order allow,deny
   allow from all
   Options Indexes Includes FollowSymLinks
&amp;lt;/Directory&amp;gt;


&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Allows the specific user, "&lt;i&gt;user1&lt;/i&gt;" only, the ability to serve the directory &lt;tt&gt;/home/&lt;i&gt;&lt;b&gt;user1&lt;/b&gt;&lt;/i&gt;/public_html/&lt;/tt&gt; &lt;/dd&gt;&lt;/dl&gt;Also use SELinux command to set the security context: &lt;tt&gt;setsebool httpd_enable_homedirs  true&lt;/tt&gt;  &lt;b&gt;Directory permissions:&lt;/b&gt; The Apache web server daemon must be able to read your web pages in order to feed their contents to the network. Use an appropriate  umask and file protection. Allow access to web directory: &lt;tt&gt;chmod ugo+rx -R public_html&lt;/tt&gt;.       &lt;br /&gt;
Note that the user's directory also has to have the appropriate permissions as it is the parent of &lt;tt&gt;public_html&lt;/tt&gt;.       &lt;br /&gt;
Default permissions on user directory: &lt;tt&gt;ls -l /home&lt;/tt&gt;       &lt;br /&gt;
&lt;tt&gt;drwx------ 20 user1    user1  4096 Mar  5 12:16 user1&lt;/tt&gt;       &lt;br /&gt;
Allow the web server access to operate the parent directory: &lt;tt&gt;chmod ugo+x  /home/user1&lt;/tt&gt;       &lt;br /&gt;
&lt;tt&gt;d-wx--x--x 20 user1    user1  4096 Mar  5 12:16 user1&lt;/tt&gt; &lt;br /&gt;
One may also use groups to control permisions.  See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialManagingGroups.html"&gt;YoLinux tutorial on managing groups&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Enabling Ubuntu's Apache &lt;tt&gt;public_html&lt;/tt&gt; user directory access:&lt;/b&gt;         Ubuntu has broken out the Apache loadable module directives into the directory &lt;tt&gt;/etc/apache2/mods-available/&lt;/tt&gt;.  To enable an Apache module, generate soft links to the directory &lt;tt&gt;/etc/apache2/sites-enabled/&lt;/tt&gt; by using the commands &lt;tt&gt;a2enmod&lt;/tt&gt;/&lt;tt&gt;a2dismod&lt;/tt&gt; to enable/disable Apache modules.  &lt;br /&gt;
Example:  &lt;ul&gt;&lt;li&gt;&lt;tt&gt;&lt;b&gt;[root@node2]#&lt;/b&gt; a2enmod&lt;/tt&gt;      &lt;br /&gt;
A list of available modules is displayed. Enter "userdir" as the module to enable. &lt;/li&gt;
&lt;li&gt;Restart Apache with the following command: &lt;tt&gt;/etc/init.d/apache2 force-reload&lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;Note: This is the same as manually generating the following two soft links: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/userdir.conf&lt;/tt&gt; &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/userdir.load&lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;Man page: &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=a2enmod"&gt;a2enmod/a2dismod&lt;/a&gt;   &lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: If the Apache web server can not access the file you will get the error "403 Forbidden" "You don't have permission to access &lt;i&gt;file-name&lt;/i&gt; on this server."  Note the default permissions on a user directory when first created with "useradd" are: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;tt&gt;drwx------   3 userx         userx&lt;/tt&gt; &lt;/dd&gt;&lt;/dl&gt;You must allow the web server running as user "apache" to access the directory if it is to display pages held there.  &lt;br /&gt;
Fix with command: &lt;tt&gt;chmod ugo+rx /home/userx&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;tt&gt;drwxr-xr-x   3 userx         userx&lt;/tt&gt; &lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="SELINUX"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;h3&gt;SELinux security contexts:&lt;/h3&gt;&lt;dl&gt;&lt;dd&gt;Fedora Core 3 and Red Hat Enterprise Linux 4 introduced SELinux (Security Enhanced Linux) security policies and context labels.             To view the security context labels applied to your web page files use the  command: &lt;tt&gt;ls -Z&lt;/tt&gt;  The system enables/disables SELinux policies in the file &lt;tt&gt;/etc/selinux/config&lt;/tt&gt;            SELinux can be turned off by setting the directive SELINUX. (Then reboot the system):
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;SELINUX=disabled
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;or using the command &lt;tt&gt;setenforce 0&lt;/tt&gt; to temporarily disable SELinux until the next reboot.  When using SELinux security features,  the security context labels must be added so that Apache can read your files. The default security context label used is inherited from the directory for newly created files. Thus a copy (&lt;tt&gt;cp&lt;/tt&gt;) must be used and not a move (&lt;tt&gt;mv&lt;/tt&gt;) when placing files in the content directory. Move does not create a new file and thus the file does not recieve the directory security context label. The context labels used for the default Apache directories can be viewed with the command: &lt;tt&gt;ls -Z /var/www&lt;/tt&gt;           &lt;br /&gt;
The web directories of users (i.e. &lt;tt&gt;public_html&lt;/tt&gt;) should be set with the appropriate context label (&lt;tt&gt;httpd_sys_content_t&lt;/tt&gt;).           &lt;br /&gt;
Assign a security context for web pages: &lt;tt&gt;chcon -R -h -t httpd_sys_content_t /home/&lt;i&gt;user1&lt;/i&gt;/public_html&lt;/tt&gt;           &lt;br /&gt;
Options: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-R: Recursive. Files and directories in current directory and all subdirectories. &lt;/li&gt;
&lt;li&gt;-h: Affect symbolic links. &lt;/li&gt;
&lt;li&gt;-t: Specify type of security context. &lt;/li&gt;
&lt;/ul&gt;Use the following security contexts: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;th&gt;Context Type&lt;/th&gt; &lt;th&gt;Description&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;tt&gt;httpd_sys_content_t&lt;/tt&gt;&lt;/td&gt; &lt;td&gt;Used for static web content. i.e. HTML web pages.&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;tt&gt;httpd_sys_script_exec_t&lt;/tt&gt;&lt;/td&gt; &lt;td&gt;Use for executable CGI scripts or binary executables.&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;tt&gt;httpd_sys_script_rw_t&lt;/tt&gt;&lt;/td&gt; &lt;td&gt;CGI is allowed to alter/delete files of this context.&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;tt&gt;httpd_sys_script_ra_t&lt;/tt&gt;&lt;/td&gt; &lt;td&gt;CGI is allowed to read or append files of this context.&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;tt&gt;httpd_sys_script_ro_t&lt;/tt&gt;&lt;/td&gt; &lt;td&gt;CGI is allowed to read files and directories of this context.&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Set the following options: &lt;tt&gt;setsebool &lt;i&gt;httpd-option&lt;/i&gt; true&lt;/tt&gt;           &lt;br /&gt;
(or set to &lt;tt&gt;false&lt;/tt&gt;) &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;   &lt;th&gt;Policy&lt;/th&gt;   &lt;th&gt;Description&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;tt&gt;httpd_enable_cgi &lt;/tt&gt;&lt;/td&gt;   &lt;td&gt;Allow httpd cgi support.&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;tt&gt;httpd_enable_homedirs  &lt;/tt&gt;&lt;/td&gt;   &lt;td&gt;Allow httpd to read home directories.&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;   &lt;td&gt;&lt;tt&gt;httpd_ssi_exec  &lt;/tt&gt;&lt;/td&gt;   &lt;td&gt;Allow httpd to run SSI executables in the same domain as system CGI scripts.&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Then restart Apache:    &lt;ul&gt;&lt;li&gt;Red Hat/Fedora/Suse and all System V init script based Linux systems: &lt;tt&gt;/etc/init.d/httpd restart&lt;/tt&gt; &lt;/li&gt;
&lt;li&gt;Red Hat/Fedora: &lt;tt&gt;service httpd restart&lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;The default SE boolean values are specified in the file: &lt;tt&gt;/etc/selinux/targeted/booleans&lt;/tt&gt; &lt;br /&gt;
For more on SELinux see the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialSysAdmin.html#SELINUX"&gt;YoLinux Systems Administration tutorial&lt;/a&gt;. &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;Virtual Hosts:&lt;/h3&gt;The Apache web server allows one to configure a single computer to  represent multiple websites as if they were on separate hosts.  There are two methods available and we describe the configuration of  each. Choose one method for your domain: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Name based virtual host: (most common)     A single computer with a single IP adress supporting multiple web domains.     The web browser using the http protocol, identifies the domain being addressed. &lt;/li&gt;
&lt;li&gt;IP based virtual host:      The virtual hosts can be configured as a single multi-homed computer  with multiple IP addresses on a single network card, with each IP  address representing a different web domain.     This has the appearance of a web domain supported by a dedicated  computer because it has a dedicated IP address. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h3&gt;Configuring a "name based" virtual host:&lt;/h3&gt;&lt;dl&gt;&lt;dd&gt;A virtual host configuration allows one to host multiple web site domains on one server.  (This is not required for a dedicated linux server which hosts a single web site.)    &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;NameVirtualHost XXX.XXX.XXX.XXX

&amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;
   ServerName www.your-domain.com          - CNAME (bind DNS alias www) specified in Bind configuration file (/var/named/...)
   ServerAlias your-domain.com             - Allows requests by domain name without the "www" prefix.
   ServerAdmin user1@your-domain.com
   DocumentRoot /home/user1/public_html
   ErrorLog logs/your-domain.com-error_log
   TransferLog logs/your-domain.com-access_log
&amp;lt;/VirtualHost&amp;gt;

&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;b&gt;Notes:&lt;/b&gt;   &lt;ul&gt;&lt;li&gt;You can specify more than one IP address. i.e. if web server is also being used as a firewall/gateway and you have an external internet IP address as well as a local network IP address. &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;NameVirtualHost XXX.XXX.XXX.XXX
NameVirtualHost 192.168.XXX.XXX

&amp;lt;VirtualHost XXX.XXX.XXX.XXX 192.168.XXX.XXX&amp;gt;
   ...
   ..

&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html"&gt;YoLinux Tutorial on configuring a network gateway/firewall using iptables and NAT&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Use your IP address for &lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;, actual domain name and e-mail address.    &lt;br /&gt;
One can use DNS views to provide different local network DNS results.  &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Note that I configure Apache for both requests http://www.&lt;i&gt;domain-name.com&lt;/i&gt; and http://&lt;i&gt;domain-name.com&lt;/i&gt;.          &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Once virtual hosts are configured, your default system      domain (&lt;tt&gt;/var/www/html&lt;/tt&gt;) will stop working.     Your default domain now must be configured as a virtual domain.     &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;&amp;lt;Directory "/var/www/html"&amp;gt;

   ...  This part remains the same
   ..

&amp;lt;/Directory&amp;gt;

# Default for when no domain name is given (i.e. access by IP address)

&amp;lt;VirtualHost *:80&amp;gt;
   ServerAdmin user1@your-domain.com
   DocumentRoot /var/www/html
   ErrorLog logs/error_log
   TransferLog logs/access_log
&amp;lt;/VirtualHost&amp;gt;

# Add a VirtualHost definition for your domain which was once the system default.

&amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;
   ServerName www.your-domain.com
   ServerAlias your-domain.com
   ServerAdmin user1@your-domain.com
   DocumentRoot /var/www/html
   ErrorLog logs/error_log
   TransferLog logs/access_log
&amp;lt;/VirtualHost&amp;gt;

   ...
   ..
    

&lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Forwarding to a primary URL. It is best to avoid the appearance of duplicated web content from two URLs such as http://www.&lt;i&gt;your-domain&lt;/i&gt;.com and   http://&lt;i&gt;your-domain&lt;/i&gt;.com. Supply a forwarding Apache "Redirect".     &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;&amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;
   ServerName www.your-domain.com   - Note that no aliases are listed
   ...
   ...
&amp;lt;/VirtualHost&amp;gt;

# Add a VirtualHost definition to forward to your primary URL

&amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;
   ServerName your-domain.com
   ServerAlias other-domain.com
   ServerAlias www.other-domain.com
   Redirect permanent / http://www.your-domain.com.com/
&amp;lt;/VirtualHost&amp;gt;

   ...
   ..

    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;Note:      &lt;ul&gt;&lt;li&gt;See the YoLinux.com &lt;a href="http://www.yolinux.com/TUTORIALS/ApacheRedirect.html"&gt;Apache "Redirect" Tutorial&lt;/a&gt;     &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.apache.org/docs/vhosts/examples.html"&gt;More virtual host examples.&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;When specifying more domains, they may all use the same IP address or some/all  may use their own unique IP address.  Specify a "NameVirtualHost" for each IP address.  &lt;br /&gt;
After the Apache configuration files have been edited, restart the httpd daemon:       &lt;tt&gt;/etc/rc.d/init.d/httpd restart&lt;/tt&gt; (Red Hat) or &lt;tt&gt;/etc/init.d/apache2 restart&lt;/tt&gt; (Ubuntu / Debian) &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Apache virtual domain configuration with Ubuntu Dapper/Hardy:&lt;/h4&gt;Ububntu separates out each virtual domain into a separate configuration file  held in the directory &lt;tt&gt;/etc/apache2/sites-available/&lt;/tt&gt;.  When the site domain is to become active, a soft link is created to the directory &lt;tt&gt;/etc/apache2/sites-enabled/&lt;/tt&gt;. &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Example: &lt;tt&gt;/etc/apache2/sites-available/supercorp&lt;/tt&gt;   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;div class="syntaxhighlighter  " id="highlighter_742173"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;br /&gt;
&lt;pre&gt;
&amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;
        ServerName supercorp.com
        ServerAlias www.supercorp.com
        ServerAdmin webmaster@localhost

        DocumentRoot /home/supercorp/public_html/home
        &amp;lt;Directory "/"&gt;
                Options FollowSymLinks
                AllowOverride None
        &amp;lt;/Directory&amp;gt;
        &amp;lt;Directory /home/supercorp/public_html/home&amp;gt;
                Options Indexes FollowSymLinks MultiViews
                IndexOptions SuppressLastModified SuppressDescription
                AllowOverride All
                Order allow,deny
                allow from all
        &amp;lt;/Directory&amp;gt;

        ScriptAlias /cgi-bin/ /home/supercorp/cgi-bin/
        &amp;lt;Directory "/home/supercorp/cgi-bin/"&amp;gt;
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        &amp;lt;/Directory&amp;gt;

        ErrorLog /var/log/apache2/supercorp.com-error.log

        # Possible values include: debug, info, notice, warn, error,
        # crit, alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/supercorp.com-access.log combined
        ServerSignature On
&amp;lt;/VirtualHost&amp;gt;

&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Enable domain:   &lt;ul&gt;&lt;li&gt;Create soft link:      &lt;ul&gt;&lt;li&gt;Manually: &lt;tt&gt;ln -s /etc/apache2/sites-available/supercorp /etc/apache2/sites-enabled/supercorp&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;Use Ubuntu scripts &lt;tt&gt;a2ensite&lt;/tt&gt;/&lt;tt&gt;a2dissite&lt;/tt&gt;. Type command and it will prompt you as to which site you would like to enable or disable.     &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Restart Apache:      &lt;ul&gt;&lt;li&gt;&lt;tt&gt;apache2ctl graceful&lt;/tt&gt;          &lt;br /&gt;
&lt;b&gt;or&lt;/b&gt;     &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/etc/init.d/apache2 restart&lt;/tt&gt;         &lt;br /&gt;
&lt;b&gt;or&lt;/b&gt;     &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/etc/init.d/apache2 reload&lt;/tt&gt;     &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;Also note that Apache modules can also be enabled/disabled with scripts &lt;tt&gt;a2enmod/a2dismod&lt;/tt&gt;.  Man pages:   &lt;ul&gt;&lt;li&gt; &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=a2enmod"&gt;a2ensite/a2dissite&lt;/a&gt; (Ubuntu: Apache 2 enable/disable site) &lt;/li&gt;
&lt;li&gt; &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=apache2ctl"&gt;apache2ctl&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;Configuring an "IP based" virtual host:&lt;/h3&gt;&lt;dl&gt;&lt;dd&gt;One may assign multiple IP addresse to a single network interface. See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html#NETWORKALIASING"&gt;YoLinux networking tutorial: Network Aliasing&lt;/a&gt;.  Each IP address may then be it's own virtual server and individual domain. The downside of the "IP based" virtual host method is that you have to possess  multiple/extra IP addresses. This usually costs more.  The standard name based virtual hosting method above is more popular for this reason.   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;NameVirtualHost *              - Indicates all IP addresses

&amp;lt;VirtualHost *&amp;gt;
   ServerAdmin user0@default-domain.com
   DocumentRoot /home/user0/public_html
&amp;lt;/VirtualHost&amp;gt;

&amp;lt;VirtualHost XXX.XXX.XXX.101&amp;gt;
   ServerAdmin user1@domain-1.com
   DocumentRoot /home/user1/public_html
&amp;lt;/VirtualHost&amp;gt;

&amp;lt;VirtualHost XXX.XXX.XXX.102&amp;gt;
   ServerAdmin user1@domain-2.com
   DocumentRoot /home/user2/public_html
&amp;lt;/VirtualHost&amp;gt;


&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;The default &lt;tt&gt;&lt;virtualhost *=""&gt;&lt;/virtualhost&gt;&lt;/tt&gt; block will be used as the default for all IP addresses not specified explicitly.  This default IP (*) may not work for &lt;tt&gt;https&lt;/tt&gt; URL's. &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;CGI: (Common Gateway Interface)&lt;/h3&gt;CGI is a program executable which dynamically generates a web page by writing to &lt;tt&gt;stdout&lt;/tt&gt;. CGI is permitted by either of two configuration file directives: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;tt&gt;ScriptAlias&lt;/tt&gt;&lt;/b&gt;:     &lt;ul&gt;&lt;li&gt;Red Hat 7.x-9, Fedora core: &lt;tt&gt; ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;Red Hat 6.x and older: &lt;tt&gt; ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;Suse 9.x: &lt;tt&gt; ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;Ubuntu (dapper/hardy/natty) / Debian: &lt;tt&gt; ScriptAlias /cgi-bin/ "/usr/lib/cgi-bin/"&lt;/tt&gt;     &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;or&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;tt&gt; Options +ExecCGI&lt;/tt&gt;&lt;/b&gt;:&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;&amp;lt;Directory /var/www/cgi-bin&amp;gt;
Options +ExecCGI
&amp;lt;/Directory&amp;gt;
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;The executable program files must have execute privileges, executable by the  process owner (Red Hat 7+/Fedora Core: &lt;tt&gt;apache&lt;/tt&gt;.  Older use &lt;tt&gt;nobody&lt;/tt&gt;) under which the httpd daemon is being run.  &lt;br /&gt;
&lt;h3&gt;Configuring CGI To Run With User Privileges:&lt;/h3&gt;The suEXEC feature provides Apache users the ability to run CGI and SSI programs under user IDs different from the user ID of the calling web-server. Normally, when a CGI or SSI program executes, it runs as the&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;NameVirtualHost XXX.XXX.XXX.XXX

&amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;
   ServerName node1.your-domain.com                         - Allows requests by domain name without the "www" prefix.
   ServerAlias your-domain.com www.your-domain.com          - CNAME (alias www) specified in Bind configuration file (/var/named/...)
   ServerAdmin user1@your-domain.com
   DocumentRoot /home/user1/public_html/your-domain.com
   ErrorLog logs/your-domain.com-error_log
   TransferLog logs/your-domain.com-access_log
  
   SuexecUserGroup user1 user1
   &amp;lt;Directory /home/user1/public_html/your-domain.com/&amp;gt;
      Options +ExecCGI +Indexes
      AddHandler cgi-script .cgi
   &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;

&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;ERROR Pages:&lt;/h3&gt;You can specify your own web pages instead of the default Apache error pages: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;ErrorDocument 404 /Error404-missing.html&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Create the file &lt;tt&gt;Error404-missing.html&lt;/tt&gt; in your "DocumentRoot" directory. &lt;/dd&gt;&lt;/dl&gt;Handle all errors with a forwarding page: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;ErrorDocument 400 /error.shtml
ErrorDocument 401 /error.shtml
ErrorDocument 403 /error.shtml
ErrorDocument 404 /error.shtml
ErrorDocument 500 /error.shtml
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Sample file &lt;tt&gt;error.shtml&lt;/tt&gt; (in your "DocumentRoot" directory).   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;&lt;h2&gt;Page does not found!&lt;/h2&gt;&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;PHP:&lt;/h3&gt;If the appropriate php, perl and httpd RPM's are installed, the default Red Hat Apache configuration and modules will support PHP content. RPM Packages (RHEL4): &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;php: HTML-embedded scripting language &lt;/li&gt;
&lt;li&gt;php-pear: PEAR is a framework and distribution system for reusable PHP components. &lt;/li&gt;
&lt;li&gt;php-mysql: MySQL database support. &lt;/li&gt;
&lt;li&gt;php-ldap: Lightweight Directory Access Protocol (LDAP) support &lt;/li&gt;
&lt;/ul&gt;Apache configuration: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Add php default page index.php to apache config file: &lt;tt&gt;/etc/httpd/conf/httpd.conf&lt;/tt&gt;   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;...

DirectoryIndex index.html index.htm &lt;b&gt;index.php&lt;/b&gt;

...
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;PHP Configuration File: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;RHEL4 - PHP 4.3: &lt;tt&gt;/etc/php.ini&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu Daper 6.06/6.11: &lt;tt&gt;/etc/php5/apache2/php.ini&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;[PHP]
engine = On
...
...
display_errors = Off
include_path = ".:/php/includes"
...
...
memory_limit = 32M   ; &lt;i&gt;Default is typically 8MB which is too low.&lt;/i&gt;
...
...

[MySQL]
...
...
mysql.default_host = &lt;i&gt;&lt;b&gt;superserver&lt;/b&gt;&lt;/i&gt;    ; &lt;i&gt;Hostname of the computer&lt;/i&gt;
mysql.default_user = &lt;i&gt;&lt;b&gt;dbuser&lt;/b&gt;&lt;/i&gt;
...
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Small portion of file shown.  Note that changes will not take effect until the apache web server daemon is restarted. &lt;/dd&gt;&lt;/dl&gt;Test you PHP capabilities with this test file: &lt;tt&gt;/home/&lt;i&gt;user1&lt;/i&gt;/public_html/test.php&lt;/tt&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;
&amp;lt;?php
   phpinfo();
?&amp;gt;
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;OR (older format)   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;
&amp;lt;?
   phpinfo();
?&amp;gt;

&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Test: &lt;tt&gt;http://localhost/~&lt;i&gt;user1&lt;/i&gt;/test.php&lt;/tt&gt;  For more info see &lt;a href="http://www.yolinux.com/TUTORIALS/WebPageScripting.html#PHP"&gt;YoLinux list of PHP information web sites&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Running Multiple instances of &lt;tt&gt;httpd&lt;/tt&gt;:&lt;/h3&gt;The Apache web server daemon (&lt;tt&gt;httpd&lt;/tt&gt;) can be started with the command  line option "-f" to specify a unique configuration file for each instance.  Configure a unique IP address for each instance of Apache.  See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html#NETWORKALIASING"&gt;YoLinux Networking Tutorial&lt;/a&gt; to specify multiple IP addresses for one NIC (Network Interface Card). Use the Apache configuration file directive &lt;tt&gt;Listen &lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/tt&gt;, where the IP address is unique for each instance of Apache. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Apache Man Pages:&lt;/h3&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=httpd"&gt;httpd&lt;/a&gt; - Apache Hypertext Transfer Protocol Server &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=apachectl"&gt;apachectl&lt;/a&gt; - Apache HTTP Server Control Interface &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ab"&gt;ab&lt;/a&gt; - Apache HTTP server benchmarking tool &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=htdigest"&gt;htdigest&lt;/a&gt; - manage user files for digest authentication &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=htpasswd"&gt;htpasswd&lt;/a&gt; - Manage user files for basic authentication &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=logresolve"&gt;logresolve&lt;/a&gt; - Resolve IP-addresses to hostnames in Apache log files &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=rotatelogs"&gt;rotatelogs&lt;/a&gt; - Piped logging program to rotate Apache logs &lt;/li&gt;
&lt;/ul&gt;Also see the local online Apache configuration manual: &lt;a href="http://localhost/manual/"&gt;http://localhost/manual/&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;h3&gt;Apache Red Hat / Fedora Core GUI configuration:&lt;/h3&gt;GUI configuration tool: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Red Hat EL 4/5, Fedora 2-10: &lt;tt&gt;/usr/bin/system-config-httpd&lt;/tt&gt; &lt;/li&gt;
&lt;li&gt;Red Hat 8/9, Fedora Core 1: &lt;tt&gt;/usr/bin/redhat-config-httpd&lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;img alt="Red Hat Apache httpd configuration tool" src="http://www.yolinux.com/TUTORIALS/images/system-config-httpd.gif" /&gt; &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;b&gt;Adding web site login and password protection:&lt;/b&gt; See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html"&gt;YoLinux tutorial on web site password protection&lt;/a&gt;. &lt;br /&gt;
&lt;b&gt;Log file analysis:&lt;/b&gt; &lt;br /&gt;
Scanning the Apache web log files will not provide meaningfull statistics  unless they are graphed or presented in an easy to read fashion. The following  packages to a good job of presenting site statistics. &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.analog.cx/"&gt;Analog&lt;/a&gt; - Also see &lt;a href="http://www.reportmagic.org/"&gt;Report Magic for Analog&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.webalizer.com/"&gt;Webalizer&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://awstats.sourceforge.net/"&gt;AWStats&lt;/a&gt; - (requires PERL) &lt;/li&gt;
&lt;/ul&gt;Web site statistic services: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.extreme-dm.com/tracking/?reg"&gt;eXTReMe Tracking&lt;/a&gt;  &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Load testing your server:&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ideit.com/products/pureload/"&gt;PureLoad&lt;/a&gt; - JAVA load testing and reporting tool. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.webperfcenter.com/"&gt;WebPerformance Trainer&lt;/a&gt; - Load Testing Tools. &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Apache Links:&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cgiwrap.unixtools.org/"&gt;CgiWrap&lt;/a&gt; - setuid wrapper that allows users to install and execute their own cgi scripts that get executed as their own userid &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wwwthreads.org/"&gt;WWWThreads.org&lt;/a&gt; - Commercial product - Advanced Web Conferencing Software &lt;/li&gt;
&lt;li&gt;Configuring https (mod_ssl):     &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.modssl.org/"&gt;Mod_SSL.org: Home Page&lt;/a&gt;     &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.modssl.org/docs/2.8/ssl_howto.html"&gt;Mod_SSL.org: Mod_SSL HowTo&lt;/a&gt;     &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.modssl.org/docs/2.8/ssl_faq.html#cert-real"&gt;Mod_SSL.org: Steps to create SSL server certificate&lt;/a&gt;     &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="ANALOG"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;b&gt;&lt;big&gt;Log file analysis using Analog:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Installation: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Red Hat / Fedora: &lt;tt&gt;yum install analog&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu / Debian: &lt;tt&gt;apt-get install analog&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;Installation packages also available from the &lt;a href="http://www.analog.cx/download.html"&gt;Analog downloads page&lt;/a&gt;.  &lt;br /&gt;
Configuration file: &lt;tt&gt;/etc/analog.cfg&lt;/tt&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;LOGFILE /var/log/httpd/&lt;i&gt;your-domain.com&lt;/i&gt;-access_log* http://www.&lt;i&gt;your-domain.com&lt;/i&gt;
UNCOMPRESS *.gz,*.Z "gzip -cd"
SUBTYPE *.gz,*.Z
#
OUTFILE /home/&lt;i&gt;user1&lt;/i&gt;/public_html/analog/Report.html
#
HOSTNAME "&lt;i&gt;YourDomain.com&lt;/i&gt;"
HOSTURL  http://www.&lt;i&gt;your-domain.com&lt;/i&gt;

....
...
..

REQINCLUDE pages                  &lt;i&gt;&lt;b&gt;# Request page stats only&lt;/b&gt;&lt;/i&gt;
ALL ON
LANGUAGE US-ENGLISH
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;One can view the settings which be used with your configuration file (also good for debugging): &lt;tt&gt;analog -settings&lt;/tt&gt;  Make Analog images available to the users report: &lt;tt&gt;ln -s /usr/share/analog/images/* /home/&lt;i&gt;user1&lt;/i&gt;/public_html/analog&lt;/tt&gt;  Log file location:   &lt;ul&gt;&lt;li&gt;Red Hat / Fedora: &lt;tt&gt;/var/log/httpd/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu / Debian: &lt;tt&gt;/var/log/apache2/&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;The Directive &lt;tt&gt;ALL ON&lt;/tt&gt; turns on all of the following: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Analog Directive&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;MONTHLY ON       &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;one line for each month&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;WEEKLY ON        &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;one line for each week&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;DAILYREP ON      &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;one line for each day&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;DAILYSUM ON      &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;one line for each day of the week&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;HOURLYREP ON     &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;one line for each hour of the day&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;GENERAL ON       &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;the General Summary at the top&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;REQUEST ON       &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;which files were requested&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;FAILURE ON       &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;which files were not found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;DIRECTORY ON     &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;Directory Report&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;HOST ON          &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;which computers requested files&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;ORGANISATION ON  &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;which organisations they were from&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;DOMAIN ON        &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;which countries they were in&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;REFERRER ON      &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;where people followed links from&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;FAILREF ON       &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;where people followed broken links from&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;SEARCHQUERY ON   &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;the phrases and words they used...&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;SEARCHWORD ON    &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;...to find you from search engines&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;BROWSERSUM ON    &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;which browser types people were using&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;OSREP ON         &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;and which operating systems&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;FILETYPE ON      &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;types of file requested&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;SIZE ON          &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;sizes of files requested&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;tt&gt;STATUS ON        &lt;/tt&gt;&lt;/td&gt;&lt;td&gt;number of each type of success and failure&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Cron job to handle multiple domains: &lt;tt&gt;/etc/cron.daily/analog&lt;/tt&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;#!/bin/sh
cp /opt/etc/analog-domain1.com.cfg      /etc/analog.cfg
/usr/bin/analog
cp /opt/etc/analog-domain2.com.cfg      /etc/analog.cfg
/usr/bin/analog

...
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Links: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.analog.cx/"&gt;Analog home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.analog.cx/docs/quickref.html"&gt;Analog command reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="HTTPERF"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;b&gt;&lt;big&gt;Measuring Web Server Performance:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;See the YoLinux.com &lt;a href="http://www.yolinux.com/TUTORIALS/WebServerBenchmarking.html"&gt;web server benchmarking tutorial&lt;/a&gt;. &lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="FTPD"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt; &lt;td&gt;&lt;b&gt;&lt;big&gt;FTPd and FTP user account configuration:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Many FTP programs exist. This example covers the popular       &lt;a href="http://vsftpd.beasts.org/"&gt;vsftpd&lt;/a&gt; (Red Hat default 9.0, Fedora Core, Suse) and        &lt;a href="http://www.wfms.org/wu-ftpd/"&gt;wu-ftpd&lt;/a&gt; (Washington University) program which comes standard with RedHat (last shipped with RedHat 8.0 but can be installed on any Linux system). (RPM: wu-ftpd) There are other FTP programs including &lt;a href="http://www.proftpd.org/"&gt;proFtpd&lt;/a&gt;  (supports LDAP authentication, Apache like directives, full featured  ftp server software),        &lt;a href="http://www.bftpd.org/"&gt;bftpd&lt;/a&gt;, &lt;a href="http://www.pureftpd.org/"&gt;pure-ftpd&lt;/a&gt; (free BSD and optional on Suse), etc ... &lt;br /&gt;
For hostile environments set up a chrooted environment for an &lt;tt&gt;sftp&lt;/tt&gt; encrypted connection and the &lt;tt&gt;rssh&lt;/tt&gt; restricted shell for OpenSSH.  See the YoLinux.com internet security tutorial for &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInternetSecurity.html#RSSH"&gt;&lt;b&gt;Linux &lt;tt&gt;sftp&lt;/tt&gt; and &lt;tt&gt;rssh&lt;/tt&gt; configuration&lt;/b&gt;&lt;/a&gt; &lt;br /&gt;
FTPd and SELinux: To allow FTPd daemon access and FTP access to users home directories: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;tt&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=setsebool"&gt;setsebool&lt;/a&gt; -P allow_ftpd_full_access=1&lt;/tt&gt;      &lt;br /&gt;
Other wise you will get an error in &lt;tt&gt;/var/log/messages&lt;/tt&gt;:       &lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;&lt;td&gt;&lt;tt&gt;SELinux is preventing the ftp daemon from writing files outside the home directory (./public_html).&lt;/tt&gt;      &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;
&lt;li&gt; &lt;tt&gt;setsebool -P ftp_home_dir 1&lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Follow with the command &lt;tt&gt;service vsftpd restart&lt;/tt&gt;   FTPd configuration tutorials: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html#VSFTPD"&gt;# vsFTPd&lt;/a&gt;: Configuration &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html#WUFTPD"&gt;# WU-FTPd&lt;/a&gt;: Configuration &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html#FTPCLIENTS"&gt;# FTP Clients&lt;/a&gt;: Links &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="VSFTPD"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;b&gt;&lt;big&gt;vsFTPd and FTP user account configuration:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;The vsFTPd ftp server was first made available in Red Hat 9.0. It has been adopted by Suse and OpenBSD as well. This is currently the recomended FTP daemon for use on FTP servers. &lt;br /&gt;
&lt;b&gt;Enable vsftpd:&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Red Hat/Fedora Core/CentOS: VsFTPd is a stand alone service and by the default Fedora Core installation, not controlled by xinetd as is the wu-ftpd default installation.           &lt;br /&gt;
Thus start service: &lt;tt&gt;service vsftpd start&lt;/tt&gt; (or: &lt;tt&gt;/etc/init.d/vsftpd start&lt;/tt&gt;)           &lt;br /&gt;
Configure vsftpd to start upon system boot: &lt;tt&gt;chkconfig --add vsftpd&lt;/tt&gt;                      &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;SuSE: By default, the vsftpd is an xinetd controlled service. To enable  FTP server services edit the file &lt;tt&gt;/etc/xinetd.d/vsftpd&lt;/tt&gt; and change:           &lt;br /&gt;
&lt;tt&gt;disable         = yes&lt;/tt&gt;           &lt;br /&gt;
to:           &lt;br /&gt;
&lt;tt&gt;disable         = no&lt;/tt&gt;           &lt;br /&gt;
Restart the xinetd daemon: &lt;tt&gt;/etc/init.d/xinetd restart&lt;/tt&gt;           &lt;br /&gt;
Note: vsftpd can also be run as a stand-alone service to achieve a faster response time.                      &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Ubuntu (dapper/hardy/natty) / Debian:      &lt;ul&gt;&lt;li&gt;Install: &lt;tt&gt;apt-get install vsftpd&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;VsFTPd is a stand alone service.         &lt;ul&gt;&lt;li&gt;Start: &lt;tt&gt;/etc/init.d/vsftpd start&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;Stop: &lt;tt&gt;/etc/init.d/vsftpd stop&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;Restart: &lt;tt&gt;/etc/init.d/vsftpd restart&lt;/tt&gt;             &lt;br /&gt;
(Use this command after making configuration file changes)         &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;For more on starting/stopping/configuring Linux services, see the        &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html"&gt;YoLinux tutorial on the Linux init process and service activation&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Configuration files:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;vsFTPd  configuration file:      &lt;ul&gt;&lt;li&gt;Fedora Core / Red Hat: &lt;tt&gt;/etc/vsftpd/vsftpd.conf&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;S.u.S.e. / Ubuntu (dapper/hardy/natty) / Debian: &lt;tt&gt;/etc/vsftpd.conf&lt;/tt&gt;     &lt;/li&gt;
&lt;/ul&gt;Default for Fedora Core 3:&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;anonymous_enable=YES            &lt;b&gt;&lt;span style="color: #006600;"&gt;- Anonymous FTP allowed by default if you comment this out. Default directory used: &lt;tt&gt;/var/ftp&lt;/tt&gt;&lt;/span&gt;&lt;/b&gt;

local_enable=YES                &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uncomment this to allow local users to log in with FTP.&lt;/span&gt;&lt;/b&gt;
                                &lt;b&gt;&lt;span style="color: #006600;"&gt;  Must also set SELinux boolean: setsebool -P ftp_home_dir 1&lt;/span&gt;&lt;/b&gt;

write_enable=YES                &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uncomment this to enable any form of FTP write or upload command.&lt;/span&gt;&lt;/b&gt;

local_umask=022                 &lt;b&gt;&lt;span style="color: #006600;"&gt;- Default is 077. Umask 022 is used by most other ftpd's.&lt;/span&gt;&lt;/b&gt;

#anon_upload_enable=YES         &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uncomment to allow the anonymous FTP user to upload files. 
                                  Requires the above global write enabled. Directory must also be writable by user.&lt;/span&gt;&lt;/b&gt;
#anon_mkdir_write_enable=YES    &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uncomment this to allow the anonymous FTP user to be able to create new directories.&lt;/span&gt;&lt;/b&gt;

dirmessage_enable=YES           &lt;b&gt;&lt;span style="color: #006600;"&gt;- Activate directory messages. 
                                  Messages given to remote users when they enter certain directories&lt;/span&gt;&lt;/b&gt;
xferlog_enable=YES              &lt;b&gt;&lt;span style="color: #006600;"&gt;- Activate logging of uploads/downloads.&lt;/span&gt;&lt;/b&gt;

connect_from_port_20=YES        &lt;b&gt;&lt;span style="color: #006600;"&gt;- PORT transfer connections originate from port 20 (ftp-data)&lt;/span&gt;&lt;/b&gt;

#chown_uploads=YES              &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uploaded anonymous files set to a specified owner. (not root)&lt;/span&gt;&lt;/b&gt;
#chown_username=&lt;i&gt;whoever&lt;/i&gt;

#xferlog_file=/var/log/vsftpd.log &lt;b&gt;&lt;span style="color: #006600;"&gt;- Specify logfile explicitly. Default is &lt;tt&gt;/var/log/vsftpd.log&lt;/tt&gt;&lt;/span&gt;&lt;/b&gt;

xferlog_std_format=YES          &lt;b&gt;&lt;span style="color: #006600;"&gt;- Output to log file in standard ftpd xferlog format&lt;/span&gt;&lt;/b&gt;

#idle_session_timeout=600       &lt;b&gt;&lt;span style="color: #006600;"&gt;- Set timing out for an idle session.&lt;/span&gt;&lt;/b&gt;

#data_connection_timeout=120    &lt;b&gt;&lt;span style="color: #006600;"&gt;- Set timing out for an idle data connection. Port 20&lt;/span&gt;&lt;/b&gt;

#nopriv_user=ftpsecure          &lt;b&gt;&lt;span style="color: #006600;"&gt;- Run ftp server as an isolated and unprivileged user.&lt;/span&gt;&lt;/b&gt;

# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it, may confuse older FTP clients.
#async_abor_enable=YES

#ascii_upload_enable=YES        &lt;b&gt;&lt;span style="color: #006600;"&gt;- Improve performance by disabling ASCII mode. Disables command "ascii" and "SIZE /big/file".&lt;/span&gt;&lt;/b&gt;
#ascii_download_enable=YES

#ftpd_banner=Welcome to YoLinux &lt;b&gt;&lt;span style="color: #006600;"&gt;- Customize the login banner string.&lt;/span&gt;&lt;/b&gt;

#deny_email_enable=YES          &lt;b&gt;&lt;span style="color: #006600;"&gt;- Disallow specified anonymous e-mail addresses. Used to combat certain DoS attacks.&lt;/span&gt;&lt;/b&gt;
#banned_email_file=/etc/vsftpd.banned_emails  &lt;b&gt;&lt;span style="color: #006600;"&gt;(Ubuntu default. Red Hat: /etc/vsftpd/banned_emails)&lt;/span&gt;&lt;/b&gt;

#chroot_list_enable=YES         &lt;b&gt;&lt;span style="color: #006600;"&gt;- List users chroot()'d to their home directory. If "NO", list users not chroot()'d.&lt;/span&gt;&lt;/b&gt;
#chroot_list_file=/etc/vsftpd.chroot_list     &lt;b&gt;&lt;span style="color: #006600;"&gt;(Ubuntu default. Red Hat: /etc/vsftpd/chroot_list)&lt;/span&gt;&lt;/b&gt;

ls_recurse_enable=YES           &lt;b&gt;&lt;span style="color: #006600;"&gt;- Allow "ls -R" recursive directory list. Default is disabled.&lt;/span&gt;&lt;/b&gt;

pam_service_name=vsftpd

userlist_enable=YES             &lt;b&gt;&lt;span style="color: #006600;"&gt;- (Ubuntu Default) Deny users specified in file &lt;tt&gt;/etc/vsftpd.user_list&lt;/tt&gt;
                                  If "&lt;tt&gt;userlist_enable=NO&lt;/tt&gt;" then allow specified users.&lt;/span&gt;
                                  Red Hat: /etc/vsftpd/user_list&lt;/b&gt;
#deny_email_enable=YES          &lt;b&gt;&lt;span style="color: #006600;"&gt;- Disallow specified anonymous e-mail addresses. Used to combat certain DoS attacks.&lt;/span&gt;&lt;/b&gt;

listen=YES                      &lt;b&gt;&lt;span style="color: #006600;"&gt;- Enable for standalone mode as opposed to an xinetd service.&lt;/span&gt;&lt;/b&gt;
                                &lt;b&gt;&lt;span style="color: #006600;"&gt;  Must set SELinux boolean: setsebool -P ftpd_is_daemon 1&lt;/span&gt;&lt;/b&gt;
tcp_wrappers=YES
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;Restart the FTP service if the config file is changed: &lt;tt&gt;service vsftpd restart&lt;/tt&gt; (or: &lt;tt&gt;/etc/init.d/vsftpd restart&lt;/tt&gt;)             &lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: vsftp does NOT support comments on the same line as a directive. i.e.:
&lt;dl&gt;&lt;dd&gt;&lt;tt&gt;directive=XXX    # comment&lt;/tt&gt;       &lt;/dd&gt;&lt;/dl&gt;&lt;a href="http://vsftpd.beasts.org/vsftpd_conf.html"&gt;vsftp.conf man page&lt;/a&gt;     &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Specify list of local users chrooted to their home directories:     &lt;ul&gt;&lt;li&gt;Red Hat: &lt;tt&gt;/etc/vsftpd/vsftpd/chroot_list&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu: &lt;tt&gt;/etc/vsftpd/vsftpd.chroot_list&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;(Requires: &lt;tt&gt;chroot_list_enable=NO&lt;/tt&gt;)&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;&lt;i&gt;user1
user2
...
user-n&lt;/i&gt;
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;If &lt;tt&gt;userlist_enable=YES&lt;/tt&gt;, then specify users not to be chroot'd..     &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Specify list of users:     &lt;ul&gt;&lt;li&gt;Red Hat: &lt;tt&gt;/etc/vsftpd/user_list&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu: &lt;tt&gt;/etc/vsftpd.user_list&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;(Deny list of users requires: &lt;tt&gt;userlist_enable=YES&lt;/tt&gt;)     &lt;br /&gt;
Also see PAM configuration below.&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;root
bin
daemon
adm
lp
sync
shutdown
halt
...&lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;If &lt;tt&gt;userlist_enable=NO&lt;/tt&gt;, then specify valid users.     &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;PAM configuration file Fedora Core 3: &lt;tt&gt;/etc/pam.d/vsftpd&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;#%PAM-1.0
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;This causes PAM to check &lt;tt&gt;/etc/vsftpd.ftpusers&lt;/tt&gt; for users who are denied. This duplicates &lt;tt&gt;/etc/vsftpd.user_list&lt;/tt&gt;. Speciy user in both files as PAM is independent of vsftpd configuration.           PAM authentication configuration file: &lt;tt&gt;ftpusers&lt;/tt&gt;       &lt;ul&gt;&lt;li&gt;Red Hat: &lt;tt&gt;/etc/vsftpd/ftpusers&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu: &lt;tt&gt;/etc/vsftpd.ftpusers&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;root
bin
daemon
adm
lp
sync
shutdown
halt
...
...
...
&lt;i&gt;&lt;b&gt;user6&lt;/b&gt;&lt;/i&gt;     &lt;i&gt;&lt;b&gt;&lt;span style="color: #009900;"&gt;- Users to deny&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;
&lt;i&gt;&lt;b&gt;user8&lt;/b&gt;&lt;/i&gt;
...
...
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Logrotate configuration file: &lt;tt&gt;/etc/logrotate.d/vsftpd.log&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;/var/log/xferlog {
    # ftpd doesn't handle SIGHUP properly
    nocompress
    missingok
}
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;b&gt;Sample vsFTPd configurations:&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Anonymous download FTP server configuration: &lt;tt&gt;/etc/vsftpd/vsftpd.conf&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;# Access rights
anonymous_enable=YES          &lt;b&gt;&lt;span style="color: #006600;"&gt;- Turn on anonymous FTP&lt;/span&gt;&lt;/b&gt;
chown_uploads=YES             &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uploaded files owned by an assigned user&lt;/span&gt;&lt;/b&gt;
chown_username=ftp            &lt;b&gt;&lt;span style="color: #006600;"&gt;- Uploaded files owned by this assigned user&lt;/span&gt;&lt;/b&gt;
local_enable=NO
write_enable=NO               &lt;b&gt;&lt;span style="color: #006600;"&gt;- No upload of files system changes allowed&lt;/span&gt;&lt;/b&gt;
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
# Security
anon_world_readable_only=YES
connect_from_port_20=YES
force_dot_files=NO
guest_enable=NO
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000
# Features
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
# Performance
one_process_model=NO
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
max_per_ip=4
anon_max_rate=50000

pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;Anonymous logins use the login name "anonymous" and then the user supplies their email address as a password. Any password will be accepted. Used to allow the public to download files from an ftp server.  Generally, no upload is permitted. &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Web hosting configuration: &lt;tt&gt;/etc/vsftpd/vsftpd.conf&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;# Access rights
anonymous_enable=NO
local_enable=YES                              &lt;b&gt;&lt;span style="color: #006600;"&gt;- Allow users to ftp to their home directories&lt;/span&gt;&lt;/b&gt;
write_enable=YES                              &lt;b&gt;&lt;span style="color: #006600;"&gt;- Allow users to STOR,  DELE, RNFR, RNTO, MKD, RMD, APPE and SITE&lt;/span&gt;&lt;/b&gt;
local_umask=022
# Security
connect_from_port_20=YES
force_dot_files=NO
guest_enable=NO                               &lt;b&gt;&lt;span style="color: #006600;"&gt;- Don't remap user name&lt;/span&gt;&lt;/b&gt;
ftpd_banner=Welcome to Super Duper Hosting    &lt;b&gt;&lt;span style="color: #006600;"&gt;- Customize the login banner string.&lt;/span&gt;&lt;/b&gt;
chroot_local_user=YES                         &lt;b&gt;&lt;span style="color: #006600;"&gt;- Limit user to browse their own directory only&lt;/span&gt;&lt;/b&gt;
chroot_list_enable=YES                        &lt;b&gt;&lt;span style="color: #006600;"&gt;- Enable list of system / power users&lt;/span&gt;&lt;/b&gt;
chroot_list_file=/etc/vsftpd.chroot_list      &lt;b&gt;&lt;span style="color: #006600;"&gt;- Actual list of system / power users&lt;/span&gt;&lt;/b&gt;
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000
# Features
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
dirmessage_enable=YES                         &lt;b&gt;&lt;span style="color: #006600;"&gt;- Message greeting held in file .message or specify with message_file=...&lt;/span&gt;&lt;/b&gt;
# Performance
one_process_model=NO
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
max_per_ip=4
#
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Specify list of local users chrooted to their home directories: &lt;tt&gt;/etc/vsftpd/vsftpd.chroot_list&lt;/tt&gt;     &lt;br /&gt;
Ubuntu typically: &lt;tt&gt;/etc/vsftpd.chroot_list&lt;/tt&gt;     &lt;br /&gt;
(Requires: &lt;tt&gt;chroot_list_enable=NO&lt;/tt&gt;) &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;&lt;i&gt;user1
user2
...
user-n&lt;/i&gt;
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;If &lt;tt&gt;userlist_enable=YES&lt;/tt&gt;, then specify users not to be chroot'd.. &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Mispelling a directive will cause vsftpd to fail with little warning. &lt;br /&gt;
File: &lt;tt&gt;.message&lt;/tt&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;A NOTE TO USERS UPLOADING FILES:
   File names may consist of letters (a-z, A-Z), numbers (0-9),
   an under score ("_"), dash ("-") or period (".") only.
   The file name may not begin with a period or dash.
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;b&gt;Test if vsftp is listening:&lt;/b&gt; &lt;tt&gt;netstat -a | grep ftp&lt;/tt&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;[root]# netstat -a | grep ftp
tcp        0      0 *:ftp                       *:*                         LISTEN&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;b&gt;Links:&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://vsftpd.beasts.org/"&gt;vsFTPd Home Page&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-2.0.3/EXAMPLE/"&gt;Sample configurations&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://vsftpd.beasts.org/vsftpd_conf.html"&gt;vsftp.conf Man page&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="WUFTPD"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;b&gt;&lt;big&gt;WU-FTPd and FTP user account configuration:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;The wu-ftpd FTP server can be downloaded (binary or source) from  &lt;a href="http://www.wfms.org/wu-ftpd/"&gt;http://www.wfms.org/wu-ftpd/&lt;/a&gt; (at one time: http://wu-ftpd.org). &lt;br /&gt;
There are three kinds of FTP logins that wu-ftpd provides: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;anonymous FTP - one logs in with the username 'anonymous' &lt;/li&gt;
&lt;li&gt;real FTP  - log in with a real username and password and has access to the entire disk structure. &lt;/li&gt;
&lt;li&gt;guest FTP - one logs in with a real user name and password, but the user is chroot'ed to his home directory and cannot escape from it.  They are constrained to their home directory which also means that they don't  have access to /bin/ls and other commands on the server.  Thus a local minimalist environment must be set up. &lt;/li&gt;
&lt;/ul&gt;This tutorial covers "guest" FTP configuration.  &lt;br /&gt;
&lt;hr /&gt;The file &lt;tt&gt;/etc/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpaccess"&gt;ftpaccess&lt;/a&gt;&lt;/tt&gt; controls the configuration of ftp. &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;# Don't allow system accounts to log in over ftp
   deny-uid %-99 %65534-
   deny-gid %-99 %65534-

   class   all   real,guest  *
   email webmaster@&lt;b&gt;&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/b&gt;
   loginfails 5

   readme  README*    login
   readme  README*    cwd=*
   message /welcome.msg            login
   message .message                cwd=*

   compress        yes             all
   tar             yes             all
   chmod           no              guest,anonymous
   delete          no              anonymous    # delete files permission?
   overwrite       no              anonymous    # overwrite files permission?
   rename          no              anonymous    # rename files permission?
   delete          yes             guest        # delete files permission?
   overwrite       yes             guest        # overwrite files permission?
   rename          yes             guest        # rename files permission?
   umask           no              guest        # umask permission?

   log transfers anonymous,real inbound,outbound

   shutdown /etc/shutmsg

   passwd-check rfc822 warn

   # Must also create message file /etc/pathmsg of the guest directory.
   # In this case it refers to /home/user1/public_html/etc/pathmsg.
   path-filter  guest /etc/pathmsg  ^[-A-Za-z0-9_\.]*$  ^\.  ^-
   limit all 2
   noretrieve passwd .htaccess core    &lt;b&gt;&lt;span style="color: #006600;"&gt;- Do not allow users to download files of these names&lt;/span&gt;&lt;/b&gt;
   limit-time * 20
   byte-limit in 5000                  &lt;b&gt;&lt;span style="color: #006600;"&gt;- Limit file size&lt;/span&gt;&lt;/b&gt;
   guestuser *      &lt;b&gt;&lt;span style="color: #006600;"&gt;- Set system user default to be categorized as a "guest". A "real" user can roam the system. Guestuser is chrooted.&lt;/span&gt;&lt;/b&gt;
   realgroup regularuserx regularusery &lt;b&gt;&lt;span style="color: #006600;"&gt;- Assign real user privileges to members of groups "regularuserx" and "regularusery". 
                                         Visibility of the whole file system and subject to regular UNIX file permissions&lt;/span&gt;&lt;/b&gt;
   realuser user4                      &lt;b&gt;&lt;span style="color: #006600;"&gt;- Assign real user privileges to user id "user4". &lt;/span&gt;&lt;/b&gt;

   restricted-uid &lt;b&gt;user1&lt;/b&gt; user2 user3    &lt;b&gt;&lt;span style="color: #006600;"&gt;- Restricts FTP to the specified directories&lt;/span&gt;&lt;/b&gt;
   guest-root /home/user1/public_html &lt;b&gt;user1&lt;/b&gt;
   guest-root /home/user2/public_html user2
   guest-root /home/user3/public_html user3

&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Note:  &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;user1, user2&lt;/tt&gt; and &lt;tt&gt;user3&lt;/tt&gt; refer to login accounts. Use the appropriate login name. &lt;/li&gt;
&lt;li&gt;The above configuration disables anonymous FTP which allows anyone to  perform an FTP login with the id &lt;b&gt;anonymous&lt;/b&gt; and an email address as a password. To enable anonymous FTP, change the &lt;tt&gt;class&lt;/tt&gt; directive to:           &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;tt&gt;class   all   real,guest,anonymous  *&lt;/tt&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;GUI FTP configuration tools:     &lt;ul&gt;&lt;li&gt;&lt;tt&gt;/usr/bin/kwuftpd&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/sbin/linuxconf&lt;/tt&gt;         &lt;br /&gt;
(Note: Linuxconf is no longer included with Red Hat 7.3 and later)     &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Red Hat Linux assigns users a user id and group id which is the same.     This means that it does not matter if you use a &lt;tt&gt;realuser&lt;/tt&gt; or     &lt;tt&gt;realgroup&lt;/tt&gt; directive as they will act the same. &lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Red Hat Linux 7.1 and later uses the xinet daemon to manage ftp connections.     Thus xinetd must be running and configured to support ftp. The      configuration file is &lt;tt&gt;/etc/xinetd.d/wu-ftpd&lt;/tt&gt;.     The command &lt;tt&gt;chkconfig wu-ftpd on&lt;/tt&gt; will make the ftp server available.     See &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInternetSecurity.html#SECURITY"&gt;xinet configuration&lt;/a&gt; for more info. &lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Allow overide of &lt;tt&gt;deny-uid&lt;/tt&gt; and/or &lt;tt&gt;deny-gid&lt;/tt&gt;:      &lt;pre&gt;allow-uid &lt;b&gt;&lt;i&gt;user-to-allow&lt;/i&gt;&lt;/b&gt;
     allow-gid &lt;b&gt;&lt;i&gt;group-to-allow&lt;/i&gt;&lt;/b&gt;
    &lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Optional configuration:     &lt;ul&gt;&lt;li&gt;Create a group &lt;tt&gt;ftpchroot&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;Add users to this group     &lt;/li&gt;
&lt;li&gt;Use directive: &lt;tt&gt;guestgroup ftpchroot&lt;/tt&gt;     &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Flakey ftp behavior,  timeouts, etc?? FTP works best with name resolution of the computer it is  communicating with.  This requires proper &lt;tt&gt;/etc/resolve.conf&lt;/tt&gt; and name server (bind)  configuration, &lt;tt&gt;/etc/hosts&lt;/tt&gt; or NIS/NFS configuration. &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;File &lt;tt&gt;/home/user1/public_html/etc/pathmsg&lt;/tt&gt;: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;A NOTE TO USERS UPLOADING FILES:
   File names may consist of letters (a-z, A-Z), numbers (0-9),
   an under score ("_"), dash ("-") or period (".") only.
   The file name may not begin with a period or dash.
   You have tried to upload a file with an inappropriate name.
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;hr /&gt;The whole point of the chroot directory is to make the  user's home directory appear to be the root of the filesystem (/) so one could not wander around the filesystem. Configuration of &lt;tt&gt;/etc/ftpaccess&lt;/tt&gt; will limit the user to their respective directories while still offering access to /bin/ls and other system commands  used in FTP operation. &lt;br /&gt;
As root: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;cd /home/&lt;i&gt;user1&lt;/i&gt;
   mkdir public_html
   chown $1.$1 public_html
   touch .rhosts             &lt;b&gt;- Security protection&lt;/b&gt;
   chmod ugo-xrw .rhosts 
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;h4&gt;Man Pages:&lt;/h4&gt;&lt;dl&gt;&lt;dd&gt;&lt;b&gt;Server:&lt;/b&gt;   &lt;ul&gt;&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpd"&gt;ftpd&lt;/a&gt; - Internet File Transfer Protocol server &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;File Formats:&lt;/b&gt;   &lt;ul&gt;&lt;li&gt;/etc/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpaccess"&gt;ftpaccess&lt;/a&gt; - Configuration file for ftpd &lt;/li&gt;
&lt;li&gt;/etc/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpservers"&gt;ftpservers&lt;/a&gt; - ftpd virtual hosting configuration file. (optional) &lt;/li&gt;
&lt;li&gt;/etc/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftphosts"&gt;ftphosts&lt;/a&gt; - allow or deny access to certain accounts from various hosts. (optional) &lt;/li&gt;
&lt;li&gt;/etc/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpconversions"&gt;ftpconversions&lt;/a&gt; - ftpd conversions database (for tar and compression) &lt;/li&gt;
&lt;li&gt;/var/log/&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=xferlog"&gt;xferlog&lt;/a&gt; - FTP server logfile &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftp"&gt;ftp&lt;/a&gt; - File Transfer Client program &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h4&gt;Configuration files: (RH 8.0+)&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;PAM configuration file: &lt;tt&gt;/etc/pam.d/ftp&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;#%PAM-1.0
auth       required     pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Xinetd configuration file: &lt;tt&gt;/etc/xinetd.d/wu-ftpd&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                     &lt;td&gt;&lt;pre&gt;service ftp
{
        disable = no
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.ftpd
        server_args             = -l -a
        log_on_success          += DURATION USERID
        log_on_failure          += USERID
        nice                    = 10
}&lt;/pre&gt;&lt;/td&gt;                   &lt;/tr&gt;
&lt;/tbody&gt;               &lt;/table&gt;Note: wu-FTPd is controlled by xinetd and not a stand alone service like vsFTPd.             &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Logrotate configuration file: &lt;tt&gt;/etc/logrotate.d/ftpd&lt;/tt&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                     &lt;td&gt;&lt;pre&gt;/var/log/xferlog {
    nocompress
}&lt;/pre&gt;&lt;/td&gt;                   &lt;/tr&gt;
&lt;/tbody&gt;               &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h4&gt;More information:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.wfms.org/wu-ftpd/"&gt;WU-FTPD release&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.kegel.com/dkftpbench/"&gt;dkftpbench&lt;/a&gt; - FTP benchmark program to give you an idea as to how many simultaneous dialup clients a server can support.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://peterbenjamin.com/seminars/crossplatform/texteol.html"&gt;FTP and text file type conversions: End Of Line Characters&lt;/a&gt; - by Peter Benjamin         &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h4&gt;Man pages on related FTP commands and files:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=chroot"&gt;chroot&lt;/a&gt; - Run with a special root directory         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpcount"&gt;ftpcount&lt;/a&gt; - Show number of concurrent users.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpshut"&gt;ftpshut&lt;/a&gt; - close down the ftp servers at a given time         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftprestart"&gt;ftprestart&lt;/a&gt; - Restart previously shutdown ftp servers         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpwho"&gt;ftpwho&lt;/a&gt; - show current process information for each ftp user         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=privatepw"&gt;privatepw&lt;/a&gt; - Change WU-FTPD Group Access File Information (admin command)         &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h4&gt;Other FTP daemons:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ftp4all.de/v3/noframes/index.html"&gt;FTP4All&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crushftp.com/"&gt;CrushFTP&lt;/a&gt; - Java/cross platform         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://ipswitch.com/Products/file-transfer.html"&gt;WS_FTP&lt;/a&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="FTPPITFALLS"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;FTP Pitfalls:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;If you get the following error:       &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;ftp&amp;gt; ls
227 Entering Passive Mode (208,188,34,109,208,89)
ftp: connect: No route to host&lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;This means you have firewall issues most probably on the FTP server itself. Start by removing the firewall "iptables" rules: &lt;tt&gt;iptables -F&lt;/tt&gt; Add rules until you discover what is causing the problem.              &lt;br /&gt;
&lt;h4&gt;Passive mode:&lt;/h4&gt;Passive mode can also help one past the rules: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;ftp&amp;gt; passive
Passive mode on.&lt;/pre&gt;This toggles passive mode on and off. When on, FTP will be limited to ports specified in the vsftpd configuration file: &lt;tt&gt;vsftpd.conf&lt;/tt&gt; with the parameters &lt;tt&gt;pasv_min_port&lt;/tt&gt; and &lt;tt&gt;pasv_max_port&lt;/tt&gt;         &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h4&gt;Firewall connection tracking module:&lt;/h4&gt;&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;# cat /etc/sysconfig/iptables-config | grep ip_nat_ftp
IPTABLES_MODULES="ip_conntrack_ftp"&lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h4&gt;NAT firewall modules:&lt;/h4&gt;You can also try adding &lt;tt&gt;ip_nat_ftp&lt;/tt&gt; to the list of autoloaded modules: (This will also load the dependancy: &lt;tt&gt;ip_conntrack_ftp&lt;/tt&gt;.) &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;# cat /etc/sysconfig/iptables-config | grep ip_nat_ftp
IPTABLES_MODULES="ip_nat_ftp"&lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;Then restart the firewall: &lt;tt&gt;/etc/init.d/iptables condrestart&lt;/tt&gt;        FTP will change ports during use. The &lt;tt&gt;ip_conntrack_ftp&lt;/tt&gt; module will consider each connection "RELATED". If iptables allows RELATED and ESTABLISHED connections then FTP will work. i.e. rule: &lt;tt&gt;/etc/sysconfig/iptables&lt;/tt&gt;       &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h4&gt;FTP fails because it can not change to the users home directory:&lt;/h4&gt;&lt;dl&gt;&lt;dd&gt;Error:   &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;[user1@nodex ~]$ ftp &lt;b&gt;&lt;i&gt;node.domain.com&lt;/i&gt;&lt;/b&gt;
Connected to XXX.XXX.XXX.XXX.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (XXX.XXX.XXX.XXX:user1):
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/user1
Login failed.
ftp&amp;gt; bye
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;This is often a result of SELinux preventing the vsftpd process from accesing the user's home directory.  As root, grant access with the following command:  &lt;tt&gt;setsebool -P ftp_home_dir 1&lt;/tt&gt;   Followed by: &lt;tt&gt;service vsftpd restart&lt;/tt&gt;  Test your vsftpd SELinux settings: &lt;tt&gt;getsebool -a | grep ftp&lt;/tt&gt;   &lt;table border="0" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;allow_ftpd_anon_write --&amp;gt; off
allow_ftpd_full_access --&amp;gt; off
allow_ftpd_use_cifs --&amp;gt; off
allow_ftpd_use_nfs --&amp;gt; off
allow_tftp_anon_write --&amp;gt; off
ftp_home_dir --&amp;gt; on
ftpd_disable_trans --&amp;gt; off
ftpd_is_daemon --&amp;gt; on
httpd_enable_ftp_server --&amp;gt; off
tftpd_disable_trans --&amp;gt; off
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftpd_selinux"&gt;FTPd SELinux man page&lt;/a&gt; &lt;/dd&gt;&lt;/dl&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="FTPCLIENTS"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;FTP Linux clients:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.gftp.org/"&gt;gftp&lt;/a&gt;: GUI GTK+ Multithreaded client. File transfer directory browsing and compare. Multiple protocols: FTP, FTPS (control connection only), HTTP, HTTPS, SSH and FSP protocols. Proxy support. Comes with Red Hat / Fedora Core.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.kde.org/applications/internet/kftpgrabber/"&gt;KFTPgrabber&lt;/a&gt;: GUI KDE based client.simultaneous FTP sessions in separate tabs. Ability to limit upload and download speed.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/kbear/"&gt;kbear&lt;/a&gt;: GUI KDE based client. Connect to multiple servers, transfer files, directory browsing, file content browsing. Comes with S.U.S.e. Linux.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ftp"&gt;ftp&lt;/a&gt;: (&lt;tt&gt;/usr/kerberos/bin/ftp&lt;/tt&gt;) kerberos enabled console ftp client. (RPM package FC3: krb5-workstation)         &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="USERSECURITY"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Basic user security:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;When hosting web sites, there is no need to grant a shell account which only  allows the server to have more potential security holes. Current systems can specify the user to have only FTP access with no shell by granting them the "shell" &lt;tt&gt;/sbin/nologin&lt;/tt&gt; provided with the system or the "ftponly" shell described below. The shell can be specified in the file &lt;tt&gt;/etc/passwd&lt;/tt&gt; of when creting a user with the command &lt;tt&gt;adduser -s /sbin/nologin &lt;i&gt;user-id&lt;/i&gt;&lt;/tt&gt;       &lt;br /&gt;
&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Red Hat 7.3 server with wu-ftp server 2.6.2-5 does not support this configuration to prevent shell access. It requires users to have a real user shell.  i.e. &lt;tt&gt;/bin/bash&lt;/tt&gt; It works great in older and current Red Hat versions.  If it works for you, use it, as it is more secure to deny the user shell access. You can always deny telnet access. You should NOT be using this problem ridden version of ftpd. Use the latest wu-ftpd-2.6.2-11 which supports users with shell &lt;tt&gt;/opt/bin/ftponly&lt;/tt&gt;       &lt;br /&gt;
&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Ubuntu Dapper/Hardy - Setting the shell to the preconfigured shell &lt;tt&gt;/bin/false&lt;/tt&gt; will NOT allow vsftp access. One must create the shell "ftponly" as defined below to allow vsftp access with no shell.       &lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Disable remote telnet login access allowing FTP access only:                     Change the shell for the user in &lt;tt&gt;/etc/passwd&lt;/tt&gt; from &lt;tt&gt;/bin/bash&lt;/tt&gt; to be &lt;tt&gt;/opt/bin/ftponly&lt;/tt&gt;.     &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;...
user1:x:502:503::/home/user1:/opt/bin/ftponly
...
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Create file: &lt;tt&gt;/opt/bin/ftponly&lt;/tt&gt;.      &lt;br /&gt;
Protection set to &lt;tt&gt;-rwxr-xr-x    1 root     root       &lt;/tt&gt;     &lt;br /&gt;
with the command: &lt;tt&gt;chmod ugo+x /opt/bin/ftponly&lt;/tt&gt;     &lt;br /&gt;
Contents of file:     &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;div class="syntaxhighlighter  " id="highlighter_943361"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;pre&gt;
#!/bin/sh
#
# ftponly shell
#
trap "/bin/echo Sorry; exit 0" 1 2 3 4 5 6 7 10 15
#
Admin=root@your-domain.com
#System=`/bin/hostname`@`/bin/domainname`
#
/bin/echo
/bin/echo "********************************************************************"
/bin/echo "    You are NOT allowed interactive access."
/bin/echo
/bin/echo "     User accounts are restricted to ftp and web access."
/bin/echo
/bin/echo "  Direct questions concerning this policy to $Admin."
/bin/echo "********************************************************************"
/bin/echo
#
# C'ya
#
exit 0


&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;The last step is to add this to the list of valid shells on the system.   &lt;br /&gt;
Add the line &lt;tt&gt;/opt/bin/ftponly&lt;/tt&gt; to &lt;tt&gt;/etc/shells&lt;/tt&gt;.   &lt;br /&gt;
Sample file contents: &lt;tt&gt;/etc/shells&lt;/tt&gt;     &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;     &lt;td&gt;&lt;pre&gt;/bin/bash
/bin/bash1
/bin/tcsh
/bin/csh
/opt/bin/ftponly
    &lt;/pre&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;     &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;See &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=shells"&gt;man page on /etc/shells&lt;/a&gt;.            An alternative would be to assign the shell &lt;tt&gt;/bin/false&lt;/tt&gt; or &lt;tt&gt;/sbin/nologin&lt;/tt&gt; which became  available in later releases of Red Hat, Debian and Ubuntu. In this case the shell &lt;tt&gt;/bin/false&lt;/tt&gt; or &lt;tt&gt;/sbin/nologin&lt;/tt&gt; would have to be added to &lt;tt&gt;/etc/shells&lt;/tt&gt; to allow them to be used as a valid shell for FTP while disabling ssh or telnet access.           &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html"&gt;Set file quotas to limit user account.&lt;/a&gt;         &lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ol&gt;For more on Linux security see the: &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInternetSecurity.html"&gt;&lt;b&gt;YoLinux.com Internet web site Linux server security tutorial&lt;/b&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="DNS"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Domain Name Server (DNS) configuration using Bind version 8 or 9:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;Two of the most popular ways to configure the program Bind  (Berkeley Internet Domain software) to perform DNS  services is in the role of (1) ISP or (2) Web Host.        &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;In an ISP configuration for clients (web surfers) conected to the internet, the DNS server must resolve IP addresses for any  URL the user wishes to visit. (See &lt;a href="http://tldp.yolinux.com/HOWTO/DNS-HOWTO.html#s3"&gt;DNS caching server&lt;/a&gt;)         &lt;/li&gt;
&lt;li&gt;In a purely web hosting configuration, Bind will only resolve for the IP addresses of the domains which are being hosted. This is the configuration which will be discussed and is often called an "Authoritative-only Nameserver".         &lt;/li&gt;
&lt;/ol&gt;When resolving IP addresses for a domain, Internic is expecting a "Primary" and a "Secondary" DNS name server. (Sometimes called Master and Slave) Each DNS name server requires the file /etc/named.conf and the files it points to. This is typically two separate computer systems hosted on two different IP addresses. It is not necesary that the Linux servers be dedicated to DNS as they may run a web server, mail server, etc. &lt;br /&gt;
&lt;b&gt;Note on Bind versions:&lt;/b&gt; Red Hat versions 6.x used Bind version 8.  Release 7.1 of Red Hat began using Bind version 9 and the GUI configuration  tool &lt;tt&gt;bindconf&lt;/tt&gt; was introduced for those of you that like a pretty  point and click interface for configuration.       &lt;br /&gt;
Installation Packages:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Red Hat / Fedora Core / CentOS: &lt;tt&gt;bind, bind-chroot, bind-libs, bind-utils, system-config-bind&lt;/tt&gt;             &lt;ul&gt;&lt;li&gt;bind-chroot: Security jail for operation of bind.&lt;/li&gt;
&lt;li&gt;bind-utils: Utility commands like &lt;tt&gt;nslookup, host, dig&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;system-config-bind: GUI config tool &lt;tt&gt;system-config-bind&lt;/tt&gt; and related configuration files (&lt;tt&gt;/etc/security/console.apps/bindconf&lt;/tt&gt;).&lt;/li&gt;
&lt;li&gt;caching-nameserver: We will not be covering this as it  is not required for web hosting. This is used by internet providers so  their clients can cache the DNS entries of the sites they are visiting.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu (dapper/hardy/natty) / Debian: &lt;tt&gt;bind9&lt;/tt&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h3&gt;Configuration files:&lt;/h3&gt;&lt;dl&gt;&lt;dd&gt;&lt;b&gt;Red Hat / Fedora / CentOS:&lt;/b&gt;         &lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;&lt;th&gt;File&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Directory&lt;/th&gt;&lt;th&gt;Chrooted Directory&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;named.conf&lt;/td&gt;&lt;td valign="top"&gt;Primary/Secondary DNS server configuration.&lt;br /&gt;
(See default file &lt;tt&gt;/usr/share/doc/bind-9.X.X/sample/etc/named.conf&lt;/tt&gt;)&lt;/td&gt;&lt;td valign="top"&gt;/etc/&lt;/td&gt;&lt;td valign="top"&gt;/var/named/chroot/etc/&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;named.root.hints&lt;/td&gt;&lt;td valign="top"&gt;Configuration for recursive service. Required for all zones.&lt;br /&gt;
(See default file &lt;tt&gt;/usr/share/doc/bind-9.X.X/sample/etc/named.root.hints&lt;/tt&gt;)&lt;/td&gt;&lt;td valign="top"&gt;/etc/&lt;/td&gt;&lt;td valign="top"&gt;/var/named/chroot/etc/&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;named&lt;/td&gt;&lt;td valign="top"&gt;Red Hat system variables.&lt;/td&gt;&lt;td valign="top"&gt;/etc/sysconfig/&lt;/td&gt;&lt;td valign="top"&gt;no change&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;rndc.key&lt;/td&gt;&lt;td valign="top"&gt;Primary/Secondary DNS server configuration.&lt;/td&gt;&lt;td valign="top"&gt;/etc/&lt;/td&gt;&lt;td valign="top"&gt;/var/named/chroot/etc/&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;Zone files&lt;/td&gt;&lt;td valign="top"&gt;Configuration  files for each domain. Create this file to resolve host name internet  queries i.e. define IP address of web (www) and mail servers in the  domain.&lt;/td&gt;&lt;td valign="top"&gt;/var/named/&lt;/td&gt;&lt;td valign="top"&gt;/var/named/chroot/var/named/&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;&lt;b&gt;Debian / Ubuntu:&lt;/b&gt;         &lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;&lt;th&gt;File&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Directory&lt;/th&gt;&lt;th&gt;Chrooted Directory&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;named.conf&lt;br /&gt;
named.conf.options&lt;br /&gt;
named.conf.local&lt;/td&gt;&lt;td valign="top"&gt;Primary/Secondary DNS server configuration.&lt;/td&gt;&lt;td valign="top"&gt;/etc/bind/&lt;/td&gt;&lt;td valign="top"&gt;/var/bind/chroot/etc/bind/&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;rndc.key&lt;/td&gt;&lt;td valign="top"&gt;Primary/Secondary DNS server configuration.&lt;/td&gt;&lt;td valign="top"&gt;/etc/&lt;/td&gt;&lt;td valign="top"&gt;/var/bind/chroot/etc/&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;Zone files&lt;/td&gt;&lt;td valign="top"&gt;Configuration files for each domain.&lt;/td&gt;&lt;td valign="top"&gt;/var/bind/data/&lt;/td&gt;&lt;td valign="top"&gt;/var/bind/chroot/var/bind/data/&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;h3&gt;Primary server (master):&lt;/h3&gt;&lt;b&gt;File: named.conf&lt;/b&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Red Hat / Fedora Core / CentOS: &lt;tt&gt;/etc/named.conf&lt;/tt&gt; (chroot dir: &lt;tt&gt;/var/named/chroot/etc/named.conf&lt;/tt&gt;) and &lt;tt&gt;/etc/sysconfig/named&lt;/tt&gt; for system variables.            Ubuntu / Debian: &lt;tt&gt;/etc/bind/named.conf&lt;/tt&gt; Place local definitions in &lt;tt&gt;/etc/bind/named.conf.options&lt;/tt&gt; and &lt;tt&gt;/etc/bind/named.conf.local&lt;/tt&gt;                       Simple example: (no views)             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;           &lt;td&gt;&lt;pre&gt;options {                                     &lt;b&gt;&lt;i&gt;- Ubuntu stores options in /etc/bind/named.conf.options&lt;/i&gt;&lt;/b&gt;
        version "Bind";                       &lt;b&gt;&lt;i&gt;- Don't disclose real version to hackers&lt;/i&gt;&lt;/b&gt;
        directory "/var/named";               &lt;b&gt;&lt;i&gt;- Specified so relative path names can be used. Full path names still allowed.&lt;/i&gt;&lt;/b&gt;
        allow-transfer { &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.XXX&lt;/b&gt;&lt;/i&gt;; };  &lt;b&gt;&lt;i&gt;- IP address of secondary DNS&lt;/i&gt;&lt;/b&gt;
        recursion no;
        auth-nxdomain no;                     &lt;b&gt;&lt;i&gt;- conform to RFC1035. (default)&lt;/i&gt;&lt;/b&gt;
        &lt;b&gt;&lt;span style="color: #008800;"&gt;fetch-glue no;&lt;/span&gt;&lt;/b&gt;                  &lt;b&gt;&lt;i&gt;- &lt;span style="color: red;"&gt;Bind 8 only!&lt;/span&gt; Not used by version 9&lt;/i&gt;&lt;/b&gt;
};

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};
zone "0.0.127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;"{                 &lt;b&gt;&lt;i&gt;- Ubuntu separates the zone definitions into /etc/bind/named.conf.local &lt;/i&gt;&lt;/b&gt;
        type master;                    &lt;b&gt;&lt;i&gt;- Specify master, slave, forward or hint&lt;/i&gt;&lt;/b&gt;
        file "data/named.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;"; 
        notify yes;                     &lt;b&gt;&lt;i&gt;- slave servers are notified when the zone is updated.&lt;/i&gt;&lt;/b&gt;
        allow-update { none; };         &lt;b&gt;&lt;i&gt;- deny updates from other hosts (default: none)&lt;/i&gt;&lt;/b&gt;
        allow-query { any; };           &lt;b&gt;&lt;i&gt;- allow clients to query this server (default: any)&lt;/i&gt;&lt;/b&gt;
};
zone "&lt;i&gt;&lt;b&gt;your-domain-2.com&lt;/b&gt;&lt;/i&gt;"{
        type master;
        file "data/named.&lt;i&gt;&lt;b&gt;your-domain-2.com&lt;/b&gt;&lt;/i&gt;";
        notify yes;
};
&lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;Note:   &lt;ul&gt;&lt;li&gt; The omission of &lt;tt&gt;zone "."&lt;/tt&gt;. Required if providing a recursive service. &lt;/li&gt;
&lt;li&gt; Ubuntu includes the separated file of zone directives using the directive:      &lt;br /&gt;
&lt;tt&gt;include "/etc/bind/named.conf.local";&lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;BIND Views:&lt;/b&gt; The BIND naming service can support "views" which allow various  sub-networks (i.e. private internal or public external networks) to have  a different domain name resolution result.    &lt;ul&gt;&lt;li&gt;If no views are specified then use the configuration shown above.  &lt;/li&gt;
&lt;li&gt;The match-up between the "view" and the view client which receives the DNS information is specified by the &lt;tt&gt;match-clients&lt;/tt&gt; statement. &lt;/li&gt;
&lt;li&gt;If even one view is specified, then ALL zones MUST be associated with a "view". &lt;/li&gt;
&lt;li&gt;Bind 9 allows for views which allow different zones to be served to  different types of clients, localhost, private networks and public  networks. This maps to the three view names "&lt;tt&gt;localhost_resolver&lt;/tt&gt;", "&lt;tt&gt;internal&lt;/tt&gt;" and "&lt;tt&gt;external&lt;/tt&gt;":     &lt;ul&gt;&lt;li&gt;localhost_resolver: Supports name resolution for the system  (localhost) using BIND. Support for use of bind also has to be  configured in &lt;tt&gt;/etc/nsswitch.conf&lt;/tt&gt;     &lt;/li&gt;
&lt;li&gt;internal: User specified Local Area Network (LAN). If not used  to support a local private LAN, remove (or comment out) this view.     &lt;/li&gt;
&lt;li&gt;external: The general public internet defined as client "any".     &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;If you are only setting up a caching name server, then only specify the view "localhost_resolver" (delete all other views). &lt;/li&gt;
&lt;li&gt;In order to support a DNS for internet domains using views, one will have to configure an "external" view &lt;/li&gt;
&lt;/ul&gt;Typical Red Hat Enterprise 5 example: (Bind 9.3.4 with three "views")             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;           &lt;td&gt;&lt;pre&gt;options
{
        directory "/var/named"; // the default
        dump-file               "data/cache_dump.db";
        statistics-file         "data/named_stats.txt";
        memstatistics-file      "data/named_mem_stats.txt";

};
logging
{
    //  By default, SELinux policy does not allow named to modify the /var/named
    //  directory, so put the default debug log file in data/ :
 
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view "localhost_resolver"
{
    //  This view sets up named to be a localhost resolver ( caching only nameserver ).
    //  If all you want is a caching-only nameserver, then you need only define this view:
    match-clients           { localhost; };
    ...
};
view "internal"
{
    // This view will contain zones you want to serve only to "internal" clients
    // that connect via your directly attached LAN interfaces - "localnets" .
    // For local private LAN. Not covered in this tutorial.
    // Delete this view if web hosting with no local LAN.
    match-clients           { localnets; };
    ...
};
key ddns_key
{
        algorithm hmac-md5;
        secret "&lt;i&gt;use /usr/sbin/dns-keygen to generate TSIG keys&lt;/i&gt;";
};
view    "external"
{
    // This view will contain zones you want to serve only to "external" 
    // public internet clients. This is covered below.
    match-clients           { any; };
    ...
    .. 
};
          &lt;/pre&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;b&gt;Default configuration files:&lt;/b&gt; Red Hat may supply the default configuration in: &lt;tt&gt;/usr/share/doc/bind-9.X.X/sample/etc/named.conf&lt;/tt&gt;             &lt;ul&gt;&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/etc/named.conf /var/named/chroot/etc&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/etc/named.root.hints /var/named/chroot/etc&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chcon -u system_u -r object_r -t named_conf_t /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.root.hints&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;view "localhost_resolver"&lt;/b&gt;: If supporting a caching DNS server (not required to support a web domain) you will also need the files:             &lt;ul&gt;&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/etc/named.rfc1912.zones /var/named/chroot/etc&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/localdomain.zones /var/named/chroot/var/named&lt;/tt&gt;           &lt;br /&gt;
also from &lt;tt&gt;/usr/share/doc/bind-9.X.X/sample/var/named/&lt;/tt&gt;: &lt;tt&gt;localhost.zones, named.local, named.zero, named.broadcast, named.ip6.local, named.root&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;view "external"&lt;/b&gt;:  (master) - details -
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;           &lt;td&gt;&lt;pre&gt;view    "external"
{
/* This view will contain zones you want to serve only to "external" clients
 * that have addresses that are not on your directly attached LAN interface subnets:
 */
        match-clients           { any; };
        match-destinations      { any; };
        allow-transfer { &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.XXX&lt;/b&gt;&lt;/i&gt;; };  &lt;b&gt;&lt;i&gt;- IP address of secondary DNS&lt;/i&gt;&lt;/b&gt;

        recursion no;
        // you'd probably want to deny recursion to external clients, so you don't
        // end up providing free DNS service to all takers

        // all views must contain the root hints zone:
        include "/etc/named.root.hints";

        // These are your "authoritative" external zones, and would probably
        // contain entries for just your web and mail servers:

        zone "your-domain.com" {
                type master;
                file "/var/named/data/external/named.your-domain.com";
                notify yes;
                allow-update { none; };
        };
 
        &lt;b&gt;&lt;i&gt;// You can also add the zones as a separate file like they do in Ubuntu by adding the following statement&lt;/i&gt;&lt;/b&gt;
        include "/etc/named.conf.local";      
};
&lt;/pre&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;b&gt;DNS key:&lt;/b&gt; &lt;br /&gt;
Use the following command &lt;tt&gt;/usr/sbin/dns-keygen&lt;/tt&gt; to create a key. Add this key to the "secret" statement as follows: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt; &lt;td&gt;&lt;pre&gt;key ddns_key
{
        algorithm hmac-md5;
        secret "XlYKYLF5Y7YOYFFFY6YiYYXyFFFFBYYYYFfYYYJiYFYFYYLVrnrWrrrqrrrq";
};
&lt;/pre&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
Man Pages: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=named.conf"&gt;named.conf&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;b&gt;Forward Zone File: /var/named/named.&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/b&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Red Hat 9 / CentOS 3: &lt;tt&gt;/var/named/named.&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/tt&gt;            Red Hat EL4/5, Fedora 3+, CentOS 4/5: [Chrooted] &lt;tt&gt;/var/named/chroot/var/named/data/named.&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/tt&gt;            Red Hat EL4/5, Fedora 3+, CentOS 4/5: &lt;tt&gt;/var/named/data/named.&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/tt&gt;            Ubuntu / Debian: &lt;tt&gt;/etc/bind/data/named.&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/tt&gt;             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;&lt;b&gt;&lt;span style="color: red;"&gt;$TTL 604800&lt;/span&gt;&lt;/b&gt;         &lt;b&gt;&lt;i&gt;- Bind 9 (and some of the later versions of Bind 8) requires $TTL statement&lt;/i&gt;. Measured in seconds. This value is 7 days.&lt;/b&gt;
&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.    IN      SOA  ns1.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.  hostmaster.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;. (
   2000021600 ; serial     &lt;i&gt;&lt;span style="color: #006600;"&gt;- Many people use year+month+day+integer as a system.&lt;/span&gt;&lt;/i&gt;
   86400 ; refresh         &lt;i&gt;&lt;span style="color: #006600;"&gt;- How often secondary servers (in seconds) should check in for changes in serial number. (86400 sec = 24 hrs)&lt;/span&gt;&lt;/i&gt;
   7200 ; retry            &lt;i&gt;&lt;span style="color: #006600;"&gt;- How long secondary server should wait for a retry if contact failed.&lt;/span&gt;&lt;/i&gt;
   1209600 ; expire        &lt;i&gt;&lt;span style="color: #006600;"&gt;- Secondary server to purge info after this length of time.&lt;/span&gt;&lt;/i&gt;
   86400 ) ; default_ttl   &lt;i&gt;&lt;span style="color: #006600;"&gt;- How long data is held in cache by remote servers.&lt;/span&gt;&lt;/i&gt;
       IN A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.XXX&lt;/b&gt;&lt;/i&gt;  &lt;i&gt;&lt;span style="color: #006600;"&gt;- Note that this is the default IP address of the domain. 
                                     I put the web server IP address here so that domain.com points to the same servers as www.domain.com&lt;/span&gt;&lt;/i&gt;
;
; Name servers for the domain
;
       IN NS         ns1.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
       IN NS         ns2.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
;
; Mail server for domain
;
       IN MX    5    mail               &lt;i&gt;&lt;span style="color: #006600;"&gt;- Identify "mail" as the node handling mail for the domain. Do &lt;b&gt;NOT&lt;/b&gt; specify an IP address!&lt;/span&gt;&lt;/i&gt;
;
; Nodes in domain
;
node1  IN A          &lt;b&gt;&lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/b&gt;    &lt;i&gt;&lt;span style="color: #006600;"&gt;- Note that this is the IP address of node1&lt;/span&gt;&lt;/i&gt;
ns1    IN A          &lt;b&gt;&lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/b&gt;    &lt;i&gt;&lt;span style="color: #006600;"&gt;- Optional: For hosting your own primary name server. Note that this is the IP address of ns1&lt;/span&gt;&lt;/i&gt;
ns2    IN A          &lt;b&gt;&lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/b&gt;    &lt;i&gt;&lt;span style="color: #006600;"&gt;- Optional: For hosting your own secondary name server. Note that this is the IP address of ns2&lt;/span&gt;&lt;/i&gt;
mail   IN A          &lt;b&gt;&lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/b&gt;    &lt;i&gt;&lt;span style="color: #006600;"&gt;- Identify the IP address for node mail.&lt;/span&gt;&lt;/i&gt;
       IN MX    5    &lt;b&gt;&lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/b&gt;    &lt;i&gt;&lt;span style="color: #006600;"&gt;- Identify the IP address for mail server named "mail".&lt;/span&gt;&lt;/i&gt;
;
; Aliases to existing nodes in domain
;
www    IN CNAME      node1              &lt;i&gt;&lt;span style="color: #006600;"&gt;- Define the webserver "www" to be node1.&lt;/span&gt;&lt;/i&gt;
ftp    IN CNAME      node1              &lt;i&gt;&lt;span style="color: #006600;"&gt;- Define the ftp server to be node1.&lt;/span&gt;&lt;/i&gt;
                &lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;DNS record types and format:         &lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;&lt;th&gt;DNS record&lt;/th&gt;&lt;th&gt;Description and Format&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td valign="top"&gt;SOA&lt;/td&gt; &lt;td&gt;Start of Authority: Primary domain server and contact info     &lt;br /&gt;
Note that there is a period following the primary domain server and contact email.     &lt;br /&gt;
Note that the email address is in the form where the first period represents the "@" symbol of the email address. &lt;br /&gt;
&lt;pre&gt;&lt;i&gt;your-domain.com&lt;/i&gt; in SOA ns1.&lt;i&gt;your-domain.com&lt;/i&gt;.  webmaster.&lt;i&gt;your-domain.com&lt;/i&gt;.
&lt;/pre&gt;or &lt;br /&gt;
&lt;pre&gt;@ in SOA ns1.&lt;i&gt;your-domain.com&lt;/i&gt;.  webmaster.&lt;i&gt;your-domain.com&lt;/i&gt;.
&lt;/pre&gt;&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Incorrect specification of the primary name server may result in the following message in &lt;tt&gt;/var/log/messages&lt;/tt&gt;: &lt;br /&gt;
&lt;pre&gt;view localhost_resolver: received notify for zone '&lt;i&gt;your-domain.com&lt;/i&gt;': not authoritative
&lt;/pre&gt;&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;&lt;th&gt;SOA attribute&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;serial&lt;/td&gt;&lt;td&gt;Never use a value greater than 2147483647 for a 32 bit processor.&lt;br /&gt;
Increment to a higher value to indicate an update to the slave server.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;refresh&lt;/td&gt;&lt;td&gt;Time increment (seconds) between update checks of the serial number with the primary server&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;retry&lt;/td&gt;&lt;td&gt;Time elapsed before a slave will contact the primary server if a connection failed&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;expire&lt;/td&gt;&lt;td&gt;Time till primary server information is considered invalid and should be refreshed if there is a new DNS query&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;minimum&lt;/td&gt;&lt;td&gt;Time for DNS servers should hold domain information in their cache before purging&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;IN&lt;/td&gt;&lt;td&gt;Indicate Internet.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;NS&lt;/td&gt;&lt;td&gt;Specify the Authoratative Name servers for the domain.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;A&lt;/td&gt;&lt;td&gt;Specify the IP address associated with the host name.&lt;br /&gt;
Format: &lt;tt&gt;&lt;i&gt;hostname&lt;/i&gt; IN A &lt;i&gt;XXX.XXX.XXX.XXX&lt;/i&gt;&lt;/tt&gt;&lt;br /&gt;
Note that in my example, no hostname is specified for the first record. This will define the default for the domain.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;CNAME&lt;/td&gt;&lt;td&gt;Specify an alias for the host name.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;MX&lt;/td&gt;&lt;td&gt;Mail exchange record. Specify a priority  number for the primary and back-up mail servers. The lowest number  indicates the default mail server for the domain&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;PTR&lt;/td&gt;&lt;td&gt;Used to specify the reverse DNS lookup&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;MX records for 3rd party off-site mail servers:         &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;       &lt;td&gt;&lt;pre&gt;&lt;i&gt;&lt;b&gt;your-domain.com.&lt;/b&gt;&lt;/i&gt;    IN MX  10 &lt;i&gt;mail1.offsitemail.com.&lt;/i&gt;
&lt;i&gt;&lt;b&gt;your-domain.com.&lt;/b&gt;&lt;/i&gt;    IN MX  20 &lt;i&gt;mail2.offsitemail.com.&lt;/i&gt;
      &lt;/pre&gt;&lt;/td&gt;       &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;Append to the above example file.       &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;b&gt;Initial configuration:&lt;/b&gt;           Note that Red Hat may supply the default zone configuration in: &lt;tt&gt;/usr/share/doc/bind-9.X.X/sample/var/named/&lt;/tt&gt;           &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/localhost.zone /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/localdomain.zone /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/named.broadcast /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/named.ip6.local /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/named.zero /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/named.local /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cp /usr/share/doc/bind-9.X.X/sample/var/named/named.root /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cd  /var/named/chroot/var/named/data/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chcon -u system_u -r object_r -t named_cache_t  localhost.zone localdomain.zone named.broadcast named.ip6.local  named.zero named.root named.local&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;A file suffix of "zone" is also common i.e. &lt;tt&gt;your-domain.com.zone&lt;/tt&gt;              &lt;br /&gt;
&lt;h3&gt;Secondary server (slave):&lt;/h3&gt;&lt;b&gt;File: named.conf&lt;/b&gt; &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Red Hat / Fedora Core / CentOS: &lt;tt&gt;/etc/named.conf&lt;/tt&gt;            Ubuntu / Debian: &lt;tt&gt;/etc/bind/named.conf&lt;/tt&gt;            Simple example with no views:             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;options {                               &lt;b&gt;&lt;i&gt;- Ubuntu stores options in /etc/bind/named.conf.options&lt;/i&gt;&lt;/b&gt;
        version "Bind";                 &lt;b&gt;&lt;i&gt;- Don't disclose real version to hackers&lt;/i&gt;&lt;/b&gt;
        directory "/var/named";
        &lt;b&gt;allow-transfer { none; };&lt;/b&gt;       &lt;b&gt;&lt;i&gt;- Slave is not transfering updates to anyone else&lt;/i&gt;&lt;/b&gt;
        recursion no;
        auth-nxdomain no;               &lt;b&gt;&lt;i&gt;- conform to RFC1035. (default)&lt;/i&gt;&lt;/b&gt;
        &lt;b&gt;&lt;span style="color: #008800;"&gt;fetch-glue no;&lt;/span&gt;&lt;/b&gt;                  &lt;b&gt;&lt;i&gt;- &lt;span style="color: red;"&gt;&lt;b&gt;Bind 8 only!&lt;/b&gt;&lt;/span&gt; Not used by version 9&lt;/i&gt;&lt;/b&gt;
};
zone "localhost" {
        type master;
        file "/etc/bind/db.local";       &lt;b&gt;&lt;i&gt;- Ubutu: /etc/bind/db.local, Red Hat: /var/named/named.local&lt;/i&gt;&lt;/b&gt;
};
zone "0.0.127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;"{
        type slave;          
        file "named.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;";   &lt;i&gt;- Specify &lt;b&gt;slaves/named.your-domain.com&lt;/b&gt; for RHEL4/5 chrooted bind&lt;/i&gt;
        masters { &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.XXX&lt;/b&gt;&lt;/i&gt;; };   &lt;b&gt;&lt;i&gt;- IP address of primary DNS&lt;/i&gt;&lt;/b&gt;
};
zone "&lt;i&gt;&lt;b&gt;your-domain-2.com&lt;/b&gt;&lt;/i&gt;"{
        type slave;          
        file "named.&lt;i&gt;&lt;b&gt;your-domain-2.com&lt;/b&gt;&lt;/i&gt;";
        masters { &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.XXX&lt;/b&gt;&lt;/i&gt;; };
};
                &lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;view "external": (slave)             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;           &lt;td&gt;&lt;pre&gt;view    "external"
{
        match-clients           { any; };
        match-destinations      { any; };
        allow-transfer { &lt;i&gt;&lt;b&gt;none&lt;/b&gt;&lt;/i&gt;; };  &lt;b&gt;&lt;i&gt;- Slave does not transfer to anyone, slave receives&lt;/i&gt;&lt;/b&gt;
        recursion no;
        include "/etc/named.root.hints";

        zone "your-domain.com" {
                type slave;
                file "/var/named/slaves/external/named.your-domain.com";
                notify no;                  &lt;b&gt;&lt;i&gt;- Slave does not notify, slave is notified by master&lt;/i&gt;&lt;/b&gt;
                masters { &lt;b&gt;XXX.XXX.XXX.XXX&lt;/b&gt;; }; &lt;b&gt;&lt;i&gt;- State IP of master server&lt;/i&gt;&lt;/b&gt;
        };
};
&lt;/pre&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;Note: RHEL4/5, CentOS 4/5, Fedora 3+ use chrooted directory structure permissions which require the use of the slaves subdirectory &lt;tt&gt;/var/named/slaves&lt;/tt&gt;           &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;b&gt;Slave Zone Files:&lt;/b&gt; These are transfered from master to slave and chached by slave. There is no need to generate a zone file on the slave.               &lt;br /&gt;
&lt;b&gt;Additional Information:&lt;/b&gt;       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=named.conf"&gt;Man page on named.conf&lt;/a&gt;       &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=named%288%29"&gt;Man page on named DNS server&lt;/a&gt;       &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.zytrax.com/books/dns/"&gt;Full DNS manual&lt;/a&gt;       &lt;/li&gt;
&lt;/ul&gt;&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Ubuntu dapper/hardy/natty - Path names used can not violate Apparmor security rules as defined in &lt;tt&gt;/etc/apparmor.d/usr.sbin.named&lt;/tt&gt;. Note that the slave files are typically named "&lt;tt&gt;/var/lib/bind/named.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;&lt;/tt&gt;" as permitted by the security configuration.       &lt;br /&gt;
&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Ubuntu dapper/hardy/natty - Create log file and set ownership and permission for file not created by installation:        &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;touch /var/log/bindlog&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chown root.bind /var/log/bindlog&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chmod 664 /var/log/bindlog&lt;/tt&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;span style="color: red;"&gt;[Potential Pitfall]&lt;/span&gt;: Error in &lt;tt&gt;/var/log/messages&lt;/tt&gt;:       &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;tt&gt; transfer of 'yolinux.com/IN' from XXX.XXX.XXX.XXX#53: failed while receiving responses: permission denied                 &lt;/tt&gt;                 &lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;Named needs write permission on the directory containing the file. This condition often occurs for a new "slave" or "secondary" name server where the zone files do not yet exist.  The default (RHEL4/5, CentOS 4/5, Fedora Core 3+, ...):              &lt;ul&gt;&lt;li&gt;&lt;tt&gt;drwxr-x---  4 root  named 4096 Aug 25  2004 named&lt;/tt&gt;             &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;drwxrwx---  2 named named 4096 Sep 17 20:37 slaves&lt;/tt&gt;             &lt;/li&gt;
&lt;/ul&gt;Fix: In &lt;tt&gt;named.conf&lt;/tt&gt; specify that the slaves to go to slaves directory &lt;tt&gt;/var/named/chroot/var/named/slaves&lt;/tt&gt; with the directive:             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;tt&gt;file "slaves/named.your-domain.com";&lt;/tt&gt;                 &lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Bind Defaults:        &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Uses port 53 if none is specified with the &lt;tt&gt;listen-on port&lt;/tt&gt; statement.         &lt;/li&gt;
&lt;li&gt;Bind will use random ports above port 1024 for queries. For use with firewalls expecting all DNS traffic on port 53, specify the following &lt;tt&gt;option&lt;/tt&gt; statement in &lt;tt&gt;/etc/named.conf&lt;/tt&gt;           &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;query-source address * port 53;
query-source-v6 port 53;
                &lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/li&gt;
&lt;li&gt;Logging is to &lt;tt&gt;/var/log/messages&lt;/tt&gt;         &lt;/li&gt;
&lt;/ul&gt;After the configuration files have been edited, restart the name daemon.       &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;tt&gt;/etc/init.d/named restart&lt;/tt&gt;       &lt;/dd&gt;&lt;/dl&gt;(Note: Ubuntu / Debian restart: &lt;tt&gt;/etc/init.d/bind9 restart&lt;/tt&gt;)               Bind zone transfers work best if the clocks of the two systems are synchronised. See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialSysAdmin.html#TIME"&gt;YoLinux SysAdmin Tutorial: Time and ntpd&lt;/a&gt;       &lt;br /&gt;
&lt;b&gt;File: /var/named/named.&lt;i&gt;your-domain.com&lt;/i&gt;&lt;/b&gt; This is created for you by Bind on the slave (secondary) server when it replicates from Primary server.       &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;b&gt;DNS GUI configuration:&lt;/b&gt;       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Red Hat EL 4/5, Fedora 2-10: &lt;tt&gt;/usr/bin/system-config-bind&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;Red Hat 8/9, Fedora Core 1: &lt;tt&gt;/usr/bin/redhat-config-bind&lt;/tt&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;img alt="Red Hat bind configuration tool" src="http://www.yolinux.com/TUTORIALS/images/system-config-bind.gif" /&gt;           &lt;img alt="Red Hat bind configuration tool: SOA zone" src="http://www.yolinux.com/TUTORIALS/images/system-config-bind-SOAZone.gif" /&gt;         &lt;/dd&gt;&lt;/dl&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="DNSTEST"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;h3&gt;Test DNS:&lt;/h3&gt;Must install packages:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Red Hat / Fedora Core / SuSE: &lt;tt&gt;bind-utils&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;Ubuntu (dapper/hardy/natty) / Debian: &lt;tt&gt;bind9-host&lt;/tt&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;dl&gt;&lt;dd&gt;Test the name server with the            &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=host"&gt;host&lt;/a&gt;  command in interactive mode:              &lt;pre&gt;host  &lt;i&gt;node.domain-to-test.com&lt;/i&gt; &lt;i&gt;&lt;b&gt;your-nameserver-to-test.domain.com&lt;/b&gt;&lt;/i&gt;
          &lt;/pre&gt;&lt;dl&gt;&lt;dd&gt;Note: The name server may also be specified by IP address.             &lt;/dd&gt;&lt;/dl&gt;or           &lt;br /&gt;
Test the name server with the            &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=nslookup"&gt;nslookup&lt;/a&gt;  command in interactive mode:            &lt;br /&gt;
&lt;pre&gt;nslookup
   &amp;gt; server &lt;i&gt;&lt;b&gt;your-nameserver-to-test.domain.com&lt;/b&gt;&lt;/i&gt;
   &amp;gt; &lt;i&gt;node.domain-to-test.com&lt;/i&gt;
   &amp;gt; exit
          &lt;/pre&gt;Test the MX record if appropriate:           &lt;br /&gt;
&lt;pre&gt;nslookup -querytype=mx &lt;i&gt;domain-to-test.com&lt;/i&gt;
   
   &lt;b&gt;OR&lt;/b&gt;

   host -t mx &lt;i&gt;domain-to-test.com&lt;/i&gt;
          &lt;/pre&gt;Test using the &lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=dig"&gt;dig&lt;/a&gt; command:           &lt;br /&gt;
&lt;pre&gt;dig @&lt;i&gt;name-server&lt;/i&gt; &lt;i&gt;domain-to-query&lt;/i&gt;

   &lt;b&gt;OR&lt;/b&gt;

   dig @&lt;i&gt;IP-address-of-name-server&lt;/i&gt; &lt;i&gt;domain-to-query&lt;/i&gt;
          &lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;Test your DNS with the following DNS diagnostics web site: &lt;a href="http://dnsstuff.com/"&gt;DnsStuff.com&lt;/a&gt;       &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;h3&gt;Extra logging to monitor Bind:&lt;/h3&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Add the following to your &lt;tt&gt;/etc/named.conf&lt;/tt&gt; file.             &lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;logging {
        channel bindlog {
                           file "/var/log/bindlog"  versions 5 size 1m;    &lt;b&gt;&lt;i&gt; - Keep five old versions of the log-file (rotates logs)&lt;/i&gt;&lt;/b&gt;
                           print-time yes;
                           print-category yes;
                           print-severity yes;
                        };
/*      If you want to enable debugging, eg. using the 'rndc trace' command,
 *      named will try to write the 'named.run' file in the $directory (/var/named).
 *      By default, SELinux policy does not allow named to modify the /var/named directory,
 *      so put the default debug log file in data/ :
 */
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        category xfer-out { bindlog; };         &lt;b&gt;&lt;i&gt;- Zone transfers&lt;/i&gt;&lt;/b&gt;
        category xfer-in  { bindlog; };         &lt;b&gt;&lt;i&gt;- Zone transfers&lt;/i&gt;&lt;/b&gt;
        category security { bindlog; };         &lt;b&gt;&lt;i&gt;- Approved/unapproved requests&lt;/i&gt;&lt;/b&gt;

//      &lt;b&gt;The following logging statements, panic, insist and response-checks are valid for Bind 8 only. Do not user for version 9.&lt;/b&gt;
        category panic { bindlog; };            &lt;b&gt;&lt;i&gt;- System shutdowns&lt;/i&gt;&lt;/b&gt;
        category insist { bindlog; };           &lt;b&gt;&lt;i&gt;- Internal consistency check failures&lt;/i&gt;&lt;/b&gt;
        category response-checks { bindlog; };  &lt;b&gt;&lt;i&gt;- Messages&lt;/i&gt;&lt;/b&gt;
};
                &lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;h3&gt;Chroot Bind for extra security:&lt;/h3&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Note: Most modern Linux distributions default to a "chrooted" installation. This technique runs the Bind name service with a view of the filesystem which changes the definition of the root directory "/" to a directory in which Bind will operate. i.e. &lt;tt&gt;/var/named/chroot&lt;/tt&gt;.            The following example uses the Red Hat RPM &lt;tt&gt;bind-8.2.3-0.6.x.i386.rpm&lt;/tt&gt;. Applies to Bind version 9 as well.            The latest RedHat bind updates run the named as user "named" to avoid a lot of earlier hacker exploits. To chroot the process is to create an even more secure environment by limiting the view of the system that the process can access. The process is limited to the chrooted directory assigned.            The chroot of the named process to a directory under a given user will prevent the possibility of an exploit which at one time would  result in  root access. The original default RedHat configuration (6.2) ran the named process as root,  thus if an exploit was found, the named process will allow the hacker to use  the privileges of the root user. (no longer true)            Named Command Sytax:             &lt;pre&gt;named -u &lt;i&gt;user&lt;/i&gt; -g &lt;i&gt;group&lt;/i&gt; -t &lt;i&gt;directory-to-chroot-to&lt;/i&gt;
          &lt;/pre&gt;Example:             &lt;pre&gt;named -u named -g named -t /opt/named&lt;/pre&gt;When chrooted, the process does not have access to system libraries thus a local lib directory is required with the appropriate library files - theoretically. This does not seem to be the case here and as noted above in chrooted FTP. It's a mystery to me but it works???? Another method to handle libraries is to re-compile the named binary with everything statically linked. Add &lt;tt&gt;-static&lt;/tt&gt; to the compile options. The chrooted process should also require a local &lt;tt&gt;/etc/named.conf&lt;/tt&gt; etc... but doesn't seem to???            Script to create a chrooted bind environment:
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                     &lt;td&gt;&lt;pre&gt;#!/bin/sh
cd /opt
mkdir named
cd named
mkdir etc
mkdir bin
mkdir var
cd var
mkdir named
mkdir run
cd ..
chown -R named.named bin etc var

                    &lt;/pre&gt;&lt;/td&gt;                   &lt;/tr&gt;
&lt;/tbody&gt;               &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;You can probably stop here. If your system acts like a chrooted system should, then continue with the following: &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                     &lt;td&gt;&lt;pre&gt;cp -p /etc/named.conf etc
cp -p /etc/localtime  etc
cp -p /bin/false bin
echo "named:x:25:25:Named:/var/named:/bin/false" &amp;gt; etc/passwd
echo "named:x:25:" &amp;gt; etc/group
touch  var/run/named.pid 

if [ -f /etc/namedb ]
then
   cp -p /etc/namedb etc/namedb
fi

mkdir dev
cd dev

# Create a character unbuffered file.
mknod -m ugo+rw null c 1 3     

cd ..
chown -R named.named bin etc var

                    &lt;/pre&gt;&lt;/td&gt;                   &lt;/tr&gt;
&lt;/tbody&gt;               &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Add changes to the init script: &lt;tt&gt;/etc/rc.d/init.d/named&lt;/tt&gt;           &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                     &lt;td&gt;&lt;div class="syntaxhighlighter  " id="highlighter_110898"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="number"&gt;&lt;pre&gt;#!/bin/bash
#
# named           This shell script takes care of starting and stopping
#                 named (BIND DNS server).
#
# chkconfig: - 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] &amp;&amp; exit 0

[ -f /etc/sysconfig/named ] &amp;&amp; . /etc/sysconfig/named 

[ -f /usr/sbin/named ] || exit 0

[ -f /etc/named.conf ] || exit 0

RETVAL=0

start() {
        # Start daemons.
        echo -n "Starting named: "
        daemon named -u named -g named -t /opt/named   # Change made here
 RETVAL=$?
  [ $RETVAL -eq 0 ] &amp;&amp; touch /var/lock/subsys/named
 echo
 return $RETVAL
}
stop() {
        # Stop daemons.
        echo -n "Shutting down named: "
        killproc named
 RETVAL=$?
 [ $RETVAL -eq 0 ] &amp;&amp; rm -f /var/lock/subsys/named
        echo
 return $RETVAL
}
rhstatus() {
 /usr/sbin/ndc status
 return $?
} 
restart() {
 stop
 start
} 
reload() {
 /usr/sbin/ndc reload
 return $?
}
probe() {
 # named knows how to reload intelligently; we don't want linuxconf
 # to offer to restart every time
 /usr/sbin/ndc reload &gt;/dev/null 2&gt;&amp;1 || echo start
 return $?
}  

# See how we were called.
case "$1" in
 start)
  start
  ;;
 stop)
  stop
  ;;
 status)
  rhstatus
  ;;
 restart)
  restart
  ;;
 condrestart)
  [ -f /var/lock/subsys/named ] &amp;&amp; restart || :
  ;;
 reload)
  reload
  ;;
 probe)
  probe
  ;;
 *)
         echo "Usage: named {start|stop|status|restart|condrestart|reload|probe}"
  exit 1
esac

exit $?

                    

&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;                   &lt;/tr&gt;
&lt;/tbody&gt;               &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Note: The current version of bind from the RedHat errata updates and security fixes (&lt;a href="http://www.redhat.com/support/errata/"&gt;http://www.redhat.com/support/errata/&lt;/a&gt;) runs the named process as user "named" in the home (not chrooted) directory           &lt;tt&gt;/var/named&lt;/tt&gt; with no shell available. (&lt;tt&gt;named -u named&lt;/tt&gt;) This should be secure enough. Proceed with a chrooted installation if your are paranoid.           &lt;br /&gt;
See:           &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.psionic.com/papers/dns"&gt;Securing DNS: How to use chroot bind features&lt;/a&gt;             &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;b&gt;Chrooted DNS configuration:&lt;/b&gt;       &lt;br /&gt;
Modern releases of Linux (i.e. Fedore Core 3, Red Hat Enterprise Linux 4) come preconfigured to use "chrooted" bind. This security feature forces even an exploited version of bind to only operate within the "chrooted" jail       &lt;tt&gt;/var/named/chroot&lt;/tt&gt;  which contains the familiar directories:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;/var/named/chroot/etc&lt;/tt&gt;: Configuration files         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/var/named/chroot/dev&lt;/tt&gt;: devices used by bind:           &lt;ul&gt;&lt;li&gt; &lt;tt&gt;/dev/null&lt;/tt&gt;           &lt;/li&gt;
&lt;li&gt; &lt;tt&gt;/dev/random&lt;/tt&gt;           &lt;/li&gt;
&lt;li&gt; &lt;tt&gt;/dev/zero&lt;/tt&gt;           &lt;/li&gt;
&lt;/ul&gt;(Real devices created with the mknod command.)         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;/var/named/chroot/var&lt;/tt&gt;: Zone files and configuration information.         &lt;/li&gt;
&lt;/ul&gt;These directories are generated and configured by the Red Hat/Fedora RPM package "bind-chroot".        If building from source you will have to generate this configuration manually:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir /var/named/chroot/dev&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mknod /var/named/chroot/dev/null c 1 3&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mknod /var/named/chroot/dev/zero c 1 5&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mknod /var/named/chroot/dev/random c 1 8&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chmod 666 -R /var/named/chroot/dev&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot/etc&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ln -s /var/named/chroot/etc/named.conf /etc/named.conf&lt;/tt&gt;          &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot/var/named&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ln -s /var/named/chroot/var/named/named.XXXX /var/named/named.XXXX &lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ln -s /var/named/chroot/var/named/named.YYYY /var/named/named.YYYY &lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;...         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot/var/named/slaves&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot/var/named/data&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot/var/run&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir -p /var/named/chroot/var/tmp&lt;/tt&gt;          &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chown -R named:named /var/named/chroot&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;chown -R root:named /var/named/chroot/var/named&lt;/tt&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="DNSRoundRobin"&gt;&lt;/a&gt;              &lt;br /&gt;
&lt;hr /&gt;&lt;h3&gt;Load Balancing of servers using Bind: DNS Round-Robin&lt;/h3&gt;This will populate name servers around the world with different IP addresses for your web server www.&lt;i&gt;your-domain&lt;/i&gt;.com &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;www0   IN  A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.1&lt;/b&gt;&lt;/i&gt;
            www1   IN  A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.2&lt;/b&gt;&lt;/i&gt;
            www2   IN  A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.3&lt;/b&gt;&lt;/i&gt;
            www3   IN  A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.4&lt;/b&gt;&lt;/i&gt;
            www4   IN  A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.5&lt;/b&gt;&lt;/i&gt;
            www5   IN  A       &lt;i&gt;&lt;b&gt;XXX.XXX.XXX.6&lt;/b&gt;&lt;/i&gt;

            www    IN  CNAME   www0.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
                   IN  CNAME   www1.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
                   IN  CNAME   www2.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
                   IN  CNAME   www3.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
                   IN  CNAME   www4.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
                   IN  CNAME   www5.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.
                   IN  CNAME   www6.&lt;i&gt;&lt;b&gt;your-domain.com&lt;/b&gt;&lt;/i&gt;.&lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;Also see lbnamed: &lt;a href="http://www.stanford.edu/%7Eriepel/lbnamed/"&gt;lbnamed load balancing named&lt;/a&gt;       &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;h3&gt;Bind/DNS Links:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.isc.org/"&gt;Internet Software Consortium (ISC) Home Page&lt;/a&gt; - &lt;a href="http://www.isc.org/products/BIND/"&gt;ISC Bind Home&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.isc.org/index.pl?/sw/bind/FAQ.php"&gt;Bind FAQ, pitfalls and answers&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.zytrax.com/books/dns/"&gt;Zytrax Bind 9 manual&lt;/a&gt; - Bind for rocket scientists         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.intac.com/%7Ecdp/cptd-faq/"&gt;comp.protocols.tcp-ip.domains FAQ&lt;/a&gt; - HTML version         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.apache.org/docs/misc/rewriteguide.html"&gt;More on load balancing and round robin schemes&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/DNS-HOWTO.html"&gt;LDP DNS-HOWTO&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cricketondns.com/archives.cfm/category/dns-best-practices"&gt;DNS Security best practices&lt;/a&gt; - Cricket Liu (coauthor of DNS and Bind)         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.psionic.com/papers/dns/"&gt;DNS Security Paper&lt;/a&gt; - Craig Rowland         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://soa.granitecanyon.com/"&gt;GraniteCanyon.com: Free DNS hosting&lt;/a&gt; - If you don't want to set it up, have someone do it for you.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.everydns.net/"&gt;EveryDNS.net&lt;/a&gt; - Free DNS         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://dns2go.deerfield.com/"&gt;DNS2GO&lt;/a&gt; - Domain hosting for DHCP clients.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.secondary.com/"&gt;Secondary.com&lt;/a&gt; - Free secondary names server hosting (five or fewer domains)         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tzo.com/"&gt;TZO.com&lt;/a&gt; - Dynamic, secondary DNS services.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.opendns.com/"&gt;OpenDNS.com&lt;/a&gt; - Can allow forwarding to OpenDNS servers.              &lt;br /&gt;
Add to "options" section: &lt;tt&gt;forwarders { 208.67.222.222; 208.67.222.220; };&lt;/tt&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://dyndns.org/"&gt;DynDNS.org&lt;/a&gt;     &lt;br /&gt;
Command: &lt;tt&gt;ipcheck.py -i eth0 &lt;i&gt;DynDNS-user-id&lt;/i&gt; &lt;i&gt;password&lt;/i&gt; &lt;i&gt;node&lt;/i&gt;.dnsalias.net&lt;/tt&gt;     &lt;br /&gt;
Then add script &lt;tt&gt;update.dyndns.ip&lt;/tt&gt; to directory &lt;tt&gt;/etc/cron.daily/&lt;/tt&gt; to update IP.     &lt;br /&gt;
This host must also be allowed access through any firewall rules.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dyndns.com/services/dns/dyndns/"&gt;DynDNS.com&lt;/a&gt; - Dynamic DNS for those with dynamic IP addresses. (i.e. dial-up game servers etc.)         &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h4&gt;Domain name registration:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Domain Name Registrars:           &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.networksolutions.com/"&gt;NetworkSolutions.com&lt;/a&gt;             &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.register.com/"&gt;Register.com&lt;/a&gt;             &lt;/li&gt;
&lt;li&gt;&lt;a href="https://registrar.godaddy.com/"&gt;Registrar.GoDaddy.com&lt;/a&gt; - Domain name registration for only $8.95/year!!!             &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dotster.com/home/"&gt;Dotster.com&lt;/a&gt; - Domain name registration for only $14.95/year             &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.domainsnext.com/"&gt;DomainsNext.com&lt;/a&gt; - $11.95/year             &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.easydns.com/"&gt;EasyDNS.com&lt;/a&gt; - $25.00/year             &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.aplus.net/services/register-domain.html"&gt;Aplus.net&lt;/a&gt; - Domain Registration $7.95/year - Not good             &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gandi.net/"&gt;Gandi.net&lt;/a&gt; - European             &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.afternic.com/"&gt;AfterNic.com&lt;/a&gt; - Domain name exchange and auction.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.buydomains.com/"&gt;BuyDomains.com&lt;/a&gt; - Buy a domain name that a squatter is holding.         &lt;/li&gt;
&lt;/ul&gt;Note that the Name registrations policies for the registrars are stated at &lt;a href="http://www.icann.org/"&gt;ICANN.org&lt;/a&gt;.        &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;You must renew with the same registrar within five days BEFORE the expiration date.  There is no rule for afterwards.         &lt;/li&gt;
&lt;li&gt;Most free a domain name 30 days after it expires.         &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="VIRTUALSERVER"&gt;&lt;/a&gt;       &lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="LOADBALANCING"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Web Server Load Balancing:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;&lt;br /&gt;
Load balancing becomes important if your traffic volume becomes  too great for either your server or network connection or both.       Multiple options are available for load balancing.       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;DNS round-robin: &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html#DNSRoundRobin"&gt;Discussed above&lt;/a&gt;,  this uses DNS to point users to random server in a list of appropriate  servers. This spreads the load among the servers in the list.&lt;/li&gt;
&lt;li&gt;Use a Linux Virtual Server to Create a Load Balance Cluster. See next section below.&lt;/li&gt;
&lt;li&gt;Run a reverse proxy. See &lt;a href="http://nginx.net/"&gt;nginx&lt;/a&gt;  ("engine X").            From a single external internet network connection, route  http, smtp, imap or pop3 traffic to various servers on an internal  network. Results are pushed back to the nginx proxy for routing to the  internet (no caching).&lt;/li&gt;
&lt;li&gt;Run the &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_proxy.html"&gt;Apache httpd web server module "mod_proxy"&lt;/a&gt;  to offload processing of dynamic content to another web server. This  acts as a reverse proxy, routing external traffic to various servers on  an internal network.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;hr noshade="noshade" size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Using a Linux Virtual Server to Create a Load Balance Cluster:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;You can use a single Linux server to forward requests to a cluster of servers using iptables for IP masquerading and IPVsadm to scale your load. The load balancing server receiving and routing the requests is called the "Linux Virtual Server" (LVS). The LVS receives the requests which are passed to the real servers which  process and reply to the request.  This reply is forwarded to the client by the LVS.       &lt;br /&gt;
This feature is available with the Linux 2.4/2.6 kernel. (If compiling kernel: Networking Options + IP: Virtual Server Configuration)       &lt;br /&gt;
Configuration: This example will load balance http traffic to three web servers  and ftp traffic to a fourth server.       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Enable Forwarding:     (Also see &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html#FORWARDING"&gt;YoLinux Networking Tutorial: Enable Forwarding&lt;/a&gt;)&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;&lt;tt&gt;echo "1" &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/tt&gt;
              &lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Enable IP Masquerading:&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;iptables -t nat -P POSTROUTING DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    &lt;/pre&gt;For more on IP Masquerading, iptables and subnet addresses, see the      &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html"&gt;YoLinux network gateway tutorial&lt;/a&gt;.     &lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Enable virtual server:           &lt;ul&gt;&lt;li&gt;Create virtual service and choose scheduler for http (80) and ftp (21):&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;ipvsadm -A -t 66.218.88.103:80 -s wlc
ipvsadm -A -t 66.218.88.103:21 -s wrr
    &lt;/pre&gt;Command directives:                          &lt;ul&gt;&lt;li&gt;A: Add a virtual service defined by IP  address,  port  number, and protocol.     &lt;/li&gt;
&lt;li&gt;-t:  Use   TCP   service host:port     &lt;/li&gt;
&lt;li&gt;-s: scheduler:                                 &lt;ul&gt;&lt;li&gt;rr: Robin Robin: distributes jobs equally amongst the avail-               able real servers.         &lt;/li&gt;
&lt;li&gt;wrr: Weighted Round Robin.         &lt;/li&gt;
&lt;li&gt;lc: Least-Connection: assigns more jobs to real  servers  with               fewer active jobs.         &lt;/li&gt;
&lt;li&gt;wlc: (Default) Weighted Least-Connection: assigns more jobs to servers               with fewer jobs  and  relative  to  the  real  server's  weight.         &lt;/li&gt;
&lt;li&gt;lblc, lblcr, dh, sh, sed, nq. See man page.         &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Configure load balancing cluser.&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;pre&gt;ipvsadm -a -t 66.218.88.103:80 -r 176.168.1.1:80 -m
ipvsadm -a -t 66.218.88.103:80 -r 176.168.1.2:80 -m -w 2
ipvsadm -a -t 66.218.88.103:80 -r 176.168.1.3:80 -m
ipvsadm -a -t 66.218.88.103:21 -r 176.168.1.4:21 -m
    &lt;/pre&gt;Command directives:                          &lt;ul&gt;&lt;li&gt;-r:  Real server.     &lt;/li&gt;
&lt;li&gt;-m:  Use masquerading also known as network  address  translation (NAT)     &lt;/li&gt;
&lt;li&gt;-w:  Weight is an integer specifying the capacity  of a server rela-               tive  to the others in the pool. The valid values of weight are               0 through to 65535. The default is  1.     &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;Links:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.linuxvirtualserver.org/"&gt;LinuxVirtualServer.org&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=iptables"&gt;iptables&lt;/a&gt; - Administration tool for IPv4 packet filtering and NAT         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://man.yolinux.com/cgi-bin/man2html?cgi_command=ipvsadm"&gt;ipvsadm&lt;/a&gt; - Administer the routing table on a Linux Virtual Server.         &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="DAEMONS"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Managing Web Server Daemons:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;To view if these services are  running, type &lt;tt&gt;ps -aux&lt;/tt&gt; and look for the httpd, inetd and named  services (daemons). These are background processes necessary to perform the server tasks.       &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;root       681  0.0  0.5  2304  744 ?        S    Sep09   0:01 named
   nobody   28123  0.0  1.1  3036 1420 ?        S    Oct06   0:00 httpd
   nobody   28186  0.0  0.7  3044  896 ?        S    Oct06   0:00 httpd
   root       385  0.0  0.1  1136  232 ?        S    Sep09   0:00 inetd&lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;A new installation will most likely NOT start the named background process which may be started manually after configuration.       &lt;br /&gt;
See the &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html"&gt;YoLinux Init Process Tutorial&lt;/a&gt; for more information.       &lt;br /&gt;
The inetd (or xinetd) background process is the Internet daemon which  starts FTP when an ftp request is made.              &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Sys Admin Script:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;Script to prepare an account: (Red Hat/Fedora)       &lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;&lt;table bgcolor="#000000" border="1" cellpadding="4" cellspacing="1"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#c0c0c0"&gt;                 &lt;td&gt;&lt;pre&gt;#!/bin/sh
# Author Greg Ippolito
# Requires: /opt/etc/AccountDefaults/pathmsg favicon.ico  mwh-mini_tr.gif etc.
#           /opt/bin/ftponly
#   You must be root to run this script.
#
if [ $# -eq 0 ]
then
   echo "Enter user id as a command argument"
else if [ -r /home/$1 ]
then
   echo "User's home directory already exists"
else
   echo "1)  Create user."
   adduser -m $1

   echo "2)  Set user Password."
   passwd $1

   echo "3)  Add read access to user directory so apache can read it."
   cd /home
   chmod ugo+rx $1
   cd $1

   echo "4)  Create web directories."
   mkdir public_html
   chown $1.$1 public_html
   chcon -R -h -u system_u -r object_r -t httpd_sys_content_t public_html
   cd public_html
   mkdir images
   chown $1.$1 images
   chcon -R -h -u system_u -r object_r -t httpd_sys_content_t images

   # Block potential for unauthenticated logins
   cd ../
   touch .rhosts
   chmod ugo-xrw .rhosts

   echo "5)  Create default web page"
   sed "/HEADING/s!HEADING!$1!" /opt/etc/AccountDefaults/default-index.html &amp;gt; index.html
   cp -p /opt/etc/AccountDefaults/favicon.ico .
   cp -p /opt/etc/AccountDefaults/default-logo.gif ./images
   cp -p /opt/etc/AccountDefaults/robots.txt .
   chown $1.$1 index.html favicon.ico robots.txt
   chcon -R -h -t httpd_sys_content_t index.html favicon.ico robots.txt
   chcon -R -h -t httpd_sys_content_t images/default-logo.gif

   echo "6)  Edit /etc/passwd file - change user shell to /opt/bin/ftponly"
   cp -p  /etc/passwd /etc/passwd-`date +%m%d%y`
   sed "/^$1/s!/bin/bash!/opt/bin/ftponly!" /etc/passwd-`date +%m%d%y` &amp;gt; /etc/passwd

#wu-ftp# Requires: /etc/ftpaccess guestuser restrict-uid
#wu-ftp#   echo "7)  Add user to /etc/ftpaccess file"
#wu-ftp#   cp -p  /etc/ftpaccess /etc/ftpaccess-`date +%m%d%y`
#wu-ftp#   sed "/^guestuser/s!guestuser !guestuser $1 !" /etc/ftpaccess-`date +%m%d%y` &amp;gt; /etc/ftpaccess
#wu-ftp#   sed "/^restricted-uid/s!restricted-uid !restricted-uid $1 !" /etc/ftpaccess-`date +%m%d%y` &amp;gt; /etc/ftpaccess
#wu-ftp#   echo "guest-root /home/$1/public_html $1" &amp;gt;&amp;gt; /etc/ftpaccess

   echo "7)  Add user to vsftpd chroot list
   cat `echo $1` &amp;gt;&amp;gt; /etc/vsftpd/vsftpd.chroot_list

   echo "8)  Setting Disk Quotas to default 50Mb limit:"
#  Use user johndoe as a prototype.
   edquota -p johndoe $1

   echo "9)  Admin Follow-up:"
   echo "     Modify quota.user if different than default"
   echo "     Make changes to Bind names services on dns1 and dns2 if necessary"
   echo "       Change /etc/http/conf/httpd.conf or 
   echo "       add config to /etc/http/conf.d/ if using a new domain name"
   echo "       Add e-mail aliases to mail server if necessary"
fi
fi
      &lt;/pre&gt;&lt;/td&gt;               &lt;/tr&gt;
&lt;/tbody&gt;           &lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;FYI: Sample robots.txt files:       &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.yolinux.com/robots.txt"&gt;yolinux.com/robots.txt&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.usc.edu/robots.txt"&gt;USC.edu/robots.txt&lt;/a&gt;         &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" name="RESOURCES"&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;hr size="5" /&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr bgcolor="#ffcc33"&gt;             &lt;td&gt;&lt;b&gt;&lt;big&gt;Useful links and resources:&lt;/big&gt;&lt;/b&gt;&lt;/td&gt;           &lt;/tr&gt;
&lt;/tbody&gt;       &lt;/table&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html"&gt;Linux Init Process&lt;/a&gt; - YoLinux.com tutorial         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/ApacheRedirect.html"&gt;Setting up an Apache redirect&lt;/a&gt; - YoLinux.com tutorial         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.apache.org/docs/"&gt;Apache Documentation&lt;/a&gt;         &lt;/li&gt;
&lt;li&gt;LDP HowTo Guides:           &lt;ul&gt;&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/DNS-HOWTO.html"&gt;DNS-HOWTO&lt;/a&gt; - DNS administration - Nicolai Langfeldt           &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/Securing-Domain-HOWTO.html"&gt;Securing-Domain-HOWTO&lt;/a&gt;           &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/ISP-Setup-RedHat.html"&gt;ISP-Setup-RedHat&lt;/a&gt; - Using Linux to host an ISP - Anton Chuvakin           &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/Networking-Overview-HOWTO.html"&gt;Linux Networking Overview HOWTO&lt;/a&gt; - Daniel Lopez Ridruejo           &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/Virtual-Services-HOWTO.html"&gt;Virtual-Services-HOWTO&lt;/a&gt; - DNS, FTP, Apache, Mail (POP, Qmail, Sendmail), Syslogd and Samba           &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/WWW-HOWTO.html"&gt;WWW-HOWTO&lt;/a&gt; - Setting up Apache services           &lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.yolinux.com/HOWTO/WWW-mSQL-HOWTO.html"&gt;WWW-mSQL-HOWTO&lt;/a&gt;           &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.colosource.com/ix.asp"&gt;List of Internet Exchanges&lt;/a&gt; - An Internet Exchange (IX) is a junction between multiple principle Internet communication lines.              A colo hosted at or close to an IX will have your best ability to handle traffic and your lowest latencies.         &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialMailMTA.html"&gt;Setting up a mail server&lt;/a&gt; - YoLinux Tutorial         &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-6885330627591618843?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/bfhwxOFTLbs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/6885330627591618843/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/linux-web-server-and-domain.html#comment-form" title="10 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/6885330627591618843?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/6885330627591618843?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/bfhwxOFTLbs/linux-web-server-and-domain.html" title="Linux Web Server and Domain Configuration Tutorial" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-iWd3aIgJRf4/To6wAKS-9GI/AAAAAAAAAI8/86gRy96oa98/s72-c/server-linux.jpg" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/linux-web-server-and-domain.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYARHk8eCp7ImA9WhdUGUo.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-2969004010598054659</id><published>2011-10-07T00:39:00.000-07:00</published><updated>2011-10-07T00:39:05.770-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T00:39:05.770-07:00</app:edited><title>Joomla</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-rMHHT0EAmTM/To6sTCxvlGI/AAAAAAAAAI4/9eey0zDRerw/s1600/joomla-logo-vert-color.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://4.bp.blogspot.com/-rMHHT0EAmTM/To6sTCxvlGI/AAAAAAAAAI4/9eey0zDRerw/s200/joomla-logo-vert-color.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-m1O5UYLN_Gc/To6rhU2wEnI/AAAAAAAAAIs/FXkNM_U6V1M/s1600/joomla-logo-vert-color.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span id="goog_1625072521"&gt;&lt;/span&gt;&lt;span id="goog_1625072522"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;Joomla!&lt;/b&gt; is a &lt;a href="http://en.wikipedia.org/wiki/Free_software" title="Free software"&gt;free&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Open_source_software" title="Open source software"&gt;open source&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Content_management_system" title="Content management system"&gt;content management system&lt;/a&gt; for publishing content on the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/World_wide_web" title="World wide web"&gt;world wide web&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Intranet" title="Intranet"&gt;intranets&lt;/a&gt;. The system includes features such as page &lt;a href="http://en.wikipedia.org/wiki/Cache" title="Cache"&gt;caching&lt;/a&gt; to improve performance, &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/RSS_%28file_format%29" title="RSS (file format)"&gt;RSS&lt;/a&gt; feeds, printable versions of pages, news flashes, &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Blogs" title="Blogs"&gt;blogs&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Opinion_poll" title="Opinion poll"&gt;polls&lt;/a&gt;, website searching, and &lt;a href="http://en.wikipedia.org/wiki/Internationalization_and_localization" title="Internationalization and localization"&gt;language internationalization&lt;/a&gt;. Joomla is licensed under the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" title="GNU General Public License"&gt;GPL&lt;/a&gt;, and is the result of a &lt;a href="http://en.wikipedia.org/wiki/Fork_%28software_development%29" title="Fork (software development)"&gt;fork&lt;/a&gt; of &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Mambo_%28CMS%29" title="Mambo (CMS)"&gt;Mambo&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
The name Joomla is properly written with an exclamation mark as that is part of the name, but this is commonly omitted.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
It is written in the &lt;a href="http://en.wikipedia.org/wiki/PHP" title="PHP"&gt;PHP&lt;/a&gt; programming language and uses the &lt;a href="http://en.wikipedia.org/wiki/MySQL" title="MySQL"&gt;MySQL&lt;/a&gt; database by default.&lt;/div&gt;
&lt;h2 style="text-align: justify;"&gt;

&lt;span class="mw-headline"&gt;History&lt;/span&gt;&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
Joomla came into being as the result of a &lt;a href="http://en.wikipedia.org/wiki/Fork_%28software_development%29" title="Fork (software development)"&gt;fork&lt;/a&gt; of &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Mambo_%28CMS%29" title="Mambo (CMS)"&gt;Mambo&lt;/a&gt;
 by the development team on August 17, 2005. At that time, the Mambo 
name was trademarked by Miro International Pty Ltd, who formed a &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Non-profit" title="Non-profit"&gt;non-profit&lt;/a&gt; &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Foundation_%28charity%29" title="Foundation (charity)"&gt;foundation&lt;/a&gt;
 with the stated purpose to fund the project and protect it from 
lawsuits. The development team claimed that many of the provisions of 
the foundation structure went against previous agreements made by the 
elected Mambo Steering Committee, lacked the necessary consultation with
 key stake holders, and included provisions that violated core &lt;a href="http://en.wikipedia.org/wiki/Open_source_software" title="Open source software"&gt;open source&lt;/a&gt; values.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
The development team created a web site called OpenSourceMatters to 
distribute information to users, developers, web designers, and the 
community in general. The project team leader Andrew Eddie, aka 
“MasterChief” wrote an open letter to the community which appeared on 
the announcements section of the public forum at mamboserver.com.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
A thousand people had joined the opensourcematters.org web site 
within a day, most posting words of encouragement and support. The web 
site received the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Slashdotting" title="Slashdotting"&gt;slashdot&lt;/a&gt;
 effect as a result. Miro CEO Peter Lamont gave a public response to the
 development team in an article entitled “The Mambo Open Source 
Controversy – 20 Questions With Miro”.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
This event stirred deeply held feelings in the &lt;a href="http://en.wikipedia.org/wiki/Free_software_community" title="Free software community"&gt;free software community&lt;/a&gt;
 regarding what shall constitute “open source”. Forums at many other 
open source projects were active with postings for and against the 
actions of both sides.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
In the two weeks following Eddie’s announcement teams were re-organized and the community continued to grow. &lt;a href="http://en.wikipedia.org/wiki/Eben_Moglen" title="Eben Moglen"&gt;Eben Moglen&lt;/a&gt; and the &lt;a href="http://en.wikipedia.org/wiki/Software_Freedom_Law_Center" title="Software Freedom Law Center"&gt;Software Freedom Law Center&lt;/a&gt; (SFLC) assisted the Joomla! core team beginning in August 2005, as indicated by Moglen’s &lt;a class="external text" href="http://emoglen.law.columbia.edu/blog/2005/08/index.html" rel="nofollow" title="http://emoglen.law.columbia.edu/blog/2005/08/index.html"&gt;blog entry from that date&lt;/a&gt; and a related &lt;a class="external text" href="http://www.opensourcematters.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=41&amp;amp;Itemid=1" rel="nofollow" title="http://www.opensourcematters.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=41&amp;amp;Itemid=1"&gt;OSM announcement&lt;/a&gt;. The SFLC &lt;a class="external text" href="http://www.joomla.org/content/view/40/41/" rel="nofollow" title="http://www.joomla.org/content/view/40/41/"&gt;continue&lt;/a&gt; to provide legal guidance to Joomla! project.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
On August 18, 2005, Andrew Eddie &lt;a class="external text" href="http://forum.joomla.org/viewtopic.php?f=124&amp;amp;t=272" rel="nofollow" title="http://forum.joomla.org/viewtopic.php?f=124&amp;amp;t=272"&gt;called for community input&lt;/a&gt;
 on suggested names for the project. The development team indicated that
 it would make the final decision for the project name based on &lt;a class="external text" href="http://forum.joomla.org/viewtopic.php?f=124&amp;amp;t=272&amp;amp;&amp;amp;start=600#p20658" rel="nofollow" title="http://forum.joomla.org/viewtopic.php?f=124&amp;amp;t=272&amp;amp;&amp;amp;start=600#p20658"&gt;community input&lt;/a&gt;.
 The name the development team chose was not in the list of suggested 
names provided by the community as it was chosen with consultation from &lt;a class="external text" href="http://forum.joomla.org/viewtopic.php?f=124&amp;amp;t=272&amp;amp;&amp;amp;start=600#p20188" rel="nofollow" title="http://forum.joomla.org/viewtopic.php?f=124&amp;amp;t=272&amp;amp;&amp;amp;start=600#p20188"&gt;a professional brand consultancy&lt;/a&gt; under the pay of Open Source Matters.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
On September 1, 2005 the new name, “Joomla”, which is the &lt;a href="http://en.wikipedia.org/wiki/English_language" title="English language"&gt;English&lt;/a&gt; spelling of the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Swahili" title="Swahili"&gt;Swahili&lt;/a&gt; (Arabic:جملة ,and &lt;a href="http://en.wikipedia.org/wiki/Urdu" title="Urdu"&gt;Urdu&lt;/a&gt;: &lt;a class="extiw" href="http://ur.wikipedia.org/wiki/%D8%AC%D9%88%D9%85%D9%84%DB%81" title="جوملہ"&gt;جملہ&lt;/a&gt; ) word &lt;i&gt;jumla&lt;/i&gt; meaning “all together” or “as a whole” &lt;a class="external text" href="http://forum.joomla.org/viewtopic.php?f=8&amp;amp;t=3097" rel="nofollow" title="http://forum.joomla.org/viewtopic.php?f=8&amp;amp;t=3097"&gt;was announced&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
On September 7, 2005, the development team called for &lt;span class="external text"&gt;logo submissions&lt;/span&gt; from the community, &lt;span class="external text"&gt;invited the community&lt;/span&gt; to vote on the logo preferred, and announced &lt;a class="external text" href="http://forum.joomla.org/viewtopic.php?f=8&amp;amp;t=7710" rel="nofollow" title="http://forum.joomla.org/viewtopic.php?f=8&amp;amp;t=7710"&gt;the community’s decision&lt;/a&gt; on September 22, 2005. Following the logo selection, &lt;a class="external text" href="http://www.joomla.org/content/view/259/70/" rel="nofollow" title="http://www.joomla.org/content/view/259/70/"&gt;Brand Guidelines&lt;/a&gt;, a &lt;a class="external text" href="http://www.joomla.org/content/view/259/70/" rel="nofollow" title="http://www.joomla.org/content/view/259/70/"&gt;Brand Manual&lt;/a&gt;, and set of Logo Resources were published on October 2, 2005 for the community’s use.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
The first release of Joomla (Joomla 1.0.0) was announced on September 16, 2005. This was a re-branded release of &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Mambo_%28CMS%29" title="Mambo (CMS)"&gt;Mambo&lt;/a&gt;
 4.5.2.3 combined with other bug and moderate-level security fixes. 
Joomla version 1.5 was released on January 22, 2008. Joomla won the 
Packt Publishing Open Source Content Management System Award in 2006 and 2007.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" id="Features" name="Features"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2 style="text-align: justify;"&gt;

&lt;span class="editsection"&gt;&lt;/span&gt;&lt;span class="mw-headline"&gt;Features&lt;/span&gt;&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
The Joomla package consists of many different parts, which are built 
to be as modular as possible, allowing extensions and integrations to be
 made easily. An example of such are extensions called “Plugins”. 
(Previously known as “Mambots”.) Plugins are background extensions that 
extend Joomla with new functionality. The &lt;a class="new" href="http://en.wikipedia.org/w/index.php?title=Joomla_WikiBot&amp;amp;action=edit&amp;amp;redlink=1" title="Joomla WikiBot (page does not exist)"&gt;WikiBot&lt;/a&gt;,
 for example, allows the author of Joomla content to use “Wikitags” in 
Joomla articles which will auto-create dynamic hyperlinks to Wikipedia 
articles when displayed. There are over 2,900 extensions for Joomla 
available via the Extensions Directory.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
In addition to Plugins, more comprehensive extensions are available. 
“Components” allow webmasters to perform such tasks as build a community
 by expanding user features, backup a website, translate content and 
create &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/URL" title="URL"&gt;URLs&lt;/a&gt;
 that are more friendly to search engines. “Modules” perform such tasks 
as displaying a calendar or allowing custom code like Google AdSense etc
 to be inserted within the base Joomla code.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Since it has been around longer, there are more extensions available 
for Joomla 1.0 than for Joomla 1.5, although native 1.5 extensions are 
becoming increasingly available. Some of the older 1.0 extensions can be
 used with version 1.5 if it is set to legacy mode.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Joomla permits administrators to set global configuration parameters 
that affect all articles. Every page conforms to these parameters by 
default, but a page can have its own setting for each parameter. For 
example, you can elect to show the article author, hide the author, or 
simply go with the global “show author” parameter.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=180839935467389508" id="Community" name="Community"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2 style="text-align: justify;"&gt;

&lt;span class="editsection"&gt;&lt;/span&gt;&lt;span class="mw-headline"&gt;Community&lt;/span&gt;&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
Joomla has an official and many unofficial communities. As of 
February 2008, the official Joomla forum has more than 260,000 threads 
and over 1.2 million posts from more than 170,000 registered members in 
40 languages. Unofficial sites are published in many languages, often 
with Joomla extensions that are region specific. &lt;a href="http://en.wikipedia.org/wiki/Bi-directional_text" title="Bi-directional text"&gt;Bi-directional text&lt;/a&gt; support for the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Hebrew" title="Hebrew"&gt;Hebrew&lt;/a&gt; and &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Arabic" title="Arabic"&gt;Arabic&lt;/a&gt; languages, for example, can be found on 3rd party community portals. Unofficial web developers also build extensions and &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Web_templates" title="Web templates"&gt;web templates&lt;/a&gt; for commercial sale and offer &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Freelance" title="Freelance"&gt;freelance&lt;/a&gt; customization services. Usually a template is distributed as a &lt;a href="http://en.wikipedia.org/wiki/ZIP_%28file_format%29" title="ZIP (file format)"&gt;zip file&lt;/a&gt; which can be installed using the Joomla installer.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-2969004010598054659?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/h-2XIkZ-6mk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/2969004010598054659/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/10/joomla.html#comment-form" title="9 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/2969004010598054659?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/2969004010598054659?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/h-2XIkZ-6mk/joomla.html" title="Joomla" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-rMHHT0EAmTM/To6sTCxvlGI/AAAAAAAAAI4/9eey0zDRerw/s72-c/joomla-logo-vert-color.png" height="72" width="72" /><thr:total>9</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/10/joomla.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CQns7fCp7ImA9WhZWE0s.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-4949764814311976984</id><published>2011-05-14T02:22:00.000-07:00</published><updated>2011-05-14T02:22:43.504-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-14T02:22:43.504-07:00</app:edited><title>Talend Cache Management</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;Background :&lt;/i&gt; Talend Open Studio can read/write from/to many different sources, so it  is generally easy for a good data integration architect to design  solution that "cache" recordsets in db tables, temporary files etc.&lt;br /&gt;
However this adds additional steps, sometimes even additional  architecture components such as a database, adding complexity to the job  itslef.&lt;br /&gt;
Sometimes it would be easy to have a simple buffer in memory to store  temporary information, maybe populated incrementally with a number of  iterations.Or it would be nice to be able to dump this buffer to disk  and re-load it whenever needed.  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;The solution&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A couple of components that handle the cache management tasks, both in memory and on disk.&lt;br /&gt;
They are easy to use in any Talend Data Integration job, allowing  temporary or persistent data storage. Cache files and memory buffers can  be loaded incrementally using loops.&lt;br /&gt;
It is also possible to "init" a chache form a previously stored file and incrementally append new records.&lt;br /&gt;
Storing data in memory can quickly use up the java heap, also because  this release of the routines is not yet optimized. Currently there is no  data compression involved, this could be included in a future release.I  succesfully managed to load a 6 Million records table (4 fields) in  memory, but you should account for concurrent processes that also may  use heavily the heap. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Current version&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Version : 0.2&lt;br /&gt;
Release Date : May 11 2011&lt;br /&gt;
Status  : Beta &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Example&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The job &lt;i&gt;tCacheDemo&lt;/i&gt; demomstrates the usage of the two components &lt;br /&gt;
&lt;br /&gt;
&lt;div align="center"&gt;&lt;img height="166" src="http://www.powerupbi.com/talend/images/cachedemo.png" width="400" /&gt; &lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;Cache Load Loop&lt;/b&gt; subJob loads the cache buffer in memory and generates a set of cache files.&lt;br /&gt;
To demonstrate the incremental load capabilities, a Loop is used to  process multiple times a data source (in this examples an RSS feed, any  recordset would work).&lt;br /&gt;
&lt;div id="Container"&gt;&lt;img src="http://www.powerupbi.com/talend/images/tLoop_icon32.png" /&gt;&lt;b&gt; tLoop_1&lt;/b&gt; This step simply performs 100 iterations. &lt;/div&gt;&lt;br /&gt;
&lt;div id="Container"&gt;&lt;img src="http://www.powerupbi.com/talend/images/tRSSInput_icon32.png" /&gt;&lt;b&gt; tRSSInput_1&lt;/b&gt;  A sample data source returning 10 records.In the demo job it is  configured to read a xml file "news.rss", being a local copy of a Google  news RSS Feed.  &lt;/div&gt;&lt;br /&gt;
&lt;div id="Container"&gt;&lt;img src="http://www.powerupbi.com/talend/images/tCacheOutput_icon32.png" /&gt;&lt;b&gt; tCacheOutput_1&lt;/b&gt; This component is set to cache data both on disk and in memory. The &lt;i&gt;global buffer variable name&lt;/i&gt; is an arbitrary name that was set to "cache".&lt;br /&gt;
The &lt;i&gt;Cache file name&lt;/i&gt; is set to &lt;b&gt;context.baseDir+"/cache"+((Integer)globalMap.get("tLoop_1_CURRENT_VALUE"))+".dat"&lt;/b&gt; to demonstrate the ability to change the file name at each iteration.Finally the &lt;i&gt;append to file&lt;/i&gt; option is unchecked to reset the cache files at each run. Feel free to play around with these settings. &lt;br /&gt;
This component is a "DATA_AUTOPROPAGATE" component, meaning that the  same flow that arrives in input can also be retrieved in output,  allowing the component to be used as a "middle" step in a flow.  &lt;/div&gt;&lt;br /&gt;
The "Record count" subJob simply uses a tJava component to output the  two record counters available in the tCacheOutput component, one being  the number of records processed in the current iteration and the other  being the number of records stored in the memory cache. &lt;br /&gt;
&lt;br /&gt;
&lt;div id="Container"&gt;&lt;img src="http://www.powerupbi.com/talend/images/tJava_icon32.png" /&gt;&lt;b&gt; tJava_1&lt;/b&gt; Simply outputs a string in the console, the code is  &lt;br /&gt;
&lt;div id="inner"&gt;System.out.println("Iteration records :  "+((Integer)globalMap.get("tCacheOutput_1_NB_LINE"))+" Record in memory  cache : "+((Integer)globalMap.get("tCacheOutput_1_NB_CACHE_LINE")) ); &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Finally the &lt;b&gt;Cache read&lt;/b&gt; subjob is activated once all the  iterations are terminated (via a "subjob OK" trigger link, originating  from tLoop_1) and starts the output to the tLogRow component. In a real  world application this would be connected to a destination table, a  tBufferOutout or another flow consumer. &lt;br /&gt;
&lt;br /&gt;
&lt;div id="Container"&gt;&lt;img src="http://www.powerupbi.com/talend/images/tCacheInput_icon32.png" /&gt;&lt;b&gt; tCacheInput_1&lt;/b&gt; By setting this component to read from the memory "cache" buffer, all the records stored with the 100 iterations are returned.&lt;br /&gt;
An optional check is set to remove from memory the buffer once it is  read. You can decide to leave data in memory if you need to process it  again (also with another tCacheInput component).&lt;br /&gt;
It is possible to alternatively set the cache source to one of the cache files generated. &lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Downloads&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div id="inner"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href="http://www.powerupbi.com/talend/files/tCacheInput.zip"&gt;Download tCacheInput&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href="http://www.powerupbi.com/talend/files/tCacheOutput.zip"&gt;Download tCacheOuput&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href="http://www.powerupbi.com/talend/files/tCacheTest_0.1.zip"&gt;Download sample Job&lt;/a&gt; &lt;i&gt;Rimember to configure the &lt;b&gt;baseDir&lt;/b&gt; context variable, this will be the location for the cache files and the sample input data&lt;/i&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;&lt;a href="http://www.powerupbi.com/talend/files/tCacheData.zip"&gt;Download sample data&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://www.powerupbi.com/talend/tCache.html"&gt;http://www.powerupbi.com/talend/tCache.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-4949764814311976984?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/5--WbRh1QQE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/4949764814311976984/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/05/talend-cache-management.html#comment-form" title="9 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4949764814311976984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4949764814311976984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/5--WbRh1QQE/talend-cache-management.html" title="Talend Cache Management" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/05/talend-cache-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEBQno8fyp7ImA9WhZXF00.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-3684774692670782875</id><published>2011-05-05T02:08:00.000-07:00</published><updated>2011-05-06T09:50:53.477-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-06T09:50:53.477-07:00</app:edited><title>Autoincrement key in PostgreSQL and MySQL</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I'm switching from MySQL to PostgreSQL and was wondering how I can do  autoincrement values. I saw in the PostgreSQL docs a datatype "serial".This is equivalent to AUTOINCREMENT in MySQL.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="kwd"&gt;CREATE&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;TABLE&lt;/span&gt;&lt;span class="pln"&gt; foo &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;
id SERIAL&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;
bar varchar&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="kwd"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="kwd"&gt;INSERT&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;INTO&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"foo"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;bar&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;values&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;'blah'&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="kwd"&gt;INSERT&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;INTO&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"foo"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;bar&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;values&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;'blah'&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="kwd"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="kwd"&gt;SELECT&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;*&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;FROM&lt;/span&gt;&lt;span class="pln"&gt; foo&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="lit"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="lit"&gt;1&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;blah&lt;/span&gt;&lt;span class="lit"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="lit"&gt;2&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;blah&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;code&gt;AUTOINCREMENT IN MySQL&lt;/code&gt;&lt;/b&gt;&lt;/span&gt;&lt;code&gt;

The AUTO_INCREMENT attribute can be used to generate a unique identity for new rows:

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;

INSERT INTO animals (name) VALUES
    ('dog'),('cat'),('penguin'),
    ('lax'),('whale'),('ostrich');

SELECT * FROM animals;

Which returns:

+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+
&lt;/code&gt;No value was specified for the AUTO_INCREMENT column, so MySQL assigned sequence numbers automatically.&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;You can also explicitly assign NULL or 0 to the column to generate sequence numbers.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;You can retrieve the most recent AUTO_INCREMENT value with the LAST_INSERT_ID() SQL function or the mysql_insert_id() C API function.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;These functions are connection-specific, so their return values are not affected by another connection which is also performing inserts.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;Use a large enough integer data type for the AUTO_INCREMENT column to hold the maximum sequence value you will need.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;When the column reaches the upper limit of the data type, the next attempt to generate a sequence number fails.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;For example, if you use TINYINT, the maximum permissible sequence number is 127.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;For TINYINT UNSIGNED, the maximum is 255.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;Note For a multiple-row insert, LAST_INSERT_ID() and mysql_insert_id() actually return the AUTO_INCREMENT key from the first of the inserted rows.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;This enables multiple-row inserts to be reproduced correctly on other servers in a replication setup.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;For MyISAM and BDB tables you can specify AUTO_INCREMENT on a secondary column in a multiple-column index.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;In this case, the generated value for the AUTO_INCREMENT column is calculated as MAX(auto_increment_column) + 1 WHERE prefix=given-prefix.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;This is useful when you want to put data into ordered groups. &lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;CREATE TABLE animals (
    grp ENUM('fish','mammal','bird') NOT NULL,
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (grp,id)
) ENGINE=MyISAM;

INSERT INTO animals (grp,name) VALUES
    ('mammal','dog'),('mammal','cat'),
    ('bird','penguin'),('fish','lax'),('mammal','whale'),
    ('bird','ostrich');

SELECT * FROM animals ORDER BY grp,id;

Which returns:

+--------+----+---------+
| grp    | id | name    |
+--------+----+---------+
| fish   |  1 | lax     |
| mammal |  1 | dog     |
| mammal |  2 | cat     |
| mammal |  3 | whale   |
| bird   |  1 | penguin |
| bird   |  2 | ostrich |
+--------+----+---------+&lt;/code&gt;
In this case (when the AUTO_INCREMENT column is part of a multiple-column index), AUTO_INCREMENT values are reused if you delete the row with the biggest AUTO_INCREMENT value in any group.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;This happens even for MyISAM tables, for which AUTO_INCREMENT values normally are not reused.

If the AUTO_INCREMENT column is part of multiple indexes, MySQL will generate sequence values using the index that begins with the AUTO_INCREMENT column, if there is one.&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;For example, if the animals table contained indexes PRIMARY KEY (grp, id) and INDEX (id), MySQL would ignore the PRIMARY KEY for generating sequence values.&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;As a result, the table would contain a single sequence, not a sequence per grp value.

To start with an AUTO_INCREMENT value other than 1, you can set that value with CREATE TABLE or ALTER TABLE, like this:

mysql&amp;gt; ALTER TABLE tbl AUTO_INCREMENT = 100;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class="lang-sql prettyprint"&gt;&lt;code&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-3684774692670782875?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/l3-dT3jHQ5Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/3684774692670782875/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/05/autoincrement-key-in-postgresql.html#comment-form" title="8 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/3684774692670782875?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/3684774692670782875?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/l3-dT3jHQ5Q/autoincrement-key-in-postgresql.html" title="Autoincrement key in PostgreSQL and MySQL" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/05/autoincrement-key-in-postgresql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4HRHg9eSp7ImA9WhZXEEQ.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-7005844212873164237</id><published>2011-04-29T09:35:00.001-07:00</published><updated>2011-04-29T09:35:35.661-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T09:35:35.661-07:00</app:edited><title>Installing m2eclipse in Eclipse 3.6 (Helios) with the Eclipse Marketplace</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The Eclipse Marketplace makes it easy to install m2eclipse and                 m2eclipse (Extras) in Eclipse 3.6 (Helios). To open the Eclipse                 Marketplace, go to the Eclipse Help menu and select Eclipse Marketplace...                 as shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-eclipse-marketplace" title="Figure 2.1. Opening the Eclipse Marketplace"&gt;Figure&amp;nbsp;2.1, “Opening the Eclipse Marketplace”&lt;/a&gt;.                    &lt;div class="figure"&gt;&lt;a href="" name="fig-install-eclipse-marketplace"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                &lt;div class="mediaobject"&gt;&lt;img alt="Opening the Eclipse Marketplace" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-marketplace.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.1.&amp;nbsp;Opening the Eclipse Marketplace&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;The first time you open the Eclipse Marketplace, you will be asked                 to select a Marketplace. Select the Eclipse Marketplace as shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-select-marketplace" title="Figure 2.2. Selecting the Eclipse Marketplace"&gt;Figure&amp;nbsp;2.2, “Selecting the Eclipse Marketplace”&lt;/a&gt;.          &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-select-marketplace"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                &lt;div class="mediaobject"&gt;&lt;img alt="Selecting the Eclipse Marketplace" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-select-marketplace.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.2.&amp;nbsp;Selecting the Eclipse Marketplace&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;&lt;div class="section" lang="en"&gt;             &lt;div class="titlepage"&gt;                &lt;div&gt;                   &lt;div&gt;                      &lt;h3 class="title"&gt;&lt;a href="" name="d0e342"&gt;&lt;/a&gt;2.2.1.&amp;nbsp;Installing Maven Integration for Eclipse (Core)                      &lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Maven Integration for Eclipse is separated into two components:                      the Core of Maven Integration for Eclipse and an optional package of                      extra, unsupported components. To install the core component of Maven                      Integration for Eclipse, open the Eclipse Marketplace, select the Search                      tab, and search for "Maven Integration" as shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-selecting-m2eclipse-marketplace" title="Figure 2.3. Selecting Maven Integration for Eclipse from Eclipse Marketplace"&gt;Figure&amp;nbsp;2.3, “Selecting Maven Integration for Eclipse from Eclipse                           Marketplace”&lt;/a&gt;. Click on the Install                      button to the right of the second item listed in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-selecting-m2eclipse-marketplace" title="Figure 2.3. Selecting Maven Integration for Eclipse from Eclipse Marketplace"&gt;Figure&amp;nbsp;2.3, “Selecting Maven Integration for Eclipse from Eclipse                           Marketplace”&lt;/a&gt;.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-selecting-m2eclipse-marketplace"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Selecting Maven Integration for Eclipse from Eclipse Marketplace" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-choose-maven-integration.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.3.&amp;nbsp;Selecting Maven Integration for Eclipse from Eclipse                              Marketplace&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Once you click on Install, Eclipse will download a list of                      available components from the remote update site and present you with a                      list of available features in the Maven Integration for Eclipse plugin                      as shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-selecting-core-components" title="Figure 2.4. Selecting the Core m2eclipse Feature for Installation"&gt;Figure&amp;nbsp;2.4, “Selecting the Core m2eclipse Feature for Installation”&lt;/a&gt;.                      Select the single, required component named "Maven Integration for                      Eclipse (Required)", and click on the Finish button.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-selecting-core-components"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Selecting the Core m2eclipse Feature for Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-uninstall-core.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.4.&amp;nbsp;Selecting the Core m2eclipse Feature for Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Eclipse will then ask you to agree to the licenses for Maven                      Integration for Eclipse in the Review Licenses step shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-agree-core-license" title="Figure 2.5. Agreeing to Software License During m2eclipse Installation"&gt;Figure&amp;nbsp;2.5, “Agreeing to Software License During m2eclipse                           Installation”&lt;/a&gt;. Maven Integration for                      Eclipse is distributed under the Eclipse Public License version 1.0. If                      you agree with the conditions of this license, select "I accept the                      terms of the license agreement" and click on the Finish button.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-agree-core-license"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Agreeing to Software License During m2eclipse Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-agree-maven-integration-license.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.5.&amp;nbsp;Agreeing to Software License During m2eclipse                              Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;During the installation process, Eclipse may warn you that the                      software you are installing contains "unsigned content". If you see the                      dialog shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-ignore-warning" title="Figure 2.6. Ignoring Warning During m2eclipse Installation"&gt;Figure&amp;nbsp;2.6, “Ignoring Warning During m2eclipse Installation”&lt;/a&gt;, click on                      OK to continue the installation process.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-ignore-warning"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Ignoring Warning During m2eclipse Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-ignore-extras-warning.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.6.&amp;nbsp;Ignoring Warning During m2eclipse Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Once m2eclipse has been installed, Eclipse will prompt you to                      either restart or apply changes to a running Eclipse. At this stage of                      the installation, you should click on Restart Now to restart your                      Eclipse instance. After a successful restart, Maven Integration for                      Eclipse will be installed.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-restart-core"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Restarting Eclipse after m2eclipse Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-restart-extras.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.7.&amp;nbsp;Restarting Eclipse after m2eclipse Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="section" lang="en"&gt;             &lt;div class="titlepage"&gt;                &lt;div&gt;                   &lt;div&gt;                      &lt;h3 class="title"&gt;&lt;a href="" name="d0e405"&gt;&lt;/a&gt;2.2.2.&amp;nbsp;Installing Maven Integration for Eclipse (Extras)                               Prerequisites                      &lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The Maven Integration for Eclipse extra components provide support                      for additional tools like the Web Tools Project (WTP), Subversion                      integration via Subclipse, and integration with Mylyn. The following                      sections provide guidance for users installing some of the prerequisites                      for m2eclipse extra components.             &lt;br /&gt;
&lt;div class="section" lang="en"&gt;                &lt;div class="titlepage"&gt;                   &lt;div&gt;                      &lt;div&gt;                         &lt;h4 class="title"&gt;&lt;a href="" name="d0e410"&gt;&lt;/a&gt;2.2.2.1.&amp;nbsp;Installing Subclipse in the Eclipse Marketplace                         &lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;To install Subclipse in the Eclipse Marketplace, open the                           Marketplace, select the Search tab, and search for "Subclipse" to see                           the dialog shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-subclipse-marketplace" title="Figure 2.8. Selecting Subclipse from the Eclipse Marketplace"&gt;Figure&amp;nbsp;2.8, “Selecting Subclipse from the Eclipse Marketplace”&lt;/a&gt;. Click on Install next                           to the Subclipse search result item.                &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-subclipse-marketplace"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                      &lt;div class="mediaobject"&gt;&lt;img alt="Selecting Subclipse from the Eclipse Marketplace" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-choose-subclipse.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.8.&amp;nbsp;Selecting Subclipse from the Eclipse Marketplace&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Select the appropriate Subclipse components, agree to the                           software license for Subclipse, and restart your Eclipse installation                           after the installation process is completed.                &lt;br /&gt;
&lt;/div&gt;&lt;div class="section" lang="en"&gt;                &lt;div class="titlepage"&gt;                   &lt;div&gt;                      &lt;div&gt;                         &lt;h4 class="title"&gt;&lt;a href="" name="d0e427"&gt;&lt;/a&gt;2.2.2.2.&amp;nbsp;Installing Mylyn in the Eclipse Marketplace                         &lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;To install Mylyn in the Eclipse Marketplace, open the                           Marketplace, select the Search tab, and search for "Mylyn" to see the                           dialog shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-mylyn-marketplace" title="Figure 2.9. Selecting Mylyn from the Eclipse Marketplace"&gt;Figure&amp;nbsp;2.9, “Selecting Mylyn from the Eclipse Marketplace”&lt;/a&gt;.                           Click on Install next to the Mylyn search result item.                &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-mylyn-marketplace"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                      &lt;div class="mediaobject"&gt;&lt;img alt="Selecting Mylyn from the Eclipse Marketplace" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-choose-mylyn.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.9.&amp;nbsp;Selecting Mylyn from the Eclipse Marketplace&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Select the appropriate SMylyn components, agree to the software                           license for Mylyn, and restart you Eclipse installation after the                           installation process is completed.                &lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="titlepage"&gt;                &lt;div&gt;                   &lt;div&gt;                      &lt;h3 class="title"&gt;&lt;a href="" name="d0e444"&gt;&lt;/a&gt;2.2.3.&amp;nbsp;Installing Maven Integration for Eclipse (Extras)                      &lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;To install the extra components for Maven Integration for Eclipse,                      open the Eclipse Marketplace, select the Search tab, and search for                      Maven Integration to see the search results shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-selecting-extras-marketplace" title="Figure 2.10. Selecting Maven Integration for Eclipse (Extras) from the Eclipse Marketplace"&gt;Figure&amp;nbsp;2.10, “Selecting Maven Integration for Eclipse (Extras) from the                           Eclipse Marketplace”&lt;/a&gt;. CLick on Install                      next to the "Maven Integration for Eclipse (Extras)" search result                      item.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-selecting-extras-marketplace"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Selecting Maven Integration for Eclipse (Extras) from the Eclipse Marketplace" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-choose-extras.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.10.&amp;nbsp;Selecting Maven Integration for Eclipse (Extras) from the                              Eclipse Marketplace&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Once you have clicked on Install, Eclipse will download the list                      of available plugin components from the remote update site. The list of                      available components will then be displayed in the Confirm Select                      Features step as shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-selecting-extras-components" title="Figure 2.11. Selecting m2eclipse (Extras) Components to Install"&gt;Figure&amp;nbsp;2.11, “Selecting m2eclipse (Extras) Components to Install”&lt;/a&gt;. The components                      available in the Maven Integration for Eclipse (Extras) site are:             &lt;br /&gt;
&lt;div class="variablelist"&gt;&lt;br /&gt;
&lt;dl&gt;&lt;dt&gt;&lt;span class="term"&gt;M2Eclipse Extensions Development Suppport (Optional)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      Install this component if you want to develop custom pages                                     in the POM Editor, create custom actions in the Maven popup menu,                                     provide custom templates in the POM XML editor, or make other                                     customizations to m2eclipse.                      
&lt;/dd&gt;
&lt;dt&gt;&lt;span class="term"&gt;Maven Integration for WTP (Optional)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      If you are developing applications using the Eclipse Web                                     Tools Project, this component will adapt the Maven classpath                                     container and other Maven resources to the WTP standards.                      
&lt;/dd&gt;
&lt;dt&gt;&lt;span class="term"&gt;Maven issue tracking configurator for Mylyn 3.x                                   (Optional)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      Maven can be configured to work with Mylyn a comprehensive                                     issue and time tracking plugin which currently ships with the                                     Eclipse IDE.                      
&lt;/dd&gt;
&lt;dt&gt;&lt;span class="term"&gt;Maven SCM handler for Subclipse (Optional)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      Subclipse is a popular Subversion plugin for Eclipse hosted                                     by the Tigris community. If you want to use Maven with Subclipse,                                     this component will provide the necessary integration between the                                     two plugins.                      
&lt;/dd&gt;
&lt;dt&gt;&lt;span class="term"&gt;Maven SCM handler for Team/CVS (Optional)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      This component provides integration between the m2eclipse                                     plugin and the CVS support built into Eclipse.                      
&lt;/dd&gt;
&lt;dt&gt;&lt;span class="term"&gt;Maven SCM Integration (Optional)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      This component is required if you installed one of the                                     previous plugins (Subclipse or Team/CVS)                      
&lt;/dd&gt;
&lt;dt&gt;&lt;span class="term"&gt;Project configurators for commonly used maven plugins                                   (temporary)&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;                      This is a temporary project which contains project                                     configurators for commonly used Maven Plugins.                      
&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div class="figure"&gt;&lt;a href="" name="fig-install-selecting-extras-components"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Selecting m2eclipse (Extras) Components to Install" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-select-extras-features.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.11.&amp;nbsp;Selecting m2eclipse (Extras) Components to Install&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Once you have selected the features you wish to install, click                      Next. Clicking Next will bring you to the Review Licenses step as shown                      in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-agree-extras-license" title="Figure 2.12. Agreeing to Software License During m2eclipse (Extras) Installation"&gt;Figure&amp;nbsp;2.12, “Agreeing to Software License During m2eclipse (Extras)                           Installation”&lt;/a&gt;. The m2eclipse                      Extras is distributed under the Eclipse Public License version 1.0. If                      you agree to this open source license, select "I accept the terms of the                      license agreement" and click on "Finish".             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-agree-extras-license"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Agreeing to Software License During m2eclipse (Extras) Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-agree-extras-license.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.12.&amp;nbsp;Agreeing to Software License During m2eclipse (Extras)                              Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;During the installation process for the m2eclipse Extras, you may                      receive some warning that "you are installing software that contains                      unsigned content". If you see the dialog shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-ignore-extras-warning" title="Figure 2.13. Ignoring Warning During m2eclipse (Extras) Installation"&gt;Figure&amp;nbsp;2.13, “Ignoring Warning During m2eclipse (Extras) Installation”&lt;/a&gt;, click OK to continue the                      installation process.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-ignore-extras-warning"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Ignoring Warning During m2eclipse (Extras) Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-ignore-maven-integration-warning.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.13.&amp;nbsp;Ignoring Warning During m2eclipse (Extras) Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br class="figure-break" /&gt;Once the installation process is finished, Eclipse will prompt you                      to apply the changes or restart your Eclipse instance with a dialog                      shown in &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html#fig-install-restart-extras" title="Figure 2.14. Restarting Eclipse after m2eclipse (Extras) Installation"&gt;Figure&amp;nbsp;2.14, “Restarting Eclipse after m2eclipse (Extras)                           Installation”&lt;/a&gt;. To complete the                      installation of m2eclipse (Extras), restart your Eclipse                      instance.             &lt;br /&gt;
&lt;div class="figure"&gt;&lt;a href="" name="fig-install-restart-extras"&gt;&lt;/a&gt;&lt;div class="figure-contents"&gt;                   &lt;div class="mediaobject"&gt;&lt;img alt="Restarting Eclipse after m2eclipse (Extras) Installation" src="http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/install-restart-maven-integration.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="title"&gt;&lt;b&gt;Figure&amp;nbsp;2.14.&amp;nbsp;Restarting Eclipse after m2eclipse (Extras)                              Installation&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-7005844212873164237?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/B3F49paJWr0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/7005844212873164237/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/04/installing-m2eclipse-in-eclipse-36.html#comment-form" title="4 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/7005844212873164237?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/7005844212873164237?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/B3F49paJWr0/installing-m2eclipse-in-eclipse-36.html" title="Installing m2eclipse in Eclipse 3.6 (Helios) with the Eclipse Marketplace" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/04/installing-m2eclipse-in-eclipse-36.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYFRHkzeip7ImA9WhZQE0Q.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-5781964278631758138</id><published>2011-04-21T06:38:00.000-07:00</published><updated>2011-04-21T06:38:35.782-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-21T06:38:35.782-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web server" /><category scheme="http://www.blogger.com/atom/ns#" term="jsp" /><category scheme="http://www.blogger.com/atom/ns#" term="website" /><category scheme="http://www.blogger.com/atom/ns#" term="java 6" /><title>Use Jetty to run Maven web applications in NetBeans</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-YvL9AO-5axw/TbAzOPgF27I/AAAAAAAAAHQ/VLJ1zmiu5Y8/s1600/jetty_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-YvL9AO-5axw/TbAzOPgF27I/AAAAAAAAAHQ/VLJ1zmiu5Y8/s1600/jetty_logo.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3 class="post-title entry-title"&gt; &lt;a href="http://mrhaki.blogspot.com/2009/02/use-jetty-to-run-maven-web-applications.html"&gt;&lt;/a&gt; &lt;/h3&gt;&lt;a href="http://jetty.mortbay.org/jetty/"&gt;Jetty&lt;/a&gt; is a great web server. It is fast to start up and that makes it very useful during development. Jetty has a &lt;a href="http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin"&gt;Maven plugin&lt;/a&gt;  we can use in our Maven web application project. This way we can use  Jetty to test our JSP files. We can change the JSP file and hit the  Refresh button of our browser to see the result immediately. We can even  compile a Java class file and Jetty will restart so we can test the  result in our browser.&lt;br /&gt;
Let's see how we can do this in NetBeans. We go to &lt;i&gt;File | New Project&lt;/i&gt;, select &lt;i&gt;Maven Project&lt;/i&gt; and click the &lt;i&gt;Next&lt;/i&gt; button.&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_-vJw6r2W-bw/SZKc9xv3Y8I/AAAAAAAAByk/1BKhbKp1YU8/s1600-h/jetty1.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5301472296508548034" src="http://3.bp.blogspot.com/_-vJw6r2W-bw/SZKc9xv3Y8I/AAAAAAAAByk/1BKhbKp1YU8/s320/jetty1.png" style="cursor: pointer; display: block; height: 194px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt; In the next dialog window we select &lt;i&gt;Maven Webapp Archetype&lt;/i&gt; and click the &lt;i&gt;Next&lt;/i&gt; button.&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKc9xZE3sI/AAAAAAAABys/BlJUYvJe-Ms/s1600-h/jetty2.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5301472296412962498" src="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKc9xZE3sI/AAAAAAAABys/BlJUYvJe-Ms/s320/jetty2.png" style="cursor: pointer; display: block; height: 226px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt; Now we can fill in the values for our project and press the &lt;i&gt;Finish&lt;/i&gt; button.&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKc-LuHFfI/AAAAAAAABy0/EpSBHa_ju1A/s1600-h/jetty3.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5301472303480509938" src="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKc-LuHFfI/AAAAAAAABy0/EpSBHa_ju1A/s320/jetty3.png" style="cursor: pointer; display: block; height: 226px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt; NetBeans creates a new project for us. To add Jetty Maven plugin we must open the &lt;code&gt;pom.xml&lt;/code&gt; file for our project. In the &lt;code&gt;build&lt;/code&gt; section we must add the following code:&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&lt;plugins&gt;
 &lt;plugin&gt;
  &lt;groupid&gt;org.mortbay.jetty&lt;/groupid&gt;
  &lt;artifactid&gt;maven-jetty-plugin&lt;/artifactid&gt;
  &lt;version&gt;6.1.14&lt;/version&gt;
  &lt;configuration&gt;
   &lt;scanintervalseconds&gt;5&lt;/scanintervalseconds&gt;
  &lt;/configuration&gt;
 &lt;/plugin&gt;&lt;/plugins&gt;&lt;/pre&gt;At line 6 we define how often Jetty will scan the source directories  to look for changes. Because we add this definition we can change JSP  files and see the result in our web browser without restarting the  server.&lt;br /&gt;
Okay, we have defined Jetty for our project, but how can we run Jetty in NetBeans? We go to &lt;i&gt;File | Project Properties&lt;/i&gt; and select the &lt;i&gt;Actions&lt;/i&gt; category. We must look for the action &lt;i&gt;Run project&lt;/i&gt; and select it. In the &lt;i&gt;Execute goals&lt;/i&gt; field we add &lt;code&gt;jetty:run&lt;/code&gt;. This will start Jetty if we run our project. We can close the dialog window.&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKc-MVzp6I/AAAAAAAABy8/lmYW3Kb4a6s/s1600-h/jetty4.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5301472303647008674" src="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKc-MVzp6I/AAAAAAAABy8/lmYW3Kb4a6s/s320/jetty4.png" style="cursor: pointer; display: block; height: 214px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt; Now we go to &lt;i&gt;Run | Run Project&lt;/i&gt; to start Jetty. In the Output window of NetBeans we see the following text:&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Starting jetty 6.1.14 ...
2009-02-11 10:20:20.610::INFO:  jetty-6.1.14
2009-02-11 10:20:20.982::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
2009-02-11 10:20:21.335::INFO:  Started SelectChannelConnector@0.0.0.0:8080
Started Jetty Server
Starting scanner at interval of 5 seconds.&lt;/pre&gt;At line 3 we see &lt;code&gt;Started SelectChannelConnector@0.0.0.0:8080&lt;/code&gt; this means Jetty is available at port 8080. We open a web browser and open &lt;code&gt;http://localhost:8080/webappjetty/&lt;/code&gt; and we see the following:&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_-vJw6r2W-bw/SZKc-fKhJ7I/AAAAAAAABzE/PcGNwpqg2lk/s1600-h/jetty5.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5301472308699932594" src="http://3.bp.blogspot.com/_-vJw6r2W-bw/SZKc-fKhJ7I/AAAAAAAABzE/PcGNwpqg2lk/s320/jetty5.png" style="cursor: pointer; display: block; height: 145px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt; We go back to NetBeans and open the file &lt;code&gt;index.jsp&lt;/code&gt;. We add the following to the file:&lt;br /&gt;
&lt;pre class="html" name="code"&gt;&lt;h3&gt;It works!&lt;/h3&gt;&lt;/pre&gt;We switch back to our web browser and reload the page and we get:&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKdCSwmHrI/AAAAAAAABzM/gj7IXl04m1I/s1600-h/jetty6.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5301472374089457330" src="http://4.bp.blogspot.com/_-vJw6r2W-bw/SZKdCSwmHrI/AAAAAAAABzM/gj7IXl04m1I/s320/jetty6.png" style="cursor: pointer; display: block; height: 145px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-5781964278631758138?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/a5vk2NhL3Ek" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/5781964278631758138/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/04/use-jetty-to-run-maven-web-applications.html#comment-form" title="3 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5781964278631758138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5781964278631758138?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/a5vk2NhL3Ek/use-jetty-to-run-maven-web-applications.html" title="Use Jetty to run Maven web applications in NetBeans" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-YvL9AO-5axw/TbAzOPgF27I/AAAAAAAAAHQ/VLJ1zmiu5Y8/s72-c/jetty_logo.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/04/use-jetty-to-run-maven-web-applications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEAR345cSp7ImA9WhZQEkQ.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-7003209972944821674</id><published>2011-04-20T03:03:00.000-07:00</published><updated>2011-04-20T03:17:26.029-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-20T03:17:26.029-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JDK" /><category scheme="http://www.blogger.com/atom/ns#" term="java 6" /><category scheme="http://www.blogger.com/atom/ns#" term="DBMS" /><title>DataNucleus AccessPlatform 3.0</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="header2shadow"&gt;&lt;img border="0" class="header2img" height="1" width="100%" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;img alt="" src="http://www.datanucleus.org/products/accessplatform_3_0/images/logos/DataNucleus_AccessPlatform_85.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The DataNucleus AccessPlatform provides persistence and retrieval of data to a range                 of datastores using a range of APIs, with a range of query languages.                 Software for persistence typically only caters for one type of datastore, or one API.                          &lt;b&gt;             DataNucleus is unique in that it supports all standardised persistence APIs for a very wide                 range of datastores         &lt;/b&gt;     . DataNucleus is the only persistence software certified JDO compliant.                 DataNucleus is continually innovating and pushing capabilities forward, as well as continually                  pushing forward the JDO spec. DataNucleus gives you the power to swap persistence API, and datastore                  when          &lt;i&gt;             you         &lt;/i&gt;      want to. In fact it allows JPA mapping data to be used with JDO persistence, and                  vice versa - another unique feature of DataNucleus. Time to take advantage of this power ...&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=180839935467389508&amp;amp;postID=7003209972944821674" name="DataNucleus_-_Tutorial_for_JDO"&gt;DataNucleus - Tutorial for JDO&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="header2shadow"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="header3"&gt;&lt;tbody&gt;
&lt;tr valign="middle"&gt;&lt;td&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=180839935467389508&amp;amp;postID=7003209972944821674" name="Background"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="header3shadow"&gt;&lt;/td&gt;&lt;td class="header3shadow"&gt;&lt;/td&gt;&lt;td class="header3shadow"&gt;&lt;img border="0" class="header3img" height="1" width="100%" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;a href="http://www.blogger.com/post-create.g?blogID=180839935467389508" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;a href="http://www.blogger.com/post-create.g?blogID=180839935467389508" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;                                  An application can be JDO-enabled via many routes depending on the development process of                      the project in question. For example the project could use Eclipse as the IDE for                      developing classes. In that case the project would typically use the DataNucleus Eclipse                      plugin. Alternatively the project could use &lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/ant/index.html"&gt;Ant&lt;/a&gt;,                      &lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/maven2/index.html"&gt;Maven&lt;/a&gt; or some other build tool. In this                      case this tutorial should be used as a guiding way for using DataNucleus in the                      application. The JDO process is quite straightforward.                              &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step0"&gt;Step 0&lt;/a&gt; : Download DataNucleus AccessPlatform         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step1"&gt;Step 1&lt;/a&gt; : Design your domain/model classes as you would do normally         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step2"&gt;Step 2&lt;/a&gt; : Define their persistence definition using Meta-Data.         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step3"&gt;Step 3&lt;/a&gt; : Compile your classes, and instrument them (using the                          DataNucleus enhancer).         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step4"&gt;Step 4&lt;/a&gt; : Generate the database tables where your classes are to                          be persisted.         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step5"&gt;Step 5&lt;/a&gt; : Write your code to persist your objects within the DAO                          layer.         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step6"&gt;Step 6&lt;/a&gt; : Run your application.         &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;             &lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/tutorial.html#step7"&gt;Step 7&lt;/a&gt; : Things to add.         &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;The tutorial guides you through this. You can obtain the code referenced in this tutorial from                     &lt;a href="https://sourceforge.net/projects/datanucleus/files/datanucleus-samples/" target="_blank"&gt;SourceForge&lt;/a&gt; (one of the files entitled "datanucleus-samples-tutorial-*").         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-7003209972944821674?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/fTs6PFO7nBg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/7003209972944821674/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/04/datanucleus-accessplatform-30.html#comment-form" title="2 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/7003209972944821674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/7003209972944821674?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/fTs6PFO7nBg/datanucleus-accessplatform-30.html" title="DataNucleus AccessPlatform 3.0" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/04/datanucleus-accessplatform-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMQXw8fSp7ImA9WhZQEkQ.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-4417533473744539670</id><published>2011-04-20T02:59:00.000-07:00</published><updated>2011-04-20T03:18:00.275-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-20T03:18:00.275-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tomcat 7" /><category scheme="http://www.blogger.com/atom/ns#" term="apache tomcat" /><category scheme="http://www.blogger.com/atom/ns#" term="website" /><category scheme="http://www.blogger.com/atom/ns#" term="JDK" /><category scheme="http://www.blogger.com/atom/ns#" term="java 6" /><title>Parancoe 3 web framework</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.parancoe.org/"&gt;Parancoe&lt;/a&gt; is a project aiming to simplify the release of web  applications promoting the convention over configuration philosophy and  the &lt;span class="caps"&gt;DRY&lt;/span&gt; principle. This project is promoted by the &lt;span class="caps"&gt;JUG&lt;/span&gt; Padova, and everybody can partecipate.&lt;br /&gt;
Parancoe is a Java meta-framework aggregating in an useful way &lt;a href="http://www.hibernate.org/"&gt;Hibernate/JPA&lt;/a&gt;, &lt;a href="http://www.springframework.org/"&gt;Spring 2&lt;/a&gt;, &lt;a href="http://static.springframework.org/spring/docs/2.0.x/reference/mvc.html"&gt;Spring &lt;span class="caps"&gt;MVC&lt;/span&gt;&lt;/a&gt; and, for the &lt;span class="caps"&gt;AJAX&lt;/span&gt; support, &lt;a href="http://getahead.org/dwr"&gt;&lt;span class="caps"&gt;DWR&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
Parancoe purpose is to give to developers a set of libraries ready  to build standard web applications (which in most cases are just crud  applications) without worrying of long and harmful configurations files.  Parancoe will be composed of a full &lt;span class="caps"&gt;MVC&lt;/span&gt; stack.&lt;br /&gt;
Parancoe is open source and is released under the &lt;a href="http://www.apache.org/licenses/LICENSE-2.0.html"&gt;Apache License, Version 2.0&lt;/a&gt;.&lt;br /&gt;
Are you interested in the parancoe word meaning? A “parancoa” is a scaffolding in the dialect of the Venice (Italy) area.&lt;br /&gt;
&lt;br /&gt;
Lot of time I don’t post something…&lt;br /&gt;
But the development of Parancoe is not death. I’m working at the next major release: Parancoe 3.0!&lt;br /&gt;
Some of the changes:  &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The persistence (generic DAOs) has its own independent project now: &lt;a href="http://www.lambico.org/"&gt;Lambico&lt;/a&gt;. It’s more evolved and robust.&lt;/li&gt;
&lt;li&gt;Parancoe now uses Spring 3.0, with it latest evolution and improvements.&lt;/li&gt;
&lt;li&gt;The suggested style for developing the controllers is the &lt;span class="caps"&gt;REST&lt;/span&gt; one.&lt;/li&gt;
&lt;li&gt;The validation is &lt;a href="http://jcp.org/en/jsr/detail?id=303"&gt;&lt;span class="caps"&gt;JSR 303&lt;/span&gt; – Bean Validation&lt;/a&gt; (according to Spring &lt;span class="caps"&gt;MVC 3&lt;/span&gt;.0).&lt;/li&gt;
&lt;li&gt;We have a new subproject called Parancoe – Validation, for  introducing some useful validator, ready for use. (what about a “new  password” validator?)&lt;/li&gt;
&lt;/ul&gt;You can start trying Parancoe 3 using the snapshots: Parancoe artifacts are already in our Maven snapshot repository.&lt;br /&gt;
For starting a new project based on Parancoe 3, use the “Parancoe Advanced Archetype”, typing the following command:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
mvn -DarchetypeGroupId=org.parancoe \
    -DarchetypeArtifactId=parancoe-advancedarchetype \
    -DarchetypeVersion=3.0-SNAPSHOT \
    -DarchetypeRepository=https://oss.sonatype.org/content/repositories/snapshots \
    -Darchetype.repository=https://oss.sonatype.org/content/repositories/snapshots \
    -Darchetype.interactive=false \
    -DgroupId=org.myorg \
    -DartifactId=myapp \
    -Dpackage=org.myorg.padt \
    -Dversion=1.0-SNAPSHOT \
    --batch-mode \
    --update-snapshots \
    org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;project page: &lt;a href="http://www.parancoe.org/"&gt;http://www.parancoe.org/&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-4417533473744539670?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/NzIijz-u84o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/4417533473744539670/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/04/parancoe-3-web-framework.html#comment-form" title="1 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4417533473744539670?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4417533473744539670?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/NzIijz-u84o/parancoe-3-web-framework.html" title="Parancoe 3 web framework" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/04/parancoe-3-web-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08HRHs-eSp7ImA9Wx9bEEw.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-9145211150575892972</id><published>2011-02-18T01:00:00.000-08:00</published><updated>2011-02-18T01:03:55.551-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-18T01:03:55.551-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="website" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>25 Beautiful Minimalist Designs</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div id="article_contents"&gt;"Simplify, simplify, simplify."&lt;br /&gt;
It's one of Thoreau's most enduring witticisms, and with good reason.  When faced with the ever-increasing barrage of information that is  modern life, many people find solace in minimalism. This trend has taken  an especially strong hold on the Web.&lt;br /&gt;
Minimalism and simplification draw attention to important page  elements. Using lots and lots of empty space makes content stand out.  The overall effect is calming and sophisticated, a welcome break from  the typical gauntlet of advertisements and traffic and television and  whatever else screams incessantly for your attention.&lt;br /&gt;
For your inspiration, here are 25 beautiful minimalist designs. Some  are charming, some powerful, some stunning, but they’re all linked by  the same idea: simplicity, simplicity, simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://miguelripoll.com/"&gt;Miguel Ripoll&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://miguelripoll.com/"&gt;&lt;img alt="Miguel Ripoll's homepage, a white background with black serif text of varying sizes" height="150" src="http://www.wpdfd.com/images/miguel-ripolli.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.26000vodka.com/"&gt;26000 Vodka&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.26000vodka.com/"&gt;&lt;img alt="26000 Vodka's Natural Grain Spirit page, a hand cupping some grain with a short paragraph of description" height="235" src="http://www.wpdfd.com/images/26000-vodka.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://weatherflash.com/usa/ga/atlanta/"&gt;Weather Flash&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://weatherflash.com/usa/ga/atlanta/"&gt;&lt;img alt="Weather Flash displaying Atlanta's weather. An uncluttered blue background with bubbly icons and basic weather information." height="235" src="http://www.wpdfd.com/images/weatherflash.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.forrykt.com/"&gt;FRKT&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.forrykt.com/"&gt;&lt;img alt="FRKT's Website, monochromatic with only one image" height="238" src="http://www.wpdfd.com/images/forrykt.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://cascadingstyleshit.cocoagrove.com/"&gt;Cascading Style S--t&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://cascadingstyleshit.cocoagrove.com/"&gt;&lt;img alt="Cascading Style Shit, a plain white background with neatly arranged, visually spare icons that link to various CSS blogs" height="225" src="http://www.wpdfd.com/images/cascading-style-shit.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.thebigwordproject.com/"&gt;The Big Word Project&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.thebigwordproject.com/"&gt;&lt;img alt="The Big Word Project, a white page containing magnet-art-style words linking to various Websites" height="241" src="http://www.wpdfd.com/images/big-word-project.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://wpantivirus.com/"&gt;WordPress AntiVirus&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://wpantivirus.com/"&gt;&lt;img alt="WordPress AntiVirus homepage, containing a short paragraph of text and a chunky image of the WordPress icon wearing a camouflage hat" height="235" src="http://www.wpdfd.com/images/wp-antivirus.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://forabeautifulweb.com/"&gt;For a Beautiful Web&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://forabeautifulweb.com/"&gt;&lt;img alt="For a Beautiful Web homepage, a brown background with large, white text" height="186" src="http://www.wpdfd.com/images/for-a-beautiful-web.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://flossedtoday.com/"&gt;Have You Flossed Today?&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://flossedtoday.com/"&gt;&lt;img alt="Flossed Today homepage, a blue and pink background with two icons of a happy tooth and a sad tooth" height="244" src="http://www.wpdfd.com/images/flossed-today.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.tajloro.com/"&gt;Tajloro&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.tajloro.com/"&gt;&lt;img alt="Tajloro homepage, with a white background, neatly arranged text elements, and a few unintrusive images" height="214" src="http://www.wpdfd.com/images/tajloro.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.jeromem.net/"&gt;jeromeM&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.jeromem.net/"&gt;&lt;img alt="JeromeM, an earthy color scheme with minimal visual elements" height="228" src="http://www.wpdfd.com/images/jeromem.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.min-style.de/"&gt;min-style&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.min-style.de/"&gt;&lt;img alt="min-style homepage, containing minimalist font and one large image" height="177" src="http://www.wpdfd.com/images/min-style.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://deliciousdesignstudio.com/"&gt;Delicious Design Studio&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://deliciousdesignstudio.com/"&gt;&lt;img alt="Delicious Design Studio, with a mulled, pastel color scheme, rectangular page elements, and a solid background" height="239" src="http://www.wpdfd.com/images/delicious-design-studio.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.plushdepartment.com/"&gt;Plush Department&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.plushdepartment.com/"&gt;&lt;img alt="Plush Department, with a white background, chunky pink and black text, and one large image" height="232" src="http://www.wpdfd.com/images/plush-department.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.troianidesign.it/"&gt;Troiani Design&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.troianidesign.it/"&gt;&lt;img alt="Troiani Design homepage, with a faded gradient background, a clean layout, and small images" height="218" src="http://www.wpdfd.com/images/troiani-design.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://gag.careforkidsfarm.com/september/"&gt;Get and Give&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gag.careforkidsfarm.com/september/"&gt;&lt;img alt="Get and Give's Care for Kids Farm page is drenched in white space" height="233" src="http://www.wpdfd.com/images/gag-care-for-kids.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.blackestate.co.nz/"&gt;Black Estate&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.blackestate.co.nz/"&gt;&lt;img alt="Black Estate homepage, black background with white text and a black wine bottle shrouded in shadow" height="244" src="http://www.wpdfd.com/images/black-estate.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.theunexpectedpitbull.com/"&gt;The Unexpected Pit Bull&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.theunexpectedpitbull.com/"&gt;&lt;img alt="The Unexpected Pit Bull homepage has a sky background fading to white, a faded text nav bar down the left-hand side, and a large image in the middle that shifts between pictures of gentle-looking pit bulls" height="213" src="http://www.wpdfd.com/images/unexpected-pit-bull.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.gogogunner.com/"&gt;Go Go Gunner&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.gogogunner.com/"&gt;&lt;img alt="Go Go Gunner page displaying a large image against a white background and minimal black text navigation" height="237" src="http://www.wpdfd.com/images/go-go-gunner.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://awomaninthemirror.com/index.html"&gt;A Woman in the Mirror&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://awomaninthemirror.com/index.html"&gt;&lt;img alt="A Woman in the Mirror homepage, with a plain background, neatly organized chunks of text, and one simple image of a flower" height="236" src="http://www.wpdfd.com/images/a-woman-in-the-mirror.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.zupadupa.ro/#acasa"&gt;zupadupa&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.zupadupa.ro/#acasa"&gt;&lt;img alt="Zupadupa homepage, consisting of a black background and graceful green and white lines and text navigation" height="238" src="http://www.wpdfd.com/images/zupadupa.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.organicseotree.com/"&gt;Organic SEO&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.organicseotree.com/"&gt;&lt;img alt="Organic SEO homepage has earthy colors, an image of a treetop, and neatly organized blocks of text" height="238" src="http://www.wpdfd.com/images/organic-seo.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://howtostretch.co.uk/"&gt;The How To Stretching Zone&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://howtostretch.co.uk/"&gt;&lt;img alt="How to Stretch homepage, featuring a built, shirtless man balancing on one hand next to a list of text links to different stretches" height="240" src="http://www.wpdfd.com/images/how-to-stretch.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://madebyon.com/"&gt;Made By On&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://madebyon.com/"&gt;&lt;img alt="MadeByOn homepage, black-and-white with a large featured design commanding most of the visual space" height="227" src="http://www.wpdfd.com/images/made-by-on.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.popmatik.co.uk/"&gt;Popmatik&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.popmatik.co.uk/"&gt;&lt;img alt="Popmatik homepage, featuring an image of a water bottle with a small starburst background and a ton of white space" height="227" src="http://www.wpdfd.com/images/popmatik.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-9145211150575892972?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/c1ODQTF9XL8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/9145211150575892972/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/25-beautiful-minimalist-designs.html#comment-form" title="1 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/9145211150575892972?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/9145211150575892972?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/c1ODQTF9XL8/25-beautiful-minimalist-designs.html" title="25 Beautiful Minimalist Designs" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/25-beautiful-minimalist-designs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08AR3g-fCp7ImA9Wx9bEEw.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-4623821954162937016</id><published>2011-02-18T00:58:00.000-08:00</published><updated>2011-02-18T01:04:06.654-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-18T01:04:06.654-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="website" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>Website Design &amp; Development</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Website Design, Development, and E-Commerce&lt;br /&gt;
&lt;br /&gt;
With my experience in graphic design, website development, and e-commerce programming, you can be confident that whatever your project demands, I can deliver on time and on budget. View the Web Design Process and request a no cost, no obligation Web Design Quote now!&lt;br /&gt;
contact me: &lt;a href="mailto:diego.benna@gmail.com"&gt;diego.benna@gmail.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="long_text" id="result_box" lang="en"&gt;&lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;Here&lt;/span&gt; &lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;you can see&lt;/span&gt; &lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;one of my&lt;/span&gt; &lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;recent&lt;/span&gt; &lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;work&lt;/span&gt; &lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;for the study&lt;/span&gt; &lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;of landscape architecture&lt;/span&gt;&lt;span title="Fai clic per visualizzare le traduzioni alternative"&gt;,&lt;/span&gt; panGea&lt;span title="Fai clic per visualizzare le traduzioni alternative"&gt;:&lt;/span&gt; &lt;a href="http://www.pangeaprogetti.it/"&gt;&lt;span class="hps" title="Fai clic per visualizzare le traduzioni alternative"&gt;www.pangeaprogetti.it&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-SRVT0Nto2z4/TV40lTP6SOI/AAAAAAAAAHM/LHq3ux3_nx0/s1600/progettazione_giardini.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://1.bp.blogspot.com/-SRVT0Nto2z4/TV40lTP6SOI/AAAAAAAAAHM/LHq3ux3_nx0/s400/progettazione_giardini.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-4623821954162937016?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/lLqJrWXYbpw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/4623821954162937016/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/website-design-development.html#comment-form" title="10 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4623821954162937016?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/4623821954162937016?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/lLqJrWXYbpw/website-design-development.html" title="Website Design &amp; Development" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-SRVT0Nto2z4/TV40lTP6SOI/AAAAAAAAAHM/LHq3ux3_nx0/s72-c/progettazione_giardini.jpg" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/website-design-development.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAGQXs8fSp7ImA9Wx9UGU4.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-1147561857634064455</id><published>2011-02-16T10:09:00.000-08:00</published><updated>2011-02-17T01:25:20.575-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-17T01:25:20.575-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tomcat 7" /><category scheme="http://www.blogger.com/atom/ns#" term="PermGen space failure" /><category scheme="http://www.blogger.com/atom/ns#" term="apache tomcat" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Increasing Permgen size in your Web Server</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;In previous posts , we had talked about &lt;a href="http://diegobenna.blogspot.com/2011/02/how-to-increase-heap-size-in-tomcat-6.html"&gt;Increasing the Heap size of your server&lt;/a&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here will talk about the &lt;b&gt;Permgen &lt;/b&gt;space , how it is  different from heap size and why just increasing the heap size will not  help you in getting rid of this error&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Java.lang.OutOfMemoryError: PermGen space&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The permanent generation should not be ignored, because you need  enough memory allocated to it to hold all classes in all of your  applications including the JSP’s. So if you have an application which  uses a good number of third party libraries , has lot of files , you  will definitely need a lot of Permgen space. If you are running two  applications on the same server , definitely allocate some good chunk of  memory to your Perm gen.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;h3 style="text-align: justify;"&gt;&lt;span style="font-size: large;"&gt;How to increase PermGen?&lt;/span&gt;&lt;/h3&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When you add this line in your catalina.bat or catalina.sh&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="background-color: #f3f3f3; color: #444444; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;export JAVA_OPTS=-Xms128m -Xmx192m&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It only increase heap size. This is how it would look like (assuming your default PermGen is 64MB)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.skill-guru.com/blog/wp-content/uploads/2010/10/Hs3-Increased-But-Permgen-same.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Increasing PermGen on tomcat " class="size-medium wp-image-2787" height="341" src="http://www.skill-guru.com/blog/wp-content/uploads/2010/10/Hs3-Increased-But-Permgen-same-300x256.png" title="Hs3-Increased-But- Permgen same" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_2787" style="text-align: justify; width: 310px;"&gt;&lt;div class="wp-caption-text"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="wp-caption-text"&gt;PermGen does not change&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To increase PermGen , it would be&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="background-color: #f3f3f3; color: #444444; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;export JAVA_OPTS=-Xms128m -Xmx192m -XX:MaxPermSize=256m&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;See how the size of PermGen has increased.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.skill-guru.com/blog/wp-content/uploads/2010/10/Hs3-Increased.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Perm Gen increased" class="size-medium wp-image-2788" height="342" src="http://www.skill-guru.com/blog/wp-content/uploads/2010/10/Hs3-Increased-300x257.png" title="Hs3-Increased" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_2788" style="text-align: justify; width: 310px;"&gt;&lt;div class="wp-caption-text"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="wp-caption-text"&gt;Perm Gen increased&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This was done on Tomcat 6.0.14&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-1147561857634064455?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/_LR_Gy_QDVM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/1147561857634064455/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/increasing-permgen-size-in-your-web.html#comment-form" title="0 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1147561857634064455?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1147561857634064455?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/_LR_Gy_QDVM/increasing-permgen-size-in-your-web.html" title="Increasing Permgen size in your Web Server" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/increasing-permgen-size-in-your-web.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MCQnk4eip7ImA9Wx9UGEo.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-1245048351508034789</id><published>2011-02-16T10:02:00.000-08:00</published><updated>2011-02-16T10:04:23.732-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-16T10:04:23.732-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tomcat 7" /><category scheme="http://www.blogger.com/atom/ns#" term="apache tomcat" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>How to increase heap size in Tomcat 6</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Most of us who have worked with Apache-Tomcat in productions systems,  would have faced out of memory errors sometimes or other.&amp;nbsp; It is not  that it always happens in tomcat but let us look at why does this occur  and how to solve it.&lt;br /&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style="font-family: inherit;"&gt;&lt;span style="font-size: large;"&gt;Understanding Java Virtual Machine&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style="font-family: inherit; font-weight: normal;"&gt;&lt;span style="font-size: small;"&gt;A Java Virtual Machine on 32-bit operating systems typically has a maximum heap size of 64Mb.  The JVM heap space is where all Java objects are stored, as well as  memory used by the garbage collector. Sun recommends increasing this  value for server applications.&lt;/span&gt;&lt;/h3&gt;&lt;blockquote&gt;Large server applications often experience two problems  with these defaults. One is slow startup, because the initial heap is  small and must be resized over many major collections. A more pressing  problem is that the default maximum heap size is unreasonably small for  most server applications.&lt;/blockquote&gt;64MB&amp;nbsp; is the heap size in tomcat as well by default and is too less  for real world systems. When your application runs and you are able to  analyze the app, this is what you would see&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_2768" style="width: 444px;"&gt;&lt;a href="http://www.skill-guru.com/blog/wp-content/uploads/2010/09/heapusage1.png"&gt;&lt;img alt="heap size in tomcat " class="size-medium wp-image-2768 " height="233" src="http://www.skill-guru.com/blog/wp-content/uploads/2010/09/heapusage1-300x194.png" title="heapusage" width="434" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text"&gt;heap size in tomcat&amp;nbsp;&lt;/div&gt;&lt;div class="wp-caption-text"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;&lt;span style="font-size: large;"&gt;How to increase the heap size?&lt;/span&gt;&lt;/h3&gt;On windows :&lt;br /&gt;
&lt;br /&gt;
Go to catalina.bat and set this&lt;br /&gt;
&lt;div style="background-color: #f3f3f3; color: #444444; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set JAVA_OPTS=-Xms128m -Xmx192m&lt;/div&gt;&lt;br /&gt;
On linux :&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: #f3f3f3; color: #444444; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export CATALINA_OPTS="-Xms16m -Xmx256m";&lt;/div&gt;&lt;br /&gt;
-Xms – is the minimum or initial size of your heap&lt;br /&gt;
-Xmx – is the maximim size&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: #f3f3f3; color: #444444; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export JAVA_OPTS="-Xms128m -Xmx256m";&lt;/div&gt;&lt;br /&gt;
On linux , you can also set in &lt;code&gt;setenv.sh&lt;/code&gt;in the bin folder.  The &lt;code&gt;catalina.sh&lt;/code&gt; script has logic to call into this script.&lt;br /&gt;
&lt;br /&gt;
Note that CATALINA_OPTS is a better place than JAVA_OPTS. The former  is only used when actually starting the Tomcat instance. JAVA_OPTS is  also used to start JVMs that only interact with Tomcat (for example the  JVM instance that is used to send the shutdown-message to a running  Tomcat instance).&lt;br /&gt;
&lt;br /&gt;
You can have a look at this article &lt;a href="http://tomcat.apache.org/articles/performance.pdf"&gt;High Performance in Tomcat&lt;/a&gt;. Although this article is pretty old (dates back to Tomcat 4) , it still has lot of good points.&lt;br /&gt;
Once you have set the heap , how to check heap size ?&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;span style="font-size: large;"&gt;How to check heap size in linux&lt;/span&gt;&lt;/h3&gt;The output of &lt;code&gt;jmap -heap &amp;lt;pid&amp;gt;. &lt;/code&gt;&lt;br /&gt;
&lt;code&gt;Some more information can be found here &lt;/code&gt;&lt;a href="http://wiki.apache.org/tomcat/OutOfMemory"&gt;http://wiki.apache.org/tomcat/OutOfMemory&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-1245048351508034789?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/2Hlxmla8chY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/1245048351508034789/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/how-to-increase-heap-size-in-tomcat-6.html#comment-form" title="4 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1245048351508034789?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1245048351508034789?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/2Hlxmla8chY/how-to-increase-heap-size-in-tomcat-6.html" title="How to increase heap size in Tomcat 6" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/how-to-increase-heap-size-in-tomcat-6.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8GQXwzeCp7ImA9Wx9UFU8.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-463935445556723396</id><published>2011-02-12T08:06:00.000-08:00</published><updated>2011-02-12T08:07:00.280-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-12T08:07:00.280-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gimp" /><title>Round Web 2.0 Button with a Metal Ring, Glass effect</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://mygimptutorial.com/web/round-web-20-button-with-a-metal-ring"&gt;&lt;img alt="round web 2.0 button with metal ring preview" class="alignleft" height="200" src="http://mygimptutorial.com/preview/round-web20-button-with-metal-ring-preview.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;
In this Gimp tutorial we will create a round web 2.0 button/icon with a  metal ring around it. This button is very handy for download icons and  such, and it can easily be customized, especially with gradients. &lt;br /&gt;
&lt;h5&gt;FINAL IMAGE PREVIEW&lt;/h5&gt;This is what we’re going to create, we will also look at some variations of the button afterwards.&lt;br /&gt;
&lt;img alt="Final image preview" class="alignnone" height="280" src="http://mygimptutorial.com/preview/round-web20-button-with-metal-ring.jpg" title="This is what we're going to create" width="280" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 1&lt;/h5&gt;Create a new image with a white background. I made mine 600×400. &lt;br /&gt;
Now create a new layer and name it “ring”.&lt;br /&gt;
Use the Ellipse Select Tool to create a circle that measures 250×250. &lt;br /&gt;
&lt;img alt="250x250 selection" class="alignnone" height="394" src="http://mygimptutorial.com/images/button-with-metal-ring/1.jpg" title="250x250 selection" width="531" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 2&lt;/h5&gt;Set your FG and BG color to a dark gray (333333) and white (ffffff). &lt;br /&gt;
Use the Blend Tool to create a gradient from the top of the selection to the bottom of it.&lt;br /&gt;
The gradient should be Reversed, the shape set to Radial, the Offset  should be set to 20, and Adaptive Supersampling should be enabled. &lt;br /&gt;
&lt;img alt="Gradient settings" class="alignnone" height="377" src="http://mygimptutorial.com/images/button-with-metal-ring/2.jpg" title="Gradient settings" width="500" /&gt;&lt;br /&gt;
The offset simply makes it so that we get more white on the top of the  button, while Adaptive Supersampling makes it smoother. Our image should  look like this now: &lt;br /&gt;
&lt;img alt="Selection with radial gradient" class="alignnone" height="265" src="http://mygimptutorial.com/images/button-with-metal-ring/3.jpg" title="Radial gradient" width="268" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 3&lt;/h5&gt;Shrink the selection by 25px. (Select-&amp;gt;Shrink) &lt;br /&gt;
&lt;img alt="Shrink selection by 25" class="alignnone" height="316" src="http://mygimptutorial.com/images/button-with-metal-ring/4.jpg" title="Shrink selection by 25" width="500" /&gt;&lt;br /&gt;
Use the Blend Tool to create a gradient from the bottom of the selection to the top of it.&lt;br /&gt;
Use the same settings as last time. &lt;br /&gt;
&lt;img alt="Gradient inside the other gradient" class="alignnone" height="266" src="http://mygimptutorial.com/images/button-with-metal-ring/5.jpg" title="Create a gradient from bottom to top of selection" width="266" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 4&lt;/h5&gt;Create a new layer and name it “sphere”. Shrink the selection by 5px  (Select-&amp;gt;Shrink), then fill the selection with a blue color (216eda)  using the Bucket Fill tool. &lt;br /&gt;
&lt;img alt="Sphere layer" class="alignnone" height="395" src="http://mygimptutorial.com/images/button-with-metal-ring/6.jpg" title="Create new layer, shrink by 5, fill with blue" width="550" /&gt;&lt;br /&gt;
Now set your FG color to cyan (4feeff).&lt;br /&gt;
Create a  radial gradient a little bit above the bottom of the selection and approximately 120px up. &lt;br /&gt;
The Gradient should be set to FG to Transparent, it should not be  reversed, set the Offset to 20, and make sure Adaptive Supersampling is  disabled. &lt;br /&gt;
&lt;img alt="Gradient settings" class="alignnone" height="359" src="http://mygimptutorial.com/images/button-with-metal-ring/7.jpg" title="Gradient settings" width="550" /&gt;&lt;br /&gt;
That should give us this result: &lt;br /&gt;
&lt;img alt="Cyan gradient added" class="alignnone" height="259" src="http://mygimptutorial.com/images/button-with-metal-ring/8.jpg" width="254" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 5&lt;/h5&gt;Set your FG color to white (ffffff). We’re going to use the Paintbrush tool to add a little white at the bottom of the button.&lt;br /&gt;
Set the opacity of the brush to 70%, use a large fuzzy brush (Circle Fuzzy 19) and set the scale to 10. &lt;br /&gt;
Position the brush so that half of it is inside the selection, then click just once with the mouse. &lt;br /&gt;
&lt;img alt="Adding white with fuzzy brush" class="alignnone" height="398" src="http://mygimptutorial.com/images/button-with-metal-ring/9.jpg" title="Click only once" width="550" /&gt;&lt;br /&gt;
That should give us a gentle touch of white like this: &lt;br /&gt;
&lt;img alt="Gentel touch of white" class="alignnone" height="262" src="http://mygimptutorial.com/images/button-with-metal-ring/10.jpg" title="Gentle touch of white" width="254" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 6&lt;/h5&gt;We’re going to create an inner shadow, to do this we first need to create a new layer and name it “inner shadow”.&lt;br /&gt;
Now grow the selection by 1px. Select-&amp;gt;Grow. &lt;br /&gt;
&lt;img alt="Grow selection by 1" class="alignnone" height="303" src="http://mygimptutorial.com/images/button-with-metal-ring/11.jpg" title="Grow selection by 1" width="418" /&gt;&lt;br /&gt;
Then we fill the selection with black (000000) using the Bucket Fill tool.&lt;br /&gt;
Next go to Select-&amp;gt;Feather.&lt;br /&gt;
Feather the selection by 20. &lt;br /&gt;
&lt;img alt="Feather by 20" class="alignnone" height="303" src="http://mygimptutorial.com/images/button-with-metal-ring/12.jpg" title="Fill with black, then feather by 20" width="418" /&gt;&lt;br /&gt;
Now hit the &lt;b&gt;Delete&lt;/b&gt; button on the keyboard.&lt;br /&gt;
Also, we don’t need the selection anymore so get rid of it by going to Select-&amp;gt;None. &lt;br /&gt;
&lt;img alt="After deleting" class="alignnone" height="257" src="http://mygimptutorial.com/images/button-with-metal-ring/13.jpg" title="Hit delete, and Select-None" width="254" /&gt;&lt;br /&gt;
Next, duplicate the layer so that the inner shadow becomes stronger. &lt;br /&gt;
&lt;img alt="Duplicate the inner shadow layer" class="alignnone" height="395" src="http://mygimptutorial.com/images/button-with-metal-ring/14.jpg" title="Duplicate" width="520" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 7&lt;/h5&gt;Create a new layer and name it “gloss”.&lt;br /&gt;
Create a selection where you want the gloss to be. &lt;br /&gt;
&lt;img alt="Gloss selection" class="alignnone" height="264" src="http://mygimptutorial.com/images/button-with-metal-ring/15.jpg" width="254" /&gt;&lt;br /&gt;
Set your FG color to white (ffffff).&lt;br /&gt;
Create a gradient from the top of the selection to the bottom of it.&lt;br /&gt;
The Gradient should be set to FG to Transparent, the Shape to linear, Offset to 0. &lt;br /&gt;
&lt;img alt="Gloss gradient" class="alignnone" height="318" src="http://mygimptutorial.com/images/button-with-metal-ring/16.jpg" title="Gradient from top to bottom of selection" width="502" /&gt;&lt;br /&gt;
Now reduce the opacity of the gloss layer to 75 so that it blends in more smoothly with the rest of the button. &lt;br /&gt;
&lt;img alt="Reduce opacity to 75" class="alignnone" height="395" src="http://mygimptutorial.com/images/button-with-metal-ring/17.jpg" title="Reduce opacity to 75" width="520" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 8&lt;/h5&gt;Time to add some text, select a font you like and write something on the  button, these kinds of buttons are very good for adding short words  like GO! or a symbol such as a downwards arrow for a download button. &lt;br /&gt;
I simply added the letter Z. The font is Verdana Bold size 100. &lt;br /&gt;
&lt;img alt="text settings" class="alignnone" height="318" src="http://mygimptutorial.com/images/button-with-metal-ring/18.jpg" title="Text settings" width="507" /&gt;&lt;br /&gt;
Next we give the text an outline.&lt;br /&gt;
To do that go to Filters-&amp;gt;Light and Shadow-&amp;gt;Drop shadow.&lt;br /&gt;
Set Offset X and Offset Y to 0. &lt;br /&gt;
&lt;img alt="Drop shadow settings" class="alignnone" height="369" src="http://mygimptutorial.com/images/button-with-metal-ring/19.jpg" title="Drop shadow settings" width="412" /&gt;&lt;br /&gt;
That should give us a nice dark outline around the text like this: &lt;br /&gt;
&lt;img alt="Z with dark outline" class="alignnone" height="258" src="http://mygimptutorial.com/images/button-with-metal-ring/20.jpg" width="252" /&gt;&lt;br /&gt;
&lt;h5&gt;Step 9&lt;/h5&gt;Almost done know, we just need to give the whole button an outline, and soften it a little.&lt;br /&gt;
Select the layer named “ring”, and then give it a drop shadow with the same settings as we used on the text. &lt;br /&gt;
&lt;img alt="Add dropshadow to the ring layer" class="alignnone" height="395" src="http://mygimptutorial.com/images/button-with-metal-ring/21.jpg" title="Add drop shadow to the ring layer" width="550" /&gt;&lt;br /&gt;
Now we need to soften the button a little bit just where the inner shadow meets the metal ring. &lt;br /&gt;
We have two layers with inner shadow, so we need to merge them into one.  In the Layer Dialog, select the top layer with inner shadow,  right-click and choose Merge Down. &lt;br /&gt;
Next we’re going to give the inner shadow layer a Gaussian blur of 2. (Filters-&amp;gt;Blur-&amp;gt;Gaussian Blur) &lt;br /&gt;
&lt;img alt="Gaussian blur the inner shadow" class="alignnone" height="417" src="http://mygimptutorial.com/images/button-with-metal-ring/22.jpg" title="Gaussian blur by 2" width="607" /&gt;&lt;br /&gt;
That’s it, the button is done: &lt;br /&gt;
&lt;img alt="Round Web 2.0 Button with a Metal Ring" class="alignnone" height="280" src="http://mygimptutorial.com/preview/round-web20-button-with-metal-ring.jpg" title="Round Web 2.0 Button with a Metal Ring" width="280" /&gt;&lt;br /&gt;
&lt;h5&gt;Variations&lt;/h5&gt;It’s also very easy to make variations of this button by using gradients instead of all that&lt;br /&gt;
blue and cyan we made in step 4 and step 5.&lt;br /&gt;
Here is the button with the gradient called Deep Sea, the gradient was created&lt;br /&gt;
from the bottom of the selection and 450px up. &lt;br /&gt;
&lt;img alt="Round Web 2.0 Metal Ring button deep sea gradient" class="alignnone" height="317" src="http://mygimptutorial.com/images/button-with-metal-ring/23.jpg" title="Made with Deep Sea gradient" width="550" /&gt;&lt;br /&gt;
Here is the same gradient from the top of the selection to almost the bottom of it, and with the gloss shaped differently. &lt;br /&gt;
&lt;img alt="Round Web 2.0 Metal Ring button" class="alignnone" height="337" src="http://mygimptutorial.com/images/button-with-metal-ring/24.jpg" title="Same gradient, but opposite direction and not reversed" width="550" /&gt;&lt;br /&gt;
Here it is with the gradient Incandescent from the top of the selection to the bottom of it. &lt;br /&gt;
&lt;img alt="Round Web 2.0 Metal Ring button Incandescent gradient" class="alignnone" height="355" src="http://mygimptutorial.com/images/button-with-metal-ring/25.jpg" title="Made with Incandescent gradient" width="550" /&gt;&lt;br /&gt;
That’s it, it’s the end of the tutorial, tell us what you think in the comments. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-463935445556723396?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/g2gmQTy3SwE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/463935445556723396/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/round-web-20-button-with-metal-ring.html#comment-form" title="3 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/463935445556723396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/463935445556723396?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/g2gmQTy3SwE/round-web-20-button-with-metal-ring.html" title="Round Web 2.0 Button with a Metal Ring, Glass effect" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/round-web-20-button-with-metal-ring.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIFSH08fip7ImA9Wx9UFU0.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-1861442432640900731</id><published>2011-02-12T02:45:00.000-08:00</published><updated>2011-02-12T02:45:19.376-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-12T02:45:19.376-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>CSS: Clearing Floats with Overflow</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt; &lt;br /&gt;
&lt;div id="content-wrap"&gt;&lt;div id="bottom-bg"&gt;&lt;div id="top"&gt;&lt;div id="content"&gt;&lt;div class="post" id="single"&gt;          &lt;big&gt;One of the common problems we face when coding with float  based layouts is that the wrapper container doesn’t expand  to the  height of the child floating elements. The typical solution to fix this  is by adding an element with clear float after the floating elements or  adding a &lt;a href="http://www.positioniseverything.net/easyclearing.html"&gt;clearfix&lt;/a&gt;  to the wrapper. But did you know you can also use the overflow property  to fix this problem? It’s not a new CSS trick either. It’s been  documented &lt;a href="http://annevankesteren.nl/2005/03/clearing-floats"&gt;before&lt;/a&gt; &lt;a href="http://www.quirksmode.org/css/clearing.html"&gt;long&lt;/a&gt; &lt;a href="http://www.mezzoblue.com/archives/2005/03/03/clearance/"&gt;long&lt;/a&gt; ago. Today I would like to revisit the topic along with a few tips.&lt;/big&gt;&lt;br /&gt;
&lt;div class="btn preview"&gt;&lt;a href="http://webdesignerwall.com/demo/clear-float/"&gt;View Demo &lt;em&gt;Clear Floats&lt;/em&gt;&lt;/a&gt;&lt;span id="more-572"&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3&gt;Demo 1: &lt;/h3&gt;The demo below shows the issue with floating child elements where the  parent container doesn’t expand. To fix this problem, you can simply  add the CSS property overflow:auto (or overflow:hidden) to the wrapper  container. This is perhaps the simplest way to clear floats.&lt;br /&gt;
&lt;div class="image"&gt;&lt;a href="http://webdesignerwall.com/demo/clear-float/"&gt;&lt;img alt="overflow auto" src="http://www.webdesignerwall.com/wp-content/uploads/2011/02/overflow-auto.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class" style="background-color: #f3f3f3;"&gt;.container&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt; &lt;/span&gt;&lt;span class="rules" style="background-color: #f3f3f3;"&gt;{
 &lt;span class="keyword"&gt;overflow&lt;/span&gt;:&lt;span class="value"&gt; auto&lt;/span&gt;;
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Demo 2:&lt;/h3&gt;Overflow:auto can also be used to prevent content  from wrapping  around the floated element. Let’s say you are designing a comment list.  You would, most likely, have an avatar floating on the left and the  comment to the right. To prevent the comment from wrapping around the  avatar just add overflow:hidden to the comment container. The advantage  of using overflow here is that I don’t have to set a float or width to  the comment container. The container automatically aligns after the  floated avatar image.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="image"&gt;&lt;a href="http://webdesignerwall.com/demo/clear-float/demo2.html"&gt;&lt;img alt="overflow auto" src="http://www.webdesignerwall.com/wp-content/uploads/2011/02/overflow-auto-2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class" style="background-color: #f3f3f3;"&gt;.image&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt; &lt;/span&gt;&lt;span class="rules" style="background-color: #f3f3f3;"&gt;{
 &lt;span class="keyword"&gt;float&lt;/span&gt;:&lt;span class="value"&gt; left&lt;/span&gt;;
}&lt;/span&gt;

&lt;span class="class" style="background-color: #f3f3f3;"&gt;.text&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt; &lt;/span&gt;&lt;span class="rules" style="background-color: #f3f3f3;"&gt;{
 &lt;span class="keyword"&gt;overflow&lt;/span&gt;:&lt;span class="value"&gt; hidden&lt;/span&gt;;
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Drawbacks (see &lt;a href="http://webdesignerwall.com/demo/clear-float/drawbacks.html"&gt;demo&lt;/a&gt;)&lt;/h3&gt;Although it is a nice trick to clear floats there are some &lt;a href="http://webdesignerwall.com/demo/clear-float/drawbacks.html"&gt;drawbacks&lt;/a&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Using overflow:auto will cause a scrollbar if your content is  extending the boundary of the container. For example, if you have a long  unbreaking text (ie. long url text) or a large image that is bigger  then the container a scrollbar will show.&lt;/li&gt;
&lt;li&gt;To avoid a scrollbar from showing you should use overflow:hidden.  Again, there is a drawback to this method as well. Using overflow:hidden  will hide any content that exceeds the boundry of the container.&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Word-wrap&lt;/h3&gt;To solve the long unbreaking text issue, simply add  word-wrap:break-word to the container and it will force the text to wrap  onto a new line.&lt;br /&gt;
&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="class" style="background-color: #f3f3f3;"&gt;.container&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt; &lt;/span&gt;&lt;span class="keyword" style="background-color: #f3f3f3;"&gt;img&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt; &lt;/span&gt;&lt;span class="rules" style="background-color: #f3f3f3;"&gt;{
 &lt;span class="keyword"&gt;max-width&lt;/span&gt;:&lt;span class="value"&gt; 100%&lt;/span&gt;;
 &lt;span class="keyword"&gt;height&lt;/span&gt;:&lt;span class="value"&gt; auto&lt;/span&gt;;
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Max-width&lt;/h3&gt;To prevent large images from extending the boundar, add  max-width:100% and it will resize the image to the max width of the  container.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="background-color: #f3f3f3;"&gt;.container {&lt;/span&gt;
&lt;span style="background-color: #f3f3f3;"&gt; word-wrap: break-word;&lt;/span&gt;
&lt;span style="background-color: #f3f3f3;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="visibility: hidden;"&gt;&amp;nbsp;&lt;noscript&gt;&amp;lt;p&amp;gt;&amp;lt;a href="http://www.w3counter.com"&amp;gt;&amp;lt;img src="http://www.w3counter.com/tracker.php?id=5996" style="border: 0; display:none" alt="W3Counter Web Stats" /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt; &lt;/noscript&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-1861442432640900731?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/rqkRPScyH6Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/1861442432640900731/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/css-clearing-floats-with-overflow.html#comment-form" title="0 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1861442432640900731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1861442432640900731?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/rqkRPScyH6Q/css-clearing-floats-with-overflow.html" title="CSS: Clearing Floats with Overflow" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/css-clearing-floats-with-overflow.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBQn8zeip7ImA9Wx9UFU0.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-5346878181393132561</id><published>2011-02-12T02:40:00.000-08:00</published><updated>2011-02-12T02:40:53.182-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-12T02:40:53.182-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gimp" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Light Painting in Gimp</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;This is my second Gimp Tutorial.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; The original tut was made by Fabio Sasso in his wonderful site &lt;a href="http://abduzeedo.com/"&gt;Abduzeedo&lt;/a&gt;. He has done the light painting tuts for &lt;a href="http://psdtuts.com/tutorials-effects/create-a-glowing-light-painting-effect/"&gt;Photoshop&lt;/a&gt;,&lt;a href="http://abduzeedo.com/light-painting-pixelmator-12"&gt;Pixelmator&lt;/a&gt;,&lt;a href="http://abduzeedo.com/light-painting-fireworks"&gt;Firework&lt;/a&gt;  and i decided to try the tuts with gimp. It took me an hour trying to  find the right combination of effects and blend modes in gimp, and i did  it!&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; Here is my tuts;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;
If u don't have Gimp.You can download it &lt;a href="http://www.gimp.org/downloads/"&gt;here&lt;/a&gt;.It's free!&lt;br /&gt;
&lt;br /&gt;
P/S : Click the image for larger view.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsl3KxHjcI/AAAAAAAABV4/iqucyU3k8Fo/s1600-h/lighteffect.jpg"&gt;&lt;img alt="lighteffect" height="333" src="http://farm4.static.flickr.com/3296/3060792120_e3f2be268f.jpg" width="500" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
P/s: The original Photoshop tutorial can be found &lt;a href="http://abduzeedo.com/light-graffiti-photoshop"&gt;HERE&lt;/a&gt;. You also can find the &lt;a href="http://abduzeedo.com/light-painting-fireworks"&gt;Firework&lt;/a&gt; and &lt;a href="http://abduzeedo.com/light-painting-pixelmator-12"&gt;Pixelmator &lt;/a&gt;tutorial version too in &lt;a href="http://abduzeedo.com/"&gt;Abduzeedo &lt;/a&gt;site.&lt;br /&gt;
&lt;br /&gt;
&lt;span id="fullpost"&gt;&lt;br /&gt;
1.Open the background image.you can download it from &lt;a href="http://www.flickr.com/photos/marcoarment/2058577742/"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsgXYc0zrI/AAAAAAAABSY/M_l4i6sjJf4/s1600-h/1.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231810978193395378" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsgXYc0zrI/AAAAAAAABSY/M_l4i6sjJf4/s400/1.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2.Now get an image of &lt;a href="http://www.cd1059.com/Portals/50/images/Beatles_-_Abbey_Road.jpg"&gt;The Beatles Abbey Road cd&lt;/a&gt;.Drag the The Beatles Abbey Road CD cover photo to the image .&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsgXV_F97I/AAAAAAAABSg/yasCWpmf7Gw/s1600-h/2.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231810977531819954" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsgXV_F97I/AAAAAAAABSg/yasCWpmf7Gw/s400/2.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
3.Resize it to larger image using scale tool.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsgXbYzeuI/AAAAAAAABSo/dpkPoqtQbeg/s1600-h/3.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231810978981837538" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsgXbYzeuI/AAAAAAAABSo/dpkPoqtQbeg/s400/3.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
4.Use Path Tool(P) and create paths around the guy in the photo.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsgXlMekFI/AAAAAAAABSw/DIrYEuRaQFs/s1600-h/4.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231810981614489682" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsgXlMekFI/AAAAAAAABSw/DIrYEuRaQFs/s400/4.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsgXm_cwGI/AAAAAAAABS4/aXDaqSfLE8Q/s1600-h/5.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231810982096715874" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsgXm_cwGI/AAAAAAAABS4/aXDaqSfLE8Q/s400/5.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
after that created a new layer and named it as Guy 1.Dont forget to chose your foreground color white and black..&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsh9OKpQHI/AAAAAAAABTA/o5SBgAQcvDY/s1600-h/6.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231812727779442802" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsh9OKpQHI/AAAAAAAABTA/o5SBgAQcvDY/s400/6.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
5.Then Select&amp;gt;From Path(shift+v).it will select the path that you make using the Path tool.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsh9F8UrzI/AAAAAAAABTI/x35taMHX0WA/s1600-h/7.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231812725571890994" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsh9F8UrzI/AAAAAAAABTI/x35taMHX0WA/s400/7.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Go  to Edit&amp;gt;Strokes Path.Strokes Line is 11 px,Solid Color and Line  style&amp;gt;Dash preset&amp;gt;Line and dont forget to click antialising.and  then clik Stroke.Use the image below for reference and values.Click the  image for large view.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsh9eXUGqI/AAAAAAAABTQ/pduDMot0z9I/s1600-h/8.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231812732127550114" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsh9eXUGqI/AAAAAAAABTQ/pduDMot0z9I/s400/8.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
6.The next thing is go to Select &amp;gt;None(Ctrl+D).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsh9QFvASI/AAAAAAAABTY/lFqQXYmJwS4/s1600-h/9.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231812728295719202" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsh9QFvASI/AAAAAAAABTY/lFqQXYmJwS4/s400/9.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
7.Repeat the steps 4 until steps 6 to other guy.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsh9Up3EhI/AAAAAAAABTg/y5jzcMzvTRo/s1600-h/9_1.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231812729520984594" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsh9Up3EhI/AAAAAAAABTg/y5jzcMzvTRo/s400/9_1.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
hide the The Beatles Abbey Road cd layer and u'll see the stroke line at the guy 1 layer.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsi-atEzeI/AAAAAAAABTo/Ff6bSHYG_fs/s1600-h/10.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231813847836577250" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsi-atEzeI/AAAAAAAABTo/Ff6bSHYG_fs/s400/10.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
8.Change  the layer mode to soft light.Apply a Gaussian Blur with 2 radius.And  then duplicate the guy 1 layer 4 times.After that create a new layer and  rename it as rectangle.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsi-Z_6aPI/AAAAAAAABTw/Rr7VQuvV87w/s1600-h/11.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231813847647152370" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsi-Z_6aPI/AAAAAAAABTw/Rr7VQuvV87w/s400/11.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsi-ebQSZI/AAAAAAAABT4/r059vPaeHqw/s1600-h/12.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231813848835574162" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsi-ebQSZI/AAAAAAAABT4/r059vPaeHqw/s400/12.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsi-s0yvEI/AAAAAAAABUA/ummDLAgxk00/s1600-h/13.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231813852700785730" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsi-s0yvEI/AAAAAAAABUA/ummDLAgxk00/s400/13.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsi-uf8iJI/AAAAAAAABUI/Uc-x1pg8N1c/s1600-h/14.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231813853150218386" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsi-uf8iJI/AAAAAAAABUI/Uc-x1pg8N1c/s400/14.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9.At the rectangle layer,create a rectangle using the rectangle select tool(m).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsjbTNqAzI/AAAAAAAABUQ/4I9fGTWwweo/s1600-h/15.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231814344041956146" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsjbTNqAzI/AAAAAAAABUQ/4I9fGTWwweo/s400/15.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
10.The next things is go to Select&amp;gt;Border.Chose 5 pixel for border selection&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsjbSB0xSI/AAAAAAAABUY/MnfZCuC1gJI/s1600-h/16.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231814343723894050" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsjbSB0xSI/AAAAAAAABUY/MnfZCuC1gJI/s400/16.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsjbQdGkHI/AAAAAAAABUg/BKRO1y1Z9xE/s1600-h/17.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231814343301435506" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsjbQdGkHI/AAAAAAAABUg/BKRO1y1Z9xE/s400/17.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
11.Fill the border selection white our foreground color(white).Go to Edit&amp;gt;Fill with FG Color.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsjbXabuTI/AAAAAAAABUo/YoGlF1eieTc/s1600-h/18.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231814345169287474" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsjbXabuTI/AAAAAAAABUo/YoGlF1eieTc/s400/18.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
12.See  those blue guides? Those are Guides.Just add a guide so we can align  the rectangles like I did in the image below.. I like using them because  it really help me.If you want to turn them on and off, go to View &amp;gt;  Shows Guides&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsjbuB9flI/AAAAAAAABUw/LT_FD8bMiK4/s1600-h/19.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231814351240658514" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsjbuB9flI/AAAAAAAABUw/LT_FD8bMiK4/s400/19.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsqA9NMc_I/AAAAAAAABWA/Za2bAsaOF9Q/s1600-h/19_1.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231821588039234546" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsqA9NMc_I/AAAAAAAABWA/Za2bAsaOF9Q/s400/19_1.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
13.Duplicate the rectangle and align them.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsk58rLXAI/AAAAAAAABU4/QmFzQ5u7jio/s1600-h/20.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231815970079333378" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsk58rLXAI/AAAAAAAABU4/QmFzQ5u7jio/s400/20.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsk6LbbdmI/AAAAAAAABVA/jXT5BKzEMbQ/s1600-h/21.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231815974039811682" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsk6LbbdmI/AAAAAAAABVA/jXT5BKzEMbQ/s400/21.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After that merge down all the copy rectangle layer to one single rectangle layer.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsk6WyKpHI/AAAAAAAABVI/fkJMNF1h43g/s1600-h/22.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231815977087968370" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsk6WyKpHI/AAAAAAAABVI/fkJMNF1h43g/s400/22.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsk6egIAPI/AAAAAAAABVQ/2ykIeNEvB04/s1600-h/23.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231815979159781618" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsk6egIAPI/AAAAAAAABVQ/2ykIeNEvB04/s400/23.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
14.Resize the rectangle a little bit smaller like the image below&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsk6Z-ItzI/AAAAAAAABVY/g3fdHMVN8J4/s1600-h/24.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231815977943480114" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SJsk6Z-ItzI/AAAAAAAABVY/g3fdHMVN8J4/s400/24.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
15.Use the Perspective tool(shift+p)to adjust the perspective of the rectangles.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsl2pC9bVI/AAAAAAAABVg/xprDkdQmOtE/s1600-h/25.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231817012782394706" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsl2pC9bVI/AAAAAAAABVg/xprDkdQmOtE/s400/25.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
15.Change the rectangle layer mode to soft light and then duplicate it 3 times.Finished!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsl2pP-8TI/AAAAAAAABVo/P7KS1swyXEs/s1600-h/26.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231817012837019954" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SJsl2pP-8TI/AAAAAAAABVo/P7KS1swyXEs/s400/26.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsl2l4gvZI/AAAAAAAABVw/0hb5y5cznyo/s1600-h/27.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231817011933265298" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SJsl2l4gvZI/AAAAAAAABVw/0hb5y5cznyo/s400/27.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Final result!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsl3KxHjcI/AAAAAAAABV4/iqucyU3k8Fo/s1600-h/lighteffect.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5231817021834366402" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SJsl3KxHjcI/AAAAAAAABV4/iqucyU3k8Fo/s400/lighteffect.jpg" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Download the Gimp Xcf file &lt;a href="http://rapidshare.com/files/135599620/light_painting_effect.rar.html"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-5346878181393132561?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/3jrP406X9QQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/5346878181393132561/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/light-painting-in-gimp.html#comment-form" title="0 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5346878181393132561?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/5346878181393132561?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/3jrP406X9QQ/light-painting-in-gimp.html" title="Light Painting in Gimp" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3296/3060792120_e3f2be268f_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/light-painting-in-gimp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcFR30zeip7ImA9Wx9UFU0.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-2425165072671422013</id><published>2011-02-12T02:36:00.001-08:00</published><updated>2011-02-12T02:36:56.382-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-12T02:36:56.382-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gimp" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Gimp Tutorial: Awesome Bokeh Effect in Gimp</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-weight: bold;"&gt;It was fun to to follow Abduzeedo tutorial for &lt;a href="http://abduzeedo.com/awesome-digital-bokeh-effect-photoshop"&gt;making bokeh digital effect in Photoshop&lt;/a&gt;  (i'm using photoshop and gimp) and i really excited when i managed to  do similiar effect in Gimp. So i decided to make a Gimp tut for this  one..it's been over a months since my last tutorial and i think after  this i'll make more Gimp tuts..Click More Inside The Post to read the  tutorial.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SWNtsOKm23I/AAAAAAAADLk/5qPCsRCXgRk/s1600-h/2949087041_48bf29bde9_o.jpg"&gt;&lt;img alt="Gimp Digital Bokeh" height="375" src="http://farm4.static.flickr.com/3218/2949087041_5727861b17.jpg" width="500" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
P/s:  This tutorial has been converted from the original Photoshop tutorial  into Gimp. The original Photoshop tutorial can be found &lt;a href="http://abduzeedo.com/awesome-digital-bokeh-effect-photoshop"&gt;HERE&lt;/a&gt; in &lt;a href="http://abduzeedo.com/"&gt;Abduzeedo&lt;/a&gt; site.&lt;br /&gt;
&lt;br /&gt;
&lt;span id="fullpost"&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Before you try this tutorial,please download my Eclipse brush where i made it by myself. You can download the brush by click &lt;a href="http://starsys.deviantart.com/art/bokeh-brush-101230329"&gt;HERE&lt;/a&gt;. After download it, paste the brush to Gimp folder. And i'm using Gimp 2.6 for this one.&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;
P/S : Click the image for larger view.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Create new document. I'll used 1600 x 1200. Fill the background with blackcolour .&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPeVqRe5qdI/AAAAAAAAB_8/vW6YsgavkT0/s1600-h/1.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257835643458398674" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPeVqRe5qdI/AAAAAAAAB_8/vW6YsgavkT0/s400/1.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Then create new layer.I renamed it as dark violet.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPeVqc721XI/AAAAAAAACAE/t38vamnocKQ/s1600-h/2.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257835646532638066" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPeVqc721XI/AAAAAAAACAE/t38vamnocKQ/s400/2.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Choose a dark purple. I'm using #b10993.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPeVqkXRVAI/AAAAAAAACAM/pibJiL_gteI/s1600-h/3.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257835648526668802" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPeVqkXRVAI/AAAAAAAACAM/pibJiL_gteI/s400/3.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Select gradient tool, Radial for the shape and low the opacity to 50. Click the image for larger view.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPeVqstzq-I/AAAAAAAACAU/vMSi2ooo438/s1600-h/4.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257835650768677858" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPeVqstzq-I/AAAAAAAACAU/vMSi2ooo438/s400/4.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPeVq_zR1tI/AAAAAAAACAc/qWjXFqA21z8/s1600-h/5.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257835655891900114" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPeVq_zR1tI/AAAAAAAACAc/qWjXFqA21z8/s400/5.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now create a new layer and i renamed it as eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPebUfYygLI/AAAAAAAACAk/m8AHiAZxEvY/s1600-h/6.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257841866303504562" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPebUfYygLI/AAAAAAAACAk/m8AHiAZxEvY/s400/6.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Select  the brush tool. and I'll using my Eclipse brush. Use white color for  the brush.Then Select brush dynamic options and for the values use the  image below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPebUoyKjOI/AAAAAAAACAs/efpSxcQY3Dg/s1600-h/7.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257841868825857250" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPebUoyKjOI/AAAAAAAACAs/efpSxcQY3Dg/s400/7.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now we'll paint some ellipses at the eclipse layer.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPebUzDnrPI/AAAAAAAACA0/vaj0oc6THmA/s1600-h/8.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257841871583423730" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPebUzDnrPI/AAAAAAAACA0/vaj0oc6THmA/s400/8.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Go to Filters&amp;gt;Blur&amp;gt;Gaussian Blur. For this first layer use 40 pixels for the Horizontal and 40 pixels for the Vertical.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPebVHSuOII/AAAAAAAACA8/MG_xJ0Q-YpU/s1600-h/9.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257841877015476354" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPebVHSuOII/AAAAAAAACA8/MG_xJ0Q-YpU/s400/9.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPebVAQ1EkI/AAAAAAAACBE/s-9I8s2gPUA/s1600-h/10.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257841875128488514" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPebVAQ1EkI/AAAAAAAACBE/s-9I8s2gPUA/s400/10.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Create another layer ( I named it eclipse 2 ) and start painting again.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPecZ9wCEnI/AAAAAAAACBM/RoL5TvWG2Rw/s1600-h/11.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843059865031282" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPecZ9wCEnI/AAAAAAAACBM/RoL5TvWG2Rw/s400/11.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Go to Filters&amp;gt;Blur&amp;gt;Gaussian Blur. For this second layer use 10 pixels for the Horizontal and 10 pixels for the Vertical&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPecaU52IrI/AAAAAAAACBU/2Ky_xm5AIUo/s1600-h/12.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843066080207538" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPecaU52IrI/AAAAAAAACBU/2Ky_xm5AIUo/s400/12.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPecakSSi-I/AAAAAAAACBc/MCB9SHauyJg/s1600-h/13.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843070209264610" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPecakSSi-I/AAAAAAAACBc/MCB9SHauyJg/s400/13.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Create  another layer and repeat the previous step, this time however i'll  Apply the Gaussian Blur to this layer as well, but use only 1 pixel for  the Radius.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPeca9FCrLI/AAAAAAAACBk/QGcTxziHIo0/s1600-h/14.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843076864584882" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPeca9FCrLI/AAAAAAAACBk/QGcTxziHIo0/s400/14.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And  then create a new layer and i named it as Clouds.Fill it with white. Go  to Render&amp;gt;Clouds&amp;gt;Different Clouds.and apply to the layer. I use 4  for the Detail, Randomize and Tileable.After that changes the layer mod  to Overlay.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPeca__v8uI/AAAAAAAACBs/e9SAobH3TqE/s1600-h/15.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843077647692514" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPeca__v8uI/AAAAAAAACBs/e9SAobH3TqE/s400/15.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPedLiVQdAI/AAAAAAAACB0/gnLa6jjOW3I/s1600-h/16.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843911498429442" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPedLiVQdAI/AAAAAAAACB0/gnLa6jjOW3I/s400/16.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Create another layer and named it gradient.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPedLxdoOWI/AAAAAAAACB8/tRW98tUQfdg/s1600-h/17.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843915560073570" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPedLxdoOWI/AAAAAAAACB8/tRW98tUQfdg/s400/17.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Using the gardient tools select Full  Saturation Spectrum Gradient , 100 for the opacity and Linear for the shape.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPedMJPTzvI/AAAAAAAACCI/VW5iYB0hvHE/s1600-h/18.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843921942466290" src="http://1.bp.blogspot.com/_R8FhZZa6Dro/SPedMJPTzvI/AAAAAAAACCI/VW5iYB0hvHE/s400/18.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Apply the gradient to the layer. Change the layer mod to Overlay.U'll see a nice effect there.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPedMVT7O7I/AAAAAAAACCU/AtoctYX1AMc/s1600-h/19.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843925183052722" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPedMVT7O7I/AAAAAAAACCU/AtoctYX1AMc/s400/19.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Go to layer eclipse 3 and change the layer mod to Grain merge.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPedMslzYQI/AAAAAAAACCg/2zzt5U46IFM/s1600-h/20.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257843931432050946" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPedMslzYQI/AAAAAAAACCg/2zzt5U46IFM/s400/20.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Last,go to layer 2 and change the layer mod to Hard Light&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPeeEZnNIRI/AAAAAAAACCs/3hotnZzbN1c/s1600-h/21.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257844888410333458" src="http://4.bp.blogspot.com/_R8FhZZa6Dro/SPeeEZnNIRI/AAAAAAAACCs/3hotnZzbN1c/s400/21.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Finish!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPeeEUiUzoI/AAAAAAAACC0/fiwEjN3-sE4/s1600-h/22.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257844887047687810" src="http://3.bp.blogspot.com/_R8FhZZa6Dro/SPeeEUiUzoI/AAAAAAAACC0/fiwEjN3-sE4/s400/22.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Result&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPeeEjmuIrI/AAAAAAAACC8/4kvNbU8G84g/s1600-h/digitalbokeh.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257844891092656818" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPeeEjmuIrI/AAAAAAAACC8/4kvNbU8G84g/s400/digitalbokeh.jpg" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Below  is my result using Photoshop..You will noticed that Gimp is a great  free editing software ever because it can achieve almost the same as  Photoshop result.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPefDARUQFI/AAAAAAAACDM/Be88kkZGwJg/s1600-h/awesome+bokeh.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5257845963939397714" src="http://2.bp.blogspot.com/_R8FhZZa6Dro/SPefDARUQFI/AAAAAAAACDM/Be88kkZGwJg/s400/awesome+bokeh.jpg" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hope u like it..i take no credit of this awesome effect.credit all to Fabio Sasso for the inspiring idea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also included the Xcf file.&lt;br /&gt;
&lt;a href="http://rapidshare.com/files/154674428/digitalbokeh.xcf.html"&gt;Click here to download the Xcf file used for this tutorial&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UPDATED: 2 FEBRUARY 2009&lt;br /&gt;
&lt;br /&gt;
I HAVE MADE NEW BOKEH .GBR BRUSH SO FEEL FREE TO DOWNLOAD IT &lt;a href="http://starsys.deviantart.com/art/GIMP-BOKEH-BRUSH-111475344"&gt;HERE&lt;/a&gt;. THIS IS MY NEW RESULT USING THE BRUSH. MADE IN GIMP 2.6.4.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;br /&gt;
&lt;a href="http://www.flickr.com/photos/27269808@N08/3244526653/" title="BOKEH RESULT2 by starlight86, on Flickr"&gt;&lt;img alt="BOKEH RESULT2" height="375" src="http://farm4.static.flickr.com/3364/3244526653_ca72dc8c82.jpg" width="500" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-2425165072671422013?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/1X3Wdahx3r8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/2425165072671422013/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/gimp-tutorial-awesome-bokeh-effect-in.html#comment-form" title="0 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/2425165072671422013?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/2425165072671422013?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/1X3Wdahx3r8/gimp-tutorial-awesome-bokeh-effect-in.html" title="Gimp Tutorial: Awesome Bokeh Effect in Gimp" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3218/2949087041_5727861b17_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/gimp-tutorial-awesome-bokeh-effect-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCQHg-eCp7ImA9Wx9UE04.&quot;"><id>tag:blogger.com,1999:blog-180839935467389508.post-1972787896665397134</id><published>2011-02-10T01:53:00.000-08:00</published><updated>2011-02-10T02:04:21.650-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-10T02:04:21.650-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apache tomcat" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Install Tomcat 6 on Ubuntu 10.04 by apt-get</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Apache Tomcat is a web container that allows you to serve Java Servlets   and JSP (Java Server Pages) web applications.&lt;br /&gt;
&lt;br /&gt;
The &lt;span class="application"&gt;&lt;b&gt;Tomcat 6.0&lt;/b&gt;&lt;/span&gt; packages in Ubuntu support   two different ways of running Tomcat. You can install them as a classic   unique system-wide instance, that will be started at boot time and will run   as the tomcat6 unpriviledged user. But you can also deploy private   instances that will run with your own user rights, and that you should   start and stop by yourself. This second way is particularly useful in a   development server context where multiple users need to test on their own   private Tomcat instances.&lt;br /&gt;
&lt;div class="sect2" title="System-wide installation"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;System-wide installation&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;To install the &lt;span class="application"&gt;&lt;b&gt;Tomcat&lt;/b&gt;&lt;/span&gt; server,    you can enter the following command in the terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo apt-get install tomcat6&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;This will install a Tomcat server with just a default ROOT webapp    that displays a minimal "It works" page by default.&lt;/div&gt;&lt;div class="sect2" title="Configuration"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;Configuration&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Tomcat configuration files can be found in    &lt;code class="filename"&gt;/etc/tomcat6&lt;/code&gt;. Only a few common configuration tweaks    will be described here, please see    &lt;a class="ulink" href="http://tomcat.apache.org/tomcat-6.0-doc/index.html" target="_top"&gt;Tomcat    6.0 documentation&lt;/a&gt; for more.&lt;br /&gt;
&lt;div class="sect3" title="Changing default ports"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Changing default ports&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;By default Tomcat 6.0 runs a HTTP connector on port 8080 and an     AJP connector on port 8009. You might want to change those default     ports to avoid conflict with another server on the system. This is     done by changing the following lines in     &lt;code class="filename"&gt;/etc/tomcat6/server.xml&lt;/code&gt;:&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: #f3f3f3; font-size: small;"&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&amp;lt;&lt;/code&gt;Connector port="8080" protocol="HTTP/1.1" c&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt;onnectionTimeout="20000" &lt;/span&gt;&lt;/div&gt;&lt;pre class="programlisting" style="background-color: #f3f3f3; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;               redirectPort="8443" /&lt;code&gt;&amp;amp;rt;&lt;/code&gt;
...&lt;/span&gt;&lt;/pre&gt;&lt;pre class="programlisting" style="background-color: #f3f3f3; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;code&gt;&amp;lt;&lt;/code&gt;Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /&lt;code&gt;&amp;amp;rt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="sect3" title="Changing JVM used"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Changing JVM used&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;By default Tomcat will run preferably with OpenJDK-6, then try     Sun's JVM, then try some other JVMs. If you have various JVMs     installed, you can set which should be used by setting&lt;br /&gt;
JAVA_HOME in     &lt;code class="filename"&gt;/etc/default/tomcat6&lt;/code&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="programlisting"&gt;&lt;span style="background-color: #f3f3f3;"&gt;JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="sect3" title="Declaring users and roles"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Declaring users and roles&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Usernames, passwords and roles (groups) can be defined centrally     in a Servlet container. In Tomcat 6.0 this is done in the     &lt;code class="filename"&gt;/etc/tomcat6/tomcat-users.xml&lt;/code&gt; file:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="programlisting"&gt;&lt;span style="background-color: #f3f3f3;"&gt;&lt;role rolename="admin"&gt;&lt;/role&gt;&lt;/span&gt;
&lt;span style="background-color: #f3f3f3;"&gt;&lt;user password="s3cret" roles="admin" username="tomcat"&gt;&lt;/user&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="sect2" title="Using Tomcat standard webapps"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;Using Tomcat standard webapps&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Tomcat is shipped with webapps that you can install    for documentation, administration or demo purposes.&lt;br /&gt;
&lt;div class="sect3" title="Tomcat documentation"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Tomcat documentation&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The &lt;span class="application"&gt;&lt;b&gt;tomcat6-docs&lt;/b&gt;&lt;/span&gt; package contains     Tomcat 6.0 documentation, packaged as a webapp that you can access by     default at http://yourserver:8080/docs. You can install it by entering     the following command in the terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo apt-get install tomcat6-docs&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="sect3" title="Tomcat administration webapps"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Tomcat administration webapps&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The &lt;span class="application"&gt;&lt;b&gt;tomcat6-admin&lt;/b&gt;&lt;/span&gt; package contains     two webapps that can be used to administer the Tomcat server using a     web interface. You can install them by entering the     following command in the terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo apt-get install tomcat6-admin&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;The first one is the &lt;span class="emphasis"&gt;&lt;i&gt;manager&lt;/i&gt;&lt;/span&gt; webapp, which     you can access by default at http://yourserver:8080/manager/html. It is     primarily used to get server status and restart webapps.&lt;br /&gt;
&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;" title="Note"&gt;&lt;table border="0" summary="Note"&gt;&lt;tbody&gt;
&lt;tr&gt;                         &lt;td align="center" rowspan="2" valign="top" width="25"&gt;&lt;img alt="[Note]" src="https://help.ubuntu.com/9.10/libs/admon/note.png" /&gt;                         &lt;/td&gt;                         &lt;th align="left"&gt;&lt;br /&gt;
&lt;/th&gt;                       &lt;/tr&gt;
&lt;tr&gt;                         &lt;td align="left" valign="top"&gt;Access to the &lt;span class="emphasis"&gt;&lt;i&gt;manager&lt;/i&gt;&lt;/span&gt; application is     protected by default: you need to define a user with the role "manager"     in &lt;code class="filename"&gt;/etc/tomcat6/tomcat-users.xml&lt;/code&gt;     before you can access it.&lt;br /&gt;
&lt;br /&gt;
&lt;/td&gt;                       &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;The second one is the &lt;span class="emphasis"&gt;&lt;i&gt;host-manager&lt;/i&gt;&lt;/span&gt; webapp,     which you can access by default at     http://yourserver:8080/host-manager/html.     It can be used to create virtual hosts dynamically.&lt;br /&gt;
&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;" title="Note"&gt;&lt;table border="0" summary="Note"&gt;&lt;tbody&gt;
&lt;tr&gt;                         &lt;td align="center" rowspan="2" valign="top" width="25"&gt;&lt;img alt="[Note]" src="https://help.ubuntu.com/9.10/libs/admon/note.png" /&gt;                         &lt;/td&gt;                         &lt;th align="left"&gt;&lt;br /&gt;
&lt;/th&gt;                       &lt;/tr&gt;
&lt;tr&gt;                         &lt;td align="left" valign="top"&gt;Access to the &lt;span class="emphasis"&gt;&lt;i&gt;host-manager&lt;/i&gt;&lt;/span&gt; application is     also protected by default: you     need to define a user with the role "admin" in     &lt;code class="filename"&gt;/etc/tomcat6/tomcat-users.xml&lt;/code&gt;     before you can access it.&lt;br /&gt;
&lt;br /&gt;
&lt;/td&gt;                       &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;For security reasons, the tomcat6 user cannot write to the     &lt;code class="filename"&gt;/etc/tomcat6&lt;/code&gt; directory by default. Some features     in these admin webapps (application deployment, virtual host creation)     need write access to that directory. If you want to use these     features execute the following, to give users in the tomcat6 group the necessary     rights:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo chgrp -R tomcat6 /etc/tomcat6&lt;/b&gt;&lt;/span&gt;
&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo chmod -R g+w /etc/tomcat6&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: #f3f3f3;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="sect3" title="Tomcat examples webapps"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Tomcat examples webapps&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The &lt;span class="application"&gt;&lt;b&gt;tomcat6-examples&lt;/b&gt;&lt;/span&gt; package contains     two webapps that can be used to test or demonstrate Servlets and JSP     features, which you can access them by default at     &lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;http://yourserver:8080/examples&lt;/span&gt;. You can install them by entering the     following command in the terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo apt-get install tomcat6-examples&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="sect2" title="Using private instances"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;Using private instances&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Tomcat is heavily used in development and testing scenarios    where using a single system-wide instance doesn't meet the requirements    of multiple users on a single system. The Tomcat 6.0 packages in    Ubuntu come with tools to help deploy your own user-oriented instances,    allowing every user on a system to run (without root rights) separate    private instances while still using the system-installed    libraries.&lt;br /&gt;
&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;" title="Note"&gt;&lt;table border="0" summary="Note"&gt;&lt;tbody&gt;
&lt;tr&gt;                       &lt;td align="center" rowspan="2" valign="top" width="25"&gt;&lt;img alt="[Note]" src="https://help.ubuntu.com/9.10/libs/admon/note.png" /&gt;                       &lt;/td&gt;                       &lt;th align="left"&gt;&lt;br /&gt;
&lt;/th&gt;                     &lt;/tr&gt;
&lt;tr&gt;                       &lt;td align="left" valign="top"&gt;It is possible to run the system-wide instance and the private    instances in parallel, as long as they do not use the same TCP    ports.&lt;/td&gt;                     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="sect3" title="Installing private instance support"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Installing private instance support&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;You can install everything necessary to run private instances     by entering the following command in the terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;sudo apt-get install tomcat6-user&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="sect3" title="Creating a private instance"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Creating a private instance&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;You can create a private instance directory by entering the     following command in the terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;tomcat6-instance-create my-instance&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;This will create a new &lt;code class="filename"&gt;my-instance&lt;/code&gt; directory     with all the necessary subdirectories and scripts.     You can for example install your common libraries in the     &lt;code class="filename"&gt;lib/&lt;/code&gt; subdirectory and deploy your webapps in the     &lt;code class="filename"&gt;webapps/&lt;/code&gt; subdirectory. No webapps are deployed     by default.&lt;/div&gt;&lt;div class="sect3" title="Configuring your private instance"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Configuring your private instance&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;You will find the classic Tomcat configuration files for your     private instance in the &lt;code class="filename"&gt;conf/&lt;/code&gt;     subdirectory. You should for     example certainly edit the &lt;code class="filename"&gt;conf/server.xml&lt;/code&gt; file     to change the default ports used by your private Tomcat instance to     avoid conflict with other instances that might be running.&lt;/div&gt;&lt;div class="sect3" title="Starting/stopping your private instance"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h4 class="title"&gt;Starting/stopping your private instance&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;You can start your private instance by entering the following     command in the terminal prompt (supposing  your instance is located     in the &lt;code class="filename"&gt;my-instance&lt;/code&gt; directory):&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;my-instance/bin/startup.sh&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;" title="Note"&gt;&lt;table border="0" summary="Note"&gt;&lt;tbody&gt;
&lt;tr&gt;                         &lt;td align="center" rowspan="2" valign="top" width="25"&gt;&lt;img alt="[Note]" src="https://help.ubuntu.com/9.10/libs/admon/note.png" /&gt;                         &lt;/td&gt;                         &lt;th align="left"&gt;&lt;br /&gt;
&lt;/th&gt;                       &lt;/tr&gt;
&lt;tr&gt;                         &lt;td align="left" valign="top"&gt;You should check the &lt;code class="filename"&gt;logs/&lt;/code&gt; subdirectory for     any error. If you have a &lt;span class="emphasis"&gt;&lt;i&gt;java.net.BindException: Address     already in use&lt;null&gt;:8080&lt;/null&gt;&lt;/i&gt;&lt;/span&gt; error, it means that the     port you're using is already taken and that you should change it.     &lt;/td&gt;                       &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;You can stop your instance by entering the following         command in the terminal prompt (supposing  your instance is located         in the &lt;code class="filename"&gt;my-instance&lt;/code&gt; directory):&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="screen"&gt;&lt;span class="command" style="background-color: #f3f3f3;"&gt;&lt;b&gt;my-instance/bin/shutdown.sh&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="sect2" title="References"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;References&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="itemizedlist"&gt;&lt;ul class="itemizedlist" type="disc"&gt;&lt;li class="listitem"&gt;                                              See the &lt;a class="ulink" href="http://tomcat.apache.org/" target="_top"&gt;Apache Tomcat&lt;/a&gt; website for more information.                       &lt;br /&gt;
&lt;/li&gt;
&lt;li class="listitem"&gt;                                              &lt;a class="ulink" href="http://oreilly.com/catalog/9780596003180/" target="_top"&gt;Tomcat: The Definitive Guide&lt;/a&gt; is a good                       resource for building web applications with Tomcat.                       &lt;br /&gt;
&lt;/li&gt;
&lt;li class="listitem"&gt;                                              For additional books see the &lt;a class="ulink" href="http://wiki.apache.org/tomcat/Tomcat/Books" target="_top"&gt;Tomcat Books&lt;/a&gt; list page.                       &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180839935467389508-1972787896665397134?l=diegobenna.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DiegoBenna/~4/gbzaJC2MgAk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://diegobenna.blogspot.com/feeds/1972787896665397134/comments/default" title="Commenti sul post" /><link rel="replies" type="text/html" href="http://diegobenna.blogspot.com/2011/02/install-tomcat-6-on-ubuntu-1004-by-apt.html#comment-form" title="3 Commenti" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1972787896665397134?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/180839935467389508/posts/default/1972787896665397134?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DiegoBenna/~3/gbzaJC2MgAk/install-tomcat-6-on-ubuntu-1004-by-apt.html" title="Install Tomcat 6 on Ubuntu 10.04 by apt-get" /><author><name>Diego Benna</name><uri>https://profiles.google.com/114385275084899169181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-WQ9zduyCp0M/AAAAAAAAAAI/AAAAAAAAAIU/-5CTz_BB_aA/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://diegobenna.blogspot.com/2011/02/install-tomcat-6-on-ubuntu-1004-by-apt.html</feedburner:origLink></entry></feed>

