Tuesday, November 23, 2010

Different types of web servers in web hosting environment

There are alot of types of web servers used in hosting environment, i will provide you information about some of them here, first let me list the different types of web servers and then i will explain them in detail.



1.Apache web server
2.Microsoft Internet Information Service
3.Lighttpd
4.Sun Java System Web Server
5.Jigsaw Server
6.nagios web server
7.Zeus web server



1.Apache Web server


This is developed by Apache software foundation, the most reliable and most widely used web server in hosting environment, about 58.8% of the servers are using Apache, this is a open source and free software, this software is usable in Linux, windows, Mac, FreeBSD type operating systems. It supports J2EE(java) when combined with tomcat module. Can have captcha working by enabling Freetype and GD support to PHP modules. Guess what it even supports ASP.NET pages but not to the fuller version.


2.Mcrosoft IIS server
.

This is developed by Microsoft corporation, this is one of the easy to work web server and about 33% servers are using this software, this is a Microsoft software and it comes with a cost value along with server operating system CD's provided by Microsoft. This supports ASP.NET and many other Microsoft enabled web softwares.



3.Lighttpd


This is a open source and free software comes inbuilt with FreeBSD operating systems this consumes very less system resources, this can run on Linux, Windows, Mac, FreeBSD and Solaris operating systems.


4.Sun Java System Web Server


This is developed by Sun micro systems, this is a free software specifically used in larger websites, but this is not an open source software, this can run on Linux, Windows, and other unix like operating systems. Has all the supports for the languages needed by a larger web sites.



5.Jigsaw Server


Jigsaw is an W3C Open Source Project, started May 1996, it supports many Java enabled supports, developed by World Wide Web Consortium. It is open source and free software that can run on operating systems like Linux, Unix, Windows, Mac OS X Free BSD.


6.nagios web server


This is one of the open source software and free software, that can run on operating systems like Linux, and other unix operating systems.


7.Zeus web server


This is one of the easy to use web server that can be configured on a web interface used n a browser using 9090 as default port number, it comes with a cost.

Feel free to post your replies if i went wrong somewhere.

Regards,
Siru

Friday, November 5, 2010

Apache errors and warnings

If your apache server stops and if you are getting the following errors when you restart apache services

[error] VirtualHost -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

then you missed an port number entry in the virtual host entries in the main configuration file follow the steps to resolve the problem.

1.Goto apache configuration file
#vi /usr/local/apache/conf/http.conf

2.Locate the Virtual host which doesn't have an port number specified in it and add the port number as below

Change the line from

VirtualHost xx.xx.xx.xx
ServerName servername.domain.tls
DocumentRoot /usr/local/apache/htdocs



to

VirtualHost xx.xx.xx.xx:80
ServerName servername.domain.tls
DocumentRoot /usr/local/apache/htdocs



This will fix the problem.

IF you are getting any warning messages as below

WARNING: MaxClients of 850 exceeds ServerLimit value of 700 servers,lowering MaxClients to 700. To increase, please see the ServerLimitdirective.

Open the configuration file and edit the line

ServerLimit 700
MaxClients 850


to


ServerLimit 850
MaxClients 850


You are getting this error message just because you have set the server to respond only 700 concurrent connections and the maximum client requests as 850.

Sunday, October 31, 2010

User administration in linux

Hi, this topic covers the user administration in linux operating system.

The important feature of a linux machine is that. In linux machine multiple users can access the same machine at the same time.

At the end of this topic you will learn to know the following 3 things

1.Add, Remove and Modify users in a system.

2.Groups.

3.Permissions(modes).

Okay, lets get detail in the above topic

1.Add, Remove and Modify users in a system:
===========================================

To add , delete or modify users in linux you much be a root user(super user) or a administrator.

1.Adding a user
---------------

Command used to add a user in linux is

#useradd

2.Remove a user
---------------

Command used to delete a user in linux is

#userdel

3.Modify a user
---------------

Command used to add a user in linux is

#usermod

All the above commands will be located in /usr/sbin directory.

You can specify the user config files which a new user will have when an account is created these configuration files are copied from the /etc/skel/ directory.

[skel stands for skeleton]

Now, let us see the steps in creating a new user account

Now first of all we will check the defaults of useradd command.

[root@siru /]#useradd -D

[The "-D" option means that default for useradd command]

O/P of above command is
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
[root@siru /]#


In the above output
Group=100 It means that if we didn't specify a group when we create a user it automatically puts the user into Group100.

HOME=/home It means that if we don't specify a home directory it will set default home directory of that user as /home.

INACTIVE=-1
EXPIRE=
these two means account expiration date, either of them is not set now by default as INACTIVE=-1 means its not described and EXPIRE= has not returned any values hence there is no expiration date for a new account unless it is set specially just in-case if the EXPIRE is set to a date say 30-11-2010 the account that has been created with this expiration date will expire on 30-11-2010 and from that date the user cannot login to the system but all his files will be kept unmodified just in-case if we unexpire that account the user can access those files as he like he left it when it expired and if INACTIVE=-1 is set to any positive value say positive 10 then the files owned by the expired user account will delete after 10 days of the particular expired account including the user id.

SHELL=/bin/bash
is the default shell for that particular account.

SKEL=/etc/skel default skeleton for that particular account, when an account is created the configuration files under this folder will be copied to the user's account.

Now let us add an account
[root@siru /]#useradd lisa
now once i press enter after typing the above command two files will be modified, they are htpasswd and htshadow files, lisa's home directory was created and few configuration files are copied into this directory. Let's see them now we will go into /home directory

[root@siru /]#cd /home
now a folder named lisa will be created

[root@siru home]#ls
output of the above file will be
jeevi lisa
which means that the system has created a account names lisa now lets go into lisa directory now and i will list all the files under lisa

[root@siru home]# cd lisa
[root@siru lisa]# ls -a
output of the above command is
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .kde .screenrc

now you can see that the files under lisa folder is user config files as they start with the name dot(.), if we "ls -a" inside /etc/skel directory

[root@siru lisa]# ls -a /etc/skel
o/p
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .kde .screenrc
hence these are files copied from /etc/skel directory.

now you will know that we have never set a password for the user lisa, so the user lisa cannot login to the system as it doesn't have any password, so we are setting password for the user lisa

[root@siru /]#passwd lisa
[Note: the root user is the only user that can change or set password for a user other than the self]
o/p
Changing password for user lisa
New password:
type password for lisa
Re-Type password:retype password for lisa
passwd: all authentication tokens are updated successfully password has been set and now lisa can login to the system using her account.

Alright, now we shall have a look into the htpasswd and htshadow files into the system.
cat /etc/passwd
o/p

jeevi:x:500:500::/home/jeevi:/bin/bash
lisa:x:501:501::/home/lisa:/bin/bash

in the above output you could see that lisa is the username, x is the password which will be stored in /etc/passwd file, 501 is the user id, next 501 is the group id, (ya i said default as 100 but redhat linux will have a separate user private group it starts with 501, you will know that if you are familiar with group administration)net files is comment which is not set so the two colons(::) it can be filled by using useradd -c command /home/lisa is the default home directory of the user lisa, /bin/bash is the default shell for the user lisa.

Now, let's have a look into htshadow file, the htshadow file will also have a separate line for each user

#cat /etc/shadow
o/p

jeevi:fdsfsfGD#$%%565GF$$$%^*:11758:0:99999:7:::
lisa:Pfdefs@#4GFVtr33@334$ff:11768:0:99999:7:::

the first field of the above o/p is the user name and the next field is the encrypted version of the password just for security reasons.

Now let's change a password for a bunch of users in a single command,

#pwlist
o/p
jeevi:siru
lisa:lisa

#chpasswd < pwlist
o/p of above command will change all passwords for user for jeevi and lisa, but the file pwlist will have passwords for them in plain text format hence its safe to delete pwlist file, hence the after deleting pwlist file the passwords for users will only be present under /etc/passwd file(which is encrypted).

Now lets learn about groups.

The group id's for users are stored under /etc/group
# cat /etc/group
o/p
jeevi:x:500:
lisa:x:501:


again the first field specifies group name, next is group password which is stored at /etc/gshadow file, next is group id and next is the list of users in he group 500 which is empty which means that group jeevi has no users under it.

Let us consider that if some members are working on a project and have to access the files in common, say "projectX", so we are now creating projectX group.

#groupadd -r projectX
#cat /etc/group
jeevi:x:500:
lisa:x:501:
projectX:x:11:

now we will add jeevi and lisa user into the projectX group this can be done by the following command
#usermod -G projectX jeevi
o/p
#cat /etc/group
jeevi:x:500:
lisa:x:501:
projectX:x:11:jeevi


#usermod -G projectX lisa
o/p
#cat /etc/group
jeevi:x:500:
lisa:x:501:
projectX:x:11:jeevi:lisa


which means users jeevi and lisa are a members of the group projectX, so the files with group permissions set to projectX can be accessible by jeevi as well as lisa in common.

Now lets add user jeevi to projectX as well as projectY, this can be done by

#groupadd -r projectY
#cat /etc/group
jeevi:x:500:
lisa:x:501:
projectX:x:11:jeevi:lisa
projectY:x:12:



#groupadd -
#usermod -G projectX,projectY jeevi

o/p
#cat /etc/group
jeevi:x:500:
lisa:x:501:
projectX:x:11:jeevi:lisa
projectY:x:12:jeevi


now, user jeevi is a user of both projectX as well as projectY but lisa is only a member of projectX group.

Command to see the groups which a user is present is
#group
(i.e) #group jeevi
O/P
jeevi: jeevi :projectX: projectY

Note that when ever you need to add an extra group for jeevi you need to specify all the group which jeevi wants to be else he will be removed from the other groups say you will be removed from projectX and projectY if you have not specified these two group then jeevi will be removed from these two groups.

File permssions(modes):
=======================

* There are separate permissions for user, group and other.
* #ls -l command shows modes
* Root and owner can change modes.



Every file has three types of modes(permissions) they are user(the actual owner of the file), group and other(all the users present in the system)

#ls -l

The above command will list the file permissions of files.

o/p

drwxr-xr-- root jeevi folder

The fields(i.e drwx) in the above output tells us d-directory,r-read w-write and x-execute permission for the owner(here its root).

The second field(r-x) in the above output tells us that the group user(here it is jeevi) has r-read and x-execute permissions for that folder so he cannot edit that folder like he cannot create or delete files inside that folder.

The third field(r--)in the above output tells us that the other user(say anyother user like lisa,apache, etc) has onlyr-read permission that means that he can only read the folder and cannot edit or execute that folder(to open a folder the user needs execute permission as this is disabled here he cant open the folder).


Changing file permissions:
===========================

To change the file permission you can use "chmod" command. chmod command has two formats they are

1.Symbolc mode.
2.Binary number mode.

1.Symbolic format here we use u(user),g(group),o(other)

Eg:#chmod g+w filename will allow group user have write permission to that file.
#chmod g-w filname will stop the group user from writing/changng the file.
You can use symbolic format as below example as well
#chmod ug=rw filename will make user and group to have read and write permission to that file hence there will be no access for others and no x-execute permission for user and group of that file.


2.Binary number mode uses the following sntax.

#chmod 754 filename(where 7 is user permssion 5 is group permission and 4 is other user's permission) which is represented in binary values as the number 7 comes with binary value "111=rwx" and then 5 with binary value "101=r-x" and 4 with "100=r--".

Directory permissions
=====================
Directoies will have permissions like as follows

7=rwx(where the user will have full permission to the directory, he can add, delete the files inside the directory).
5=r-x(where the user can only read and execute the directory cannot modify the files in that directory).
0=---(No permissions, he cannot access the directory).
[Note: User cannot read the folder if he has the folder has only execute permission and not read permission and he cannot open the directory if he has only the read permission and not execute permission. So, you need at-least read and execute permissions for a directory to access and read it]

If a user have read and execute permission for a directory and no permissions at all for a file inside that directory then he cannot read that file, so both directory and file permissions have to be working on your favor so as to access that particular file inside the directory.

Okay, now let's combine all the above topics and work to share files for different users.

Let us consider that some users are working on ProjectX where everybody working on ProjectX needs to access a common folder and edit files.

[root@siru home]#ls -l

drwxr-x--- 3 siru ProjectX 4086 Mar20 12:11:20 siru
drwxr-x--- 4 lisa lisa 4086 Mar21 12:30:21 lisa


The user siru has group user as ProjectX and read and execute permission for group users, hence the users with ProjectX can access the directory siru, Now lets go inside siru's directory and do an ls -l command

[root@siru home]#cd siru

[root@siru siru]#ls -l
O/P

drwxr-x--- 5 siru ProjectX 4086 Mar20 12:11:20 ProjectX

Here we have ProjectX folder has group user as ProjectX hence the users with ProjectX group can access the files under ProjectX folder. Now, let go inside ProjectX folder and do an ls -l.

[root@siru siru]#cd ProjectX

[root@siru ProjectX]#ls -l

O/P
-rw------- 1 siru ProjectX 64 Mar 21 12:20:21 Plans


Now, here is the mistake where the file "Plans" doesn't have any permissions set for the group ProjectX hence the memebers of the ProjectX cannot access the contents of the file "Plans". So, you need to set read and write permissions to "Plans" file so that users from group "ProjectX" can read or edit that particular file, this can be done as follows

[root@siru ProjectX]#chmod 660

[root@siru ProjectX]#ls -l

-rw-rw---- 1 siru ProjectX 64 Mar 21 12:20:21 Plans


Now, the users under group ProjectX can edit the file "Plans".

Wait a minute do you know how the folder "ProjectX" had group permission as "ProjectX", let me explain how to create a file/folder with other group permission, let us consider that we are logged in as siru user.

[siru@siru ProjectX]#mkdir sample
This will create a folder sample
[siru@siru ProjectX]#ls -l

O/P

-rw-rw---- 1 siru ProjectX 64 Mar 21 12:20:21 Plans
drwxr-xr-x 2 siru siru 4086 Mar 21 13:20:21 sample


now the group permission set here for sample folder is siru, you have to change that as follows

[siru@siru ProjectX]#chown siru.ProjectX sample

[siru@siru ProjectX]#ls -l

O/P

-rw-rw---- 1 siru ProjectX 64 Mar 21 12:20:21 Plans
drwxr-xr-x 2 siru ProjectX 4086 Mar 21 13:20:21 sample


you can also do this as below steps as well

[siru@siru ProjectX]#newgrp ProjectX

[siru@siru ProjectX]#mkdir sample

[siru@siru ProjectX]#ls -l

O/P

-rw-rw---- 1 siru ProjectX 64 Mar 21 12:20:21 Plans
drwxr-xr-x 2 siru ProjectX 4086 Mar 21 13:20:21 sample


So, how to make a normal user a administrator of a group, let's see now., it can be done by following commands

#gpasswd -A siru ProjectX


[The capital A tells the system that the successive user is the administrator of that group so, after executing the previous command we will have siru as the administrator of ProjectX, he can add or delete users to ProjectX group].

# su siru[switching user from root to siru]

#gpasswd -a ram ProjectX


The above command adds user ram to group ProjectX

#gpasswd -d lisa ProjectX
The above command delets user lisa from ProjectX

Now if we see the /etc/group file we won't be having user lisa in ProjectX but user ram will be added in ProjectX

#cat /etc/group

O/P
#cat /etc/group
jeevi:x:500:
lisa:x:501:
projectX:x:11:jeevi:ram
projectY:x:12:jeevi

We can have user private groups as well so that if user siru wants only lisa to access his files then he can add user lisa as his group member this can be done as follows

#gpasswd -A siru siru


#su siru[switching user from root to siru]

#gpasswd -a lisa siru

The above command will add user lisa to user siru's private group. Hence lisa can access the files which are set read permissions for siru group. Something like this

-rw-r----- 1 siru siru 64 Mar 21 14:15:00 test


[Note: See to that lisa can enter in to the directory where the groups of siru has permissions to execute and read the particular directory].

Whof.. Long isn't it. Let me know if i have gone wrong somewhere.

Reference: CBTNUGGETS video tutorials

Thanks,
Siru

Friday, October 29, 2010

mrtg installation in zeus and apache server

MRTG installation
=================

SNMP installation

#yum install net-snmp*

Configuration of snmpd.conf
============================

Inside the /etc/snmp/ folder, there will be the snmp configuration
file named, snmpd.conf

#mv snmpd.conf snmpd.conf.old

#vi snmpd.conf

Enter the following line in the new configuration file to set the Read
Only community string to any password of your choice, say for eg.,
1q2w3e

rocommunity 1q2w3e


#etc/rc.d/init.d/snmpd start


Run the following commnds from the command line


#snmpwalk -v 1 -c 1q2w3e localhost system

#snmpwalk -v 1 -c 1q2w3e localhost interface


The above steps are called as polling localhost. You can poll any SNMP
aware network device that has SNMP enabled. All you need is the IP
address and SNMP read only string and you’ll be able to get similar
results.

There are currently three versions of SNMP; versions 1, 2 and 3. The
Linux snmpwalk and snmpget commands have v 1, v 2c and v 3 switches for
specifying the SNMP version to be used for queries. Always make sure you
are using the correct one.


Now that we know SNMP is working correctly on your Linux server, we can
configure a SNMP statistics gathering software package such as MRTG to
create online graphs of your traffic flows.

Gd installation
===============
This is a graphic drawing library developed by Thomas Boutell. The present versions only develop PNG images as GIF images runs into problems.

http://www.libgd.org/releases/

#wget http://www.libgd.org/releases/

#tar -xvf gd-(*.*.*).tar.gz

#cd gd(*.*.*)

#env CPPFLAGS="-I../zlib -I../libpng" LDFLAGS="-L../zlib -L../libpng" ./configure --disable-shared --without-freetype --without-jpeg

#make


For Gd to produce graphic PNG images you need libpng
====================================================

This can be downloaded from

http://sourceforge.net/projects/libpng/files/libpng15/1.5.0/libpng-1.5.0.tar.xz/download
#tar -xvf libpng-1.5.0.tar.gz

#cd libpng-1.5.0

#env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR

#make


zlib is needed by libpng to compress those graphic images
=========================================================

Zlib can be downloaded from

http://downloads.sourceforge.net/project/libpng/zlib/1.2.5/zlib-1.2.5.tar.gz?r=&ts=1288349087&use_mirror=space

#wget http://downloads.sourceforge.net/project/libpng/zlib/1.2.5/zlib-1.2.5.tar.gz?r=&ts=1288349087&use_mirror=space

#tar -xvz zlib-1.2.5.tar.gz

#cd zlib-1.2.5

#./configure

#make


Finally MRTG Compilation
========================

can be downloaded from

http://oss.oetiker.ch/mrtg/pub/

#wget http://oss.oetiker.ch/mrtg/pub/mrtg-2.16.4.tar.gz

#tar -xvf mrtg-2.16.4.tar.gz

# cd mrtg-2.16.4

# ./configure --prefix=/usr/local/mrtg-2

#make

#make install



Configuring mrtg
================

#cd /usr/local/mrtg-2/bin

#mkdir /home/mrtg

#./cfgmaker --global 'WorkDir: /home/mrtg' --global 'Options[_]: bits,growright' --output /home/mrtg/mrtg.cfg 1q2w3e@localhost

#./indexmaker --output=/home/mrtg/index.html /home/mrtg/mrtg.cfg


Configuring on ZEUS web server
==============================

Then if that is zeus web server


1.Check the server and select the configure button

2.Now you will be taken to a new page where in left side you will have URL mapping option just below URL handling, select url mapping.

3.Add the word /mrtg/ to the space corresponding to "Map requests for (relative to document root)"

4.Add /home/mrtg/ to the space corresponding to "Map requests to (filesystem path)"

Now apply setting and save the settings

Configuration in apache web server
==================================
Configuration in apache web server is simple it is just by adding an alias in apache configuration file.

1.#vi /etc/https/conf/httpd.conf to open the apache configuration file
2.Add the line "Alias /mrtg/ /home/mrtg/" save and exit.
3.#/etc/init.d/httpd restart to restart apache server.

that's it you are done..


Cron for mrtg
=============

#vi /var/spool/cron/root

add the following line

*/5 * * * * env LANG=C /usr/local/mrtg-2/bin/mrtg /home/mrtg/mrtg.cfg --logging /var/log/mrtg.log >/dev/null 2>&1

#service crond restart


http://ipaddress/mrtg/

Tuesday, September 28, 2010

Form mail issue with php script.

If you are getting the following error message


** user@domain.com R=virtual_aliases: No Such User Here

Please remove the domain name from /etc/localdomains

and add the domain to /etc/remotedomains.

This will fix the problem as the domain has MX record outside the server the form mail on the server won't try to send mail, if you change these two files, it will fix the problem.






If you receive any error as below

2010-10-30 12:19:52 1PCF5s-00037s-3x ** user@anydomain.com R=lookuphost T=remote_s mtp: SMTP error from remote mail server after MAIL FROM: SIZE=1415: host MX.anydomain.com [xxx.xxx.xxx.xxx]: 553 #5.1.8 Domain of sender address does not exist

then

Goto php.ini file and change

"sendmail_path =/usr/sbin/sendmail -t -i"
to
"sendmail_path =/usr/sbin/sendmail -t -i -f mailer@yourdomain.com"

source="http://ubuntuforums.org/showthread.php?t=598072"

Friday, September 24, 2010

Installing eAccelerator in linux machine

Follow the steps to install eAccelerator in linux machine

#cd /usr/local/
#wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
#tar -jxvf eaccelerator-0.9.6-rc1.tar.bz2
#cd /usr/local/eaccelerator-0.9.6-rc1/
#phpize
#./configure
#make
#make install

To find the absulute path for php.ini file we use the following command

# php -i | grep ini

After locating the php.ini file edit the file in the following way

# vi /usr/local/lib/php.ini
;
; make sure this option is uncommented
; extension_dir = "/" < <<

; so it looks like this:
;
extension_dir = ""

;
; Then add the configuration like :
;
zend_extension="path/where/eaccelerator.so/is/located/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="1"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Make the cache directory

#mkdir /tmp/eaccelerator
#chmod 777 /tmp/eaccelerator/

Restart http service

#/etc/init.d/httpd restart

test the installation using

Testink

#php -v

You should be getting a output like

PHP 5.3.0 (cli) (built: Nov 1 2009 22:38:48)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
with eAccelerator v0.9.6-rc1, Copyright (c) 2004-2007 eAccelerator, by eAccelerator

That's it, you have installed eAccelerator on the server

Wednesday, August 18, 2010

Installing SSL for a domain

Installing SSL through WHM for a particular domain
=======================================

1. Login to your WHM panel.
2. Select "SSL/TLS" icon on the WHM panel.
3. You will be taken to a new page there please select "Generate a SSL certificate and Signing request".
4. Fill all the required fields and select Create.
5. A encrypted version of your CSR and RSA key will be generated and a copy of these two will also be sent to the mentioned email address.
6. Please take these two(CSR and RSA) to your SSL vendor to purchase a SSL certificate for you and come back to proceed further.
7.Select "Install SSL certificate and setup a domain" icon from "SSL/TLS".
8. Please place the SSL certificate inside the free space and then select Domain name,username and IP address of the particular domain and select "Do it".
9. That's all your SSL will be installed on the server.


Installing SSL for a domain through core server
===================================

1. Login to your linux system/server and goto /usr/share/ssl.
2. Here you will have all the files/folders required for ssl installation.
3. Copy the crt file at /usr/share/ssl/cert/domain.crt.
4. Copy the key file in /usr/share/ssl/private/domain.key
5. Copy the CA bundle at /usr/share/ssl/cert/domain.ca
6. Sample virtual host entry for ssl at httpd.conf


ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /home/username/public_html
ServerAdmin webmaster@domain.com
UseCanonicalName off
UserDir public_html

suPHP_UserGroup username username


User username
Group usergroup

BytesLog /usr/local/apache/domlogs/domain.com-bytes_log
ScriptAlias /cgi-bin/ /home/username/public_html/cgi-bin/
SSLEngine on
SSLCertificateFile /usr/share/ssl/certs/www.domain.com.crt
SSLCertificateKeyFile /usr/share/ssl/private/www.domain.com.key
SSLCACertificateFile /usr/share/ssl/certs/www.domain.com.cabundle
CustomLog /usr/local/apache/domlogs/domain.com-ssl_log combined
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
(function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })()