Instalace Apache, Apache JServ, PHP a MOD_SSL


K vašim pokusům s dynamickými WWW stránkami budete potřebovat server Apache s podporou PHP, Java Servlets a různých databázových systémů. Zakompilovat tohle vše do Apache představuje pro začátečníky poměrně neprůhlednou alchymii. Tento stručný návod jsem proto napsal z úmyslem pomoci začínajícím alchymistům ;-)

Nejdříve si obstaráme potřebné balíky z následujících adres:

Apache JServ vyžaduje přesně verzi 2.0 balíku Java Servlet Development Kit. Ten najdete na http://www.javasoft.com/products/.

Adresář, ve kterém teď smícháme vše dohromady, by měl mít zhruba následující obsah:

-rw-r--r--   1 max      users      770638 Dec 18 09:51 ApacheJServ-1_1_2.tar.gz
-rw-r--r--   1 max      users     1813581 Nov  1 11:35 apache_1.3.14.tar.gz
-rw-r--r--   1 max      users      202651 Dec 18 18:03 jsdk_2.0.tar.gz
-rw-r--r--   1 max      users      748253 Nov  1 11:35 mod_ssl-2.7.1-1.3.14.tar.gz
-rw-r--r--   1 max      users     2086131 Nov  1 11:36 openssl-0.9.6.tar.gz
-rw-r--r--   1 max      users     2225976 Nov  1 11:36 php-4.0.3pl1.tar.gz
Následující ukázky předpokládají instalaci všech balíků do adresáře /opt. Pokud je chcete nainstalovat jinam, uveďte patřičnou cestu.

Začneme s rozbalováním:


tar zxvf openssl-0.9.6.tar.gz 
tar zxvf apache_1.3.14.tar.gz
tar zxvf ApacheJServ-1_1_2.tar.gz
tar zxvf mod_ssl-2.7.1-1.3.14.tar.gz
tar zxvf php-4.0.3pl1.tar.gz
Nejdříve zkompilujeme a nainstalujeme OpenSSL:

cd openssl-0.9.6
./config --prefix=/opt/openssl
make
make test
make install
Jako první nakonfigurujeme SSL modul:

cd mod_ssl-2.7.1-1.3.14
./configure --with-apache=../apache_1.3.14
Necháme Apache vytvořit soubory Makefile a Configuration - ty bude potřebovat PHP. Žádné parametry zde zatím neuvádějte.

cd ../apache_1.3.14
./configure 
Teď nakonfigurujeme PHP. PHP je implicitně kompilováno s podporou MySQL, takže pokud si ji nepřejete, použijte parametr --without-mysql:

cd ../php-4.0.3pl1

./configure --with-apache=../apache_1.3.14 \
            --prefix=/opt/php \
            --enable-track-vars \
            --with-pgsql=/opt/postgres7 \
            --with-interbase=/opt/interbase \
            --with-oci8=/opt/oracle8i \
            --without-mysql
S podporou MySQL:

./configure --with-apache=../apache_1.3.14 \
            --prefix=/opt/php \
            --enable-track-vars \
            --with-pgsql=/opt/postgres7 \
            --with-interbase=/opt/interbase \
            --with-oci8=/opt/oracle8i \
            --with-mysql=/opt/mysql
PHP zkompilujeme a nainstalujeme:

make
make install
Pokud chceme navíc přikompilovat Apache JServ, zkonfigurujeme jej nyní. Nejdříve však musíme do nějakého adresáře (např. /opt/jsdk) rozbalit balík JSDK 2.0. Konfigurace:

cd ../ApacheJServ-1.1.2
./configure --with-apache-src=../apache_1.3.14 \
            --prefix=/opt/jserv \
            --with-jdk-home=/usr/local/java \
            --with-JSDK=/opt/jsdk/lib/jsdk.jar \
            --enable-EAPI
Kompilace a instalace:

make
make install
Teď přichází na řadu SSL modul. Jeho konfiguraci provedeme spolu s konfigurací Apache takto:

cd ../apache_1.3.14
SSL_BASE=../openssl-0.9.6
./configure --prefix=/opt/apache \
            --enable-module=ssl \
            --activate-module=src/modules/php4/libphp4.a \
            --activate-module=src/modules/jserv/libjserv.a
Modul zkompilujeme spolu s Apache serverem:

make
Vytvoříme si vlastní certifikát (vyžaduje jej MOD_SSL):

make certificate
Pokud budete chtít Apache server spouštět automaticky při startu, zvolte při vytváření certifikátu odpověď 'N' na následující výzvu:

Encrypt the private key now? [Y/n]: n
Pak ovšem nezapomeňte nastavit přístupová práva k souborům v adresáři /opt/apache/conf/ssl.key tak, aby nikdo z uživatelů nemohl přečíst privátní klíč serveru. Pokud zvolíte 'Y', pak je privátní klíč zašifrován pomocí hesla, které musíte zadat při spouštění Apache.

Teď už můžeme Apache server konečně nainstalovat:


make install
Konfigurace je již pracnější s ohledem na to, jak si přejete Apache přizpůsobit k obrazu svému. Pokud jste netrpěliví nebo jenom líní, pak k celkové funkčnosti stačí zadat tyto dva příkazy:

echo 'AddType application/x-httpd-php .php' >> /opt/apache/conf/httpd.conf
echo 'Include /opt/jserv/etc/jserv.conf' >> /opt/apache/conf/httpd.conf
... a Apache spustit:

/opt/apache/bin/apachectl startssl
Příklad mojí pokusné konfigurace naleznete zde v souboru config.tgz
Příklady PHP skriptů:
Příklad servletu: Pokud hodláte v servletech používat JDBC (viz demo), musíte JServeru sdělit cestu na patřičný JDBC driver. Tu nastavíte v souboru /opt/jserv/etc/jserv.properties přídáním řádku (příklad pro PostreSQL a Oracle8i):
wrapper.classpath=/opt/postgres7/lib/postgresql.jar
wrapper.classpath=/opt/oracle8i/jdbc/lib/classes12_01.zip
wrapper.classpath=/opt/oracle8i/jdbc/lib/nls_charset12_01.zip

Max Otta, 2000