2. Prerequisites

2.1. General

To be continiued

2.2. Distribution specific

2.2.1. SuSE Linux

2.2.1.1. SuSE Linux 7.1 (maybe applicable to other distributions)

SuSE 7.1 and maybe other distributions have problems to build apache 1.3.19 (1.3.20 and later are fixed) with mod_rewrite

To correct this misbehaviour create a symlink:

cd /usr/include/db1
ln -s ../ndbm.h ndbm.h

In SuSE 7.2 and later this issue is fixed

2.3. OpenSSL

2.3.1. What is OpenSSL

Quoting www.openssl.org

The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the OpenSSL toolkit and its related documentation.

OpenSSL is based on the excellent SSLeay library developed by Eric A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style licence, which basically means that you are free to get and use it for commercial and non-commercial purposes subject to some simple license conditions.

From authors poinns of view, its the basic to build a secure Unix-Server with Opensource Software, its needed for all major products like mod_ssl, OpenSSH and lot of other stuff that provides encrypted Data-processing

OpenSSL provides the libraries and include-files needed be the products mentioned above and also provides a Application to build Server and client-Certificates.

2.3.2. Download the source

Origin-Site http://www.openssl.org

2.3.3. Building and installing

cd /usr/local
tar -xvzf openssl-0.9.6b.tar.gz
 
cd openssl-0.9.6b
 
./config
 
make
make test
make install

2.4. MySQL

2.4.1. What is MySQL

Mysql is a very fast, powerful and very nice to handle Database.

Especially for Webapplication where most datas are read, any little written, MySQL is the first choice. The newest Version is also transaction-capable. If you plan a Webapplication, that writes a lot of Data into the DB, maybe Postgres is better for you.

Here you need the C-API from Mysql for compiling php if you wish MySQL-Support in php. Its also needed if you want to use mod_authmysql, See Section 3.7 for more information

2.4.2. Download

Origin-Site: http://www.mysql.com/downloads/

2.4.3. Building and installing


cd /usr/local
tar -xvzf mysql-3.23.43.tar.gz 
cd mysql-3.23.43

./configure 
--prefix=/usr/local/mysql \ 
--enable-assembler \ 
--with-innodb

make 
make install 

/usr/local/mysql/bin/mysql_install_db
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf 
ldconfig

For security-improvement add a mysql-user on your system i.e. "mysql", then


chown -R mysql /usr/local/mysql/var

and change the line user=root to user=mysql in the file /usr/local/mysql/bin/safe_mysqld

you may wish to start mysql automatically at boottime, copy /usr/local/mysql/share/mysql/mysql.server to /etc/init.d/ (or wherever your rc-script are located) and create the corresponding symbolic link in the runlevel directories.

2.5. Building mm

2.5.1. What is mm

Quoting www.engelschall.com

The MM library is a 2-layer abstraction library which simplifies the usage of shared memory between forked (and this way strongly related) processes under Unix platforms. On the first layer it hides all platform dependent implementation details (allocation and locking) when dealing with shared memory segments and on the second layer it provides a high-level malloc(3)-style API for a convenient and well known way to work with data-structures inside those shared memory segments.

From the authors point of view:

Its a common lib that enables Unix-Programers to simplify shm accesses. Its used by a lot products i.e. PHP and mod_ssl

Since the author is not a programmer, he is unable to explain the exact usage of that stuff

2.5.2. Download

Origin Site: http://www.engelschall.com/sw/mm/mm-1.1.3.tar.gz

2.5.3. Building and installing

cd /usr/local
 
tar -xvzf mm-1.1.3.tar.gz
 
cd mm-1.1.3
 
./configure
make
make test
make install