H-Sphere Documentation Sysadmin Guide

 

Web Server Configuration

 

This document covers the following issues:

 

Installed Software

  • Web sefver: Apache v.1.3.28 (to be updated to 1.3.29 soon)
  • FTP server: ProFTPD v.1.2.8 (to be updated to 1.2.9 soon)
  • Additional software:

  • SSL support: OpenSSL v.0.9.7c
  • FrontPage Extension v.5.0
  • Statistics packages:
    - Modlogan v.0.5.7
    - Webalizer v.2.01-10
    - Urchin v.3.xx, 4.xx, 5.xx (supported but not included to the installation)
  • PHP 4.x.x (the latest version is 4.3.2)
  • Perl 5.0 (default)
  • PHPMyAdmin - PHP-based MySQL administration package (the latest version supported)
  • Webshell 3.0,4.0 - H-Sphere integrated web directory browser
  • Mnogosearch v.2.01-10 - search engine
  • sudo v.1.6.3p5 - an internal H-Sphere utility that enables to execute a command as another user. All scripts triggered by H-Sphere are executed via sudo
 

Apache Web Server Configuration

Apache configuration directory is /hsphere/local/config/httpd. Also, a symlink alias to this directory is generated in the Apache home directory, that is, /hsphere/shared/apache/conf.

/hsphere/local/config/httpd/httpd.conf - Apache configuration file.

In the Apache config directory, virtual host configuration files are located in the /hsphere/local/config/httpd/sites directory:

  • {domain_id}.conf contains virtual host configuration settings for users' domains.
  • index.conf contains instructions to include {domain_id}.conf files.
 

FrontPage Extensions

FrontPage Extensions, version 5.0, is used as an upload server for Microsoft FrontPage site builder.

/hsphere/shared/frontpage/ is the H-Sphere Frontpage binaries directory.

/hsphere/shared/frontpage/version{number} is a subdirectory where Frontpage distibution is contained.

Also, a symlink to this directory is /usr/local/frontpage/version5.0. This is made for the compliance with default FrontPage settings - FrontPage directory is /usr/local/frontpage by default.

 

Webshell

Webshell is the H-Sphere web-based file manager that enables to browse remote directories without knowing the Unix file structure.

/hsphere/shared/apache/htdocs/webshell3 - Webshell 3 installation directory.

 

PHPMyAdmin

PHPMyAdmin is a PHP-based MySQL administration package. Its files are located in the /hsphere/shared/apache/php/MyPHPAdmin directory.

 

Webalizer

Webalizer is an external traffic calculation utility which analyzes the transfer log and generates readable HTTP transfer reports.

To activate Webalizer, the Transfer Log option must be enabled.

Webalizer is installed to /hsphere/shared/bin/webalizer.

/hsphere/shared/apache/conf/webalizer_user.cfg - webalizer config file.

In H-Sphere scripts directory, the following scripts are used for Webalizer activation and update:

- /hsphere/shared/scripts/webalizer-start - script for starting Webalizer
- /hsphere/shared/scripts/webalizer-stop - stop Webalizer
- /hsphere/shared/scripts/webalizer-update.pl - Perl script for Webalizer update

For the location of user log files, please refer to Web Traffic Calculation.

 

Modlogan

Modlogan is an external traffic calculation utility, similar to Webalizer.

To activate Modlogan, the Transfer Log must be enabled.

Modlogan is installed in /hsphere/shared/bin/modlogan.

/hsphere/shared/apache/conf/modlogan_user.cfg - Modlogan config file.

In H-Sphere scripts directory, the following scripts are used for Modlogan activation and update:

- /hsphere/shared/scripts/modlogan-init - script for Modlogan initialization.
- /hsphere/shared/scripts/modlogan-stop - stop Modlogan
- /hsphere/shared/scripts/modlogan-update.pl - Perl script for Modlogan update

Scripts check if there is free space on customer's account and don't generate statistics if the remaining space is not sufficient.

For the location of user log files, please refer to Web Traffic Calculation.

 

AWStats

(v.2.4 and up)

AWStats is a free tool that generates advanced graphical web server statistics reports. AWStats is set up on each Unix/Linux and Windows web server with H-Sphere installation or upgrade. Statistics is calculated for each domain separately.

AWStats directory: /hsphere/shared/awstats.

Each domain has its own AWStats configuration file: /hsphere/local/home/{user}/{user.domain.name}/cgi-bin/awstats.{user.domain.name}.conf

For the location of user log files, please refer to Web Traffic Calculation.

 

Urchin

Urchin is a third party Web analytics software integrated into H-Sphere. Urchin is installed and configured separately.

Urchin directory: /hsphere/local/urchin.

Urchin collects statistics for each domain into the /hsphere/local/urchin/var/logs/urchin-{domain_id}.log files. This statistics is transfered to the Urchin remote server via HTTP by means of the print-log.pl script located in cgi-bin directory of each domain directory.

Log file with Urchin history: /hsphere/local/urchin/data/history

For the location of user log files, please refer to Web Traffic Calculation.

 

Apache Log Files

Apache log files are located in the /hsphere/local/var/httpd/logs directory.

In the Apache log directory, all traffic is recorded into the access_log.{timestamp} files. Then, the /hsphere/shared/scripts/cron/cron_analyze.pl script calls the /hsphere/shared/sbin/analyze script to parse the contents of these files and to write traffic statistics into the specially formatted files in the /hsphere/local/var/statistic directory.

Filename format:

  • dd.mm.YYYY.txt - web logs,
  • dd.mm.YYYY.gst.txt - ftp logs,
  • dd.mm.YYYY.ftp.txt - virtual ftp logs,
  • dd.mm.YYYY.qml - mail logs.

where dd is a 2-digit day format, mm is a 2-digit month value, YYYY is a 4-digit year stamp.

Log files contain lines of the following format:

|name|xFer(kB)|Hits_All|Hits_HTML|

where name is the domain name, xFer is the total traffic in kilobytes.

Also, the /hsphere/local/var/statistic/loaded directory is created for storing timestamp log files whose records are already loaded to the database. Moving timestamp files to the loaded directory is performed by the /hsphere/shared/scripts/xfer_cat.pl script. The script is called from the TrafficLoader H-Sphere Java utility that is launched daily by cron. After each move the {service}timestamp.txt files change their timestamps to the current date.

 

Web Traffic Calculation

When Transfer Log is switched on for a Web plan, user domain traffic is logged separately in user home directories: /hsphere/local/home/logs/{user.domain.name}/{timestamp}.log

Standard Apache {apache_home}/bin/rotatelogs utility parses Apache data and writes formatted strings into the access_log files in the Apache log directory. In H-Sphere, its own modified rotatelogspsoft and rotatelogspsoft2 utilities parse Apache data for lines related to a particular user domain and write these lines into user log files at /hsphere/local/home/logs/{user.domain.name} directory.

  • rotatelogspsoft is the rewritten rotatelogs Apache utitily.
  • rotatelogspsoft2 is the modified rotatelogspsoft utility.

rotatelogspsoft and rotatelogspsoft2 are called from the /hsphere/shared/apache/bin directory:

/hsphere/shared/apache/bin/rotatelogspsoft
/hsphere/shared/apache/bin/rotatelogspsoft2

Third-Party Traffic Calcutation

For an external HTTP traffic counting program such as Webalizer or Modlogan, cron runs the /hsphere/shared/scripts/cron/cron_rotate.pl script to update Webalizer/Modlogan documents for the clients who have these tools enabled.

H-Sphere Built-In Traffic Calculation

For internal H-Sphere statistics, cron runs the /hsphere/shared/scripts/cron/cron_analyze.pl script on everyday basis. The script calls the /hsphere/shared/sbin/analyze script to parse the contents of the Apache log files and writes log data into the specially formatted dd.mm.YYYY.txt files in the /hsphere/local/var/statistic directory.

 

Loading Traffic Information into the System Database (TrafficLoader)

TrafficLoader H-Sphere Java class is in charge of parsing the server traffic. That's how it is launched by cron:

30 5 * * * su -l cpanel -c 'java psoft.hsphere.TrafficLoader'

TrafficLoader processes Web, mail, FTP and virtual FTP traffic in the formatted statistics files located in the /hsphere/local/var/statistic directory (see Log Files for details) and inserts these lines into the translog table of the H-Sphere system database.

TrafficLoader also calls the /hsphere/shared/scripts/xfer_cat.pl script to move the already loaded statistics files to the /hsphere/local/var/statistic/loaded directory as .txt.gz archives.

 

Sharing Common Resources With Mail Server Installed On The Same Physical Server

If Unix Web server and mail server are installed on one box, one single Apache server is used for both services. Otherwise, Apache web server for mail server running on a separate machine would be simplified, void of Web features such as Frontpage extensions, SSL support, Webshell, Modlogan, Webalizer, rotatelogs and the like.

 

Script Restarting Apache

The following script is used to restart Apache:
/hsphere/shared/scripts/apache-reconfig

Running the script can give large number of warnings. Most of them mean that user created subdomain through control panel, and then manually deleted the related directory. This will not prevent apache from starting or from normal operation.

 

Apache suexec

H-Sphere WebBox apache suexec is configured to run users' CGI scripts only within the /hsphere/local/home/ directory, recoursively. Thus, a user may run his/her own cgi scripts only if he/she has fourth nesting level within the H-Sphere user home directory, for example, /hsphere/local/home/user_home1.

 

List of Packages Compiled With Apache

To get the list of packages configured with the Apache server, type the following command under root:

# grep Apache /hsphere/local/var/httpd/logs/error_log

You may get the following packages configuration:

[notice] Apache/1.3.27 (Unix) mod_ssl/2.8.11 OpenSSL/0.9.6b FrontPage/5.0.2.2510 PHP/4.3.0 mod_throttle/3.1.2 configured

 

SSL Mode

SSL is implemented by the mod_ssl utility. There are dedicated SSL mode and shared SSL mode. In the first case, a single SSL certificate is issued for a dedicated IP, in the second case, one SSL certificate would be used for all IPs under the same domain zone.

Dedicated SSL

For dedicated IPs, SSL keys are located in the user home directory:

/hsphere/local/home/{user_name}/ssl.conf/{domain_name}/

If SSL is enabled, the following files will be placed to this directory:

  • server.crt - SSL certificate
  • server.key - SSL private key

Shared SSL

Directories with SSL certifaces and keys are located in the Apache config directory (/hsphere/shared/apache/config/).

/hsphere/shared/apache/conf/ssl.shared - directory for shared SSL certificates and keys.

Shared SSL directory structure:

  • ssl.shared/{domain_name} - directory with SSL certificate and private key for a domain

With SSL enabled, the following files are placed into this directory:

  • server.crt - SSL Certificate
  • server.key - SSL Private Key
  • server.csr - SSL signing request (if certificate has been generated by H-Sphere SSL generator tool)

When the user turns off SSL, the files remain on the server. When the user turns SSL back on, they are overwritten with the new files.

 

FTP Server

H-Sphere FTP server is based on ProFTPd version 1.2.4.

ProFTPd binary is /hsphere/shared/sbin/proftpd

There are two kinds of FTP:

  • User FTP: When a new user account is created, its user is provided with the FTP account and thus may download/upload files from/to the user's home directory (/hsphere/local/home/{user_name}) by FTP using his name and password.
  • Virtual (anonymous) FTP: a service provided only for dedicated IP accounts, enables to create virtual accounts to download/upload files from/to virtual account directories that are located within the account home directory, and provides anonymous access to the public directory.
 

User FTP

Log File

/hsphere/local/var/proftpd/logs/xferlog is the FTP log file. When a user uploads or downloads data, the corresponding record is made in the log file.

Configuration

FTP configuration directory is /hsphere/shared/config/ftpd.

/hsphere/shared/config/ftpd/proftpd.conf - FTP configuration file.

/hsphere/shared/config/ftpd/proftpd.conf.shared - FTP subaccounts configuration file.

Download/Upload Permissions

User can download and upload files from his document root directory (/hsphere/local/home/{user_name}/{domain_name}) after he logs in by FTP entering his login name ({user_name}) and password:
ftp user_name@domain_name

User FTP Traffic Calculation

Cron runs the /hsphere/shared/scripts/cron/ftp_anlz_user.pl script on everyday basis for collecting user FTP traffic.

ftp_anlz_user.pl parses the /hsphere/local/var/proftpd/xferlog FTP log file and writes FTP traffic statistics into the /hsphere/local/var/statistic/dd.mm.YYYY.gst.txt statistics files.

The TrafficLoader Java class utility is launched by cron to process FTP traffic statistics and load it to the system database. TrafficLoader also calls the /hsphere/shared/scripts/xfer_cat.pl to gzip outdated statistics files and move them into the loaded directory where they are stored as dd.mm.YYYY.gst.txt.gz archives.

 

Virtual FTP

Log File

For each virtual account, its own configuration file is located in the /hsphere/local/var/proftpd/logs/ directory. File format: {vhost_id}.ftp.log.

For example, wwwuser has virtual FTP enabled for the test.psoft virtual host, and vhost_id=1208 is the virtual host identifier. When the virtual FTP user test3 connects by FTP to the virtual host (ftp test3@test.psoft), he would be allowed to download and upload (if permissions to write are set to that virtual host) from /hsphere/local/home/wwwuser/1208 directory for downloads and /hsphere/local/home/wwwuser/1208/incoming directory for uploaded files. The log records would be added to /hsphere/local/var/proftpd/logs/1208.ftp.log

The same is true for anonymous FTP account. If this option is enabled for the test.psoft virtual host, any user may connect by FTP using anonymous login and any email as a password, and all his downloads would go to /hsphere/local/home/wwwuser/1208 directory, uploads to the /hsphere/local/home/wwwuser/1208/incoming subdirectory.

Configuration

Configuration directory is /hsphere/local/config/ftpd.

The sites subdirectory contains configuration files {vhost_id}.conf. These files are generat ed by H-Sphere when the new virtual FTP server is created, by parsing the /hsphere/local/home/cpanel/shiva/shiva-templates/common/ftp/ftp.config template where the structure of virtual host configuration is set.

The sites/index.conf file contains the inclusions of the {vhost_id}.conf files.

The sites/{vhost_id}.passwd files contain information on the following accounts:

- {web_user_name} - name of the web user under which account this virtual host is enabled. Thus, user may log on by his name and password to connect by FTP to the virtual host FTP directory.
- {anonymous} - if anonymous FTP is switched on, anonymous connection may be installed by the outsider.
- the list of virtual FTP users with their base64-encoded passwords.

/hsphere/local/config/ftpd/proftpd.conf - configuration file. It includes the user FTP configuration file and sites/index.conf file.

Virtual FTP Traffic Calculation

Cron runs the /hsphere/shared/scripts/cron/ftp_anlz.pl script daily to collect virtual FTP traffic statistics.

The script parses the virtual FTP log files and writes traffic statistics into the timestamp-named /hsphere/local/var/statistic/dd.mm.YYYY.ftp.txt statistics files.

The TrafficLoader Java class utility is launched by cron to process anonymous FTP traffic statistics and load it to the system database. TrafficLoader also calls the /hsphere/shared/scripts/xfer_cat.pl to gzip outdated statistics files and move them into the loaded directory where they are stored as dd.mm.YYYY.ftp.txt.gz archives.





User comments
No comments for this page.
Add comment


Home   Products   Services   Partners   Support   News   Contact   Forum
© 2020 psoft.net
All rights reserved.