Web Hosting:
Contents
- Overview
- Apache Modules
- cgi-bin
- Customized Error Pages
- Directory Index
- Logging Capabilities
- MySQL
- PERL
- PHP
- SSIs
- Additional Notes
Overview
Another feature distinguishing Nixsys PAUS from other free and commercial service providers is the wealth of options presented by the web hosting system. All users have access to MySQL®, PERL, PHP, Python, and SSIs. Users also have the ability to host subdomains on nixsyspaus.org, create .htaccess files, and have customized error logs and error documents. With the current configuration the system supports, almost anything is possible.
Apache Modules
The list below contains the Apache server modules that are supported by this system. If a module is not listed here, it's most likely not supported. Current list of supported modules is:
- core
- Core Apache HTTP Server features that are always available
- mod_access
- Provides access control based on client hostname, IP address, or other characteristics of the client request
- mod_actions
- This module provides for executing CGI scripts based on media type or request method
- mod_alias
- Provides for mapping different parts of the host filesystem in the URL redirection
- mod_asis
- Sends files that contain their own HTTP headers
- mod_auth
- User authentication using text files
- mod_auth_dbm
- Provides for user authentication using DBM files
- mod_auth_digest
- User authentication using MD5 Digest Authentication
- mod_cern_meta
- CERN httpd metafile semantics
- mod_cgi
- Execution of CGI scripts
- mod_deflate
- Compress content before it is delivered to the client
- mod_dir
- Provides for "trailing slash" redirects and serving directory index files
- mod_env
- Modifies the environment which is passed to CGI scripts and SSI pages
- mod_expires
- Generation of Expires and Cache-Control HTTP headers according to user-specified criteria
- mod_ext_filter
- Pass the response body through an external program before delivery to the client
- mod_headers
- Customization of HTTP request and response headers
- mod_include
- Server-parsed html documents (Server Side Includes)
- mod_log_config
- Logging of the requests made to the server
- mod_log_forensic
- Forensic Logging of the requests made to the server
- mod_mime
- Associates the requested filename's extensions with the file's behavior (handlers and filters) and content (mime-type, language, character set and encoding)
- mod_mime_magic
- Determines the MIME type of a file by looking at a few bytes of its contents
- mod_negotiation
- Provides for content negotiation
- mod_rewrite
- Provides a rule-based rewriting engine to rewrite requested URLs on the fly
- mod_setenvif
- Allows the setting of environment variables based on characteristics of the request
- mod_so
- Loading of executable code and modules into the server at start-up or restart time
- mod_ssl
- Strong cryptography using the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols
- mod_suexec
- Allows CGI scripts to run as a specified user and Group
- mod_unique_id
- Provides an environment variable with a unique identifier for each request
- mod_usertrack
- Clickstream logging of user activity on a site
- mod_vhost_alias
- Provides for dynamically configured mass virtual hosting
- prefork
- Implements a non-threaded, pre-forking web server
cgi-bin
All users, by default, have a cgi-bin directory created in their public webspace. This directory may be used to run PERL scripts, shell scripts, and other programs used to dynamically generate content. Users are reminded to be responsible when allowing CGIs to be publically accessible. Careful testing must be done to check whether or not a Denial of Service could be caused. There are many other sites hosted on this system, and they should not be comprimised for another's carelessness.
Customized Error Pages
Those hosting subdomains and / or domains on this system have the privilege to create customized error pages. This allows sites to have error messages configured to individual needs. If an error is encountered on a site hosted by this system and users choose not to customize their error pages, the client will be redirected to the default system-wide error document. Users who wish to utilize the functionality of customized error pages should send a request to the Webmaster: webmaster -AT- nixsyspaus -DOT- org.
Directory Index
This system does not support Apache's mod_autoindex, which "generates directory indexes, automatically, similar to the Unix ls command or the Win32 dir shell command". Users intending to have a directory accessible via a URL will need to create an index file in that directory and go from there. There is a precedence to the index file names. They are processed in this order:
- index.cgi
- index.shtml
- index.pl
- index.php
- index.py
- index.xml
- index.xhtml
- index.html
- index.wml
Logging Capabilities
Configuring logging functions on a per virtual host basis perfoms a few useful tasks. Most importantly, it allows users to debug errors in their web sites (without those errors being shown publicly - a good security feature), monitor site traffic, have more privacy, and many other things. However, this feature needs space under the user's web quota, which is good for the main web server (as its resources aren't being used), but can quickly spend the user's web quota if not monitored, rotated, and archived.
Two mechanisms are available for web log file rotation. One is a program, bundled with the The Apache HTTP Server, called rotatelogs. The other is a software package, installed from The NetBSD Packages Collection (pkgsrc), called cronolog. Users are encouraged to examine the documentation on both utilities before requesting logging capabilities for their web sites.
Logging is not enabled by default, as it requires space on the user's quota, but can be enabled / disabled at any time with a request to the administration. A list of archivers supported on this system can be found at the Archivers Section of this site. More information regarding logging functions is available on the Apache Log Files page.
MySQL
Please view the DBMS section of the website to understand how connections to the MySQL Database Server are made.
PERL
The path to PERL is /usr/pkg/bin/perl. All PERL scripts run as your userid and groupid and must have read and execute bits set for the owner and group (if the file's GID is equal to that of the webserver; i.e.: `chmod 750`) or all read and execute bits set (if the file's GID is not equal to that of the webserver; i.e.: `chmod 755`). Scripts do not need to be located in the user's cgi-bin directory, unless the file is being run as a CGI script.
PHP
On this system, PHP runs in Safe Mode.
Persistent connections to the MySQL
database server are not allowed. The full file system
path to included documents must be used instead of relative paths.
Otherwise, scripts will not be able to locate the included file. Using the
short open tag for PHP scripts is
currently disabled. This means scripts must begin like so:
<?php
as opposed to:
<?
Supported modules include:
- BCMath Arbitrary Precision Mathematics
- BZip2
- ctype
- date
- DOM
- Exif
- Filter
- GD
- GetText
- GMP
- hash
- iconv
- libxml
- Multibyte String Functions
- mcrypt
- MHASH
- MySQL Please write your code using the MySQLi module. In the future, we'd like to remove support for the older MySQL module.
- MySQLi
- OpenSSL
- PCRE
- POSIX
- Reflection
- Regex
- User-Space Object Overloading
- Session
- SystemV Semaphores and Shared Memory
- Shared Memory Functions
- SimpleXML
- SPL
- Tokenizer
- XML
- XMLReader
- XMLWriter
- XSLT
- Zip
- Zlib
There are also a handful of PEAR modules supported.
SSIs
Files intended for use as SSIs must have an extension of .shtml to be parsed by the server. These files cannot run the "exec" command.
Additional Notes
MySQL is a registered trademark of MySQL AB in the United States, the European Union, and other countries.

