Instalace PHP4 a SSL na Apache 1.3.X

21. 12. 2000
Doba čtení: 4 minuty

Sdílet

V následujícím článku si povíme něco málo o instalaci podpory SSL a PHP4 pro Apache ze zdrojových kódů. Modul PHP nakonfigurujeme podle našich potřeb, přidáme podporu pro tři nejpoužívanější free SQL servery a podporu Javy. V závěru se zmíníme o SSL certifikátech a certifikačních autoritách.

Nejjednodušší případ nastane, pokud na svém systému vůbec nemáte webový server. Pokud používáte systém Red Hat Linux, stačí nainstalovat Apache s podporou SSL. Jeho poslední aktuální verze v době psaní tohoto článku je 1.3.14 (mod_ssl 2.7.1) a je k mání jak pro 386 tak pro 686.

Pokud máte jiný systém, zkuste najít ten správný instalační balíček. Pro ostatní systémy nebo pokud máte již Apache nainstalován stačí stáhnout pouze DSO modul mod_ssl a doinstalovat jej. Když binárky pro váš systém nenajdete, musíte kompilovat.

Přesto že je kompilace o něco pracnější než instalace binárních balíků, získáte tím řadu výhod z nichž asi jedna z nejdůležitějších je, že pokud jste šťastnými majiteli některých rychlejších procesorů (např. Intel Pentium), tak vámi vytvořené programy budou optimalizovány právě pro ten váš (na některé platformy se binárky shánějí opravdu těžko). Je pravda, že takový webový server zkompilovaný pro 386ku a pro Pentium nebude nijak výrazně rychlejší, ale například u SSL modulu kde jsou již složité výpočty již nějaký ten výpočetní nárůst výkonu můžete sledovat.

Postup instalace je jednoduchý. Nejprve nainstalujeme OpenSSL a Apache (nejlépe s podporou DSO) a nakonec vlastní DSO moduly moc_php4 a mod_ssl. OpenSSL a Apache můžeme nainstalovat z binárek nebo ze zdrojových kódů (pokud budete přeci jenom Apache kompilovat, nezapomeňte přidat podporu DSO – dynamicky sdílených so knihoven). Pro ty, kteří budou SSL kompilovat ručně uvádím příklad konfigurace, kompilace a instalace krok za krokem. Kompilaci Apache zde uvádět nebudu, protože je to zdlouhavé a není na to ani čas ani místo. Místo toho postupujte podle dokumentace.

# extrahujeme stazene baliky (napr. do /usr/src)
$ gzip -d -c apache_1.3.x.tar.gz | tar xvf -
$ gzip -d -c mod_ssl-2.7.x-1.3.x.tar.gz | tar xvf -
$ gzip -d -c openssl-0.9.x.tar.gz | tar xvf -

# instalace OpenSSL
$ cd /usr/src/openssl-0.9.x
$ ./configure
$ make
$ make install

$ cd ../mod_ssl-2.7.x-1.3.x
$ ./configure --with-apxs
# Pokud mate apxs ci SSL na nejake jine ceste,
# musite ji zadat, napr.: --with-ssl=/usr/local/ssl
$ make
$ make install
$ make distclean

Modul SSL se právě nainstaloval do Apache (stejně tak jak když nainstalujete binárku z instalačního balíčku). Nyní přistoupíme k vlastní kompilaci PHP. Tuto část musí provést jak ti, kteří Apache kompilovali, tak ti, kteří použili binární distribuci. V následujícím příkladu připravíme PHP na přístup k databázím MySQL a PostgreSQL, ale vy si samozřejmě nakonfigurujete PHP dle vlastní libosti.

#extrakce baliku
$ gzip -d -c php-4.0.x.tar.gz | tar xvf -

# konfigurace a kompilace DSO modulu PHP4 (MySQL a PgSQL jako so moduly)
$ cd /usr/src/php-4.0.x
./configure
  --with-apxs --with-pgsql=shared
  --with-mysql=shared --with-xml --enable-debugger
  --with-gd --with-java=/java/jdk/ibm/1.3.0/
  --with-openssl --with-ldap --enable-track-vars
$ make
$ make install
$ cd ..

Rád bych se ještě podělil s mými poznatky o kompilaci podpory pro databázi Sybase (jejíž verze 11.0.9 byla vypuštěna zdarma). Databáze Sybase je vysoce kvalitní relační SQL databáze a je velmi vhodná pro rozsáhlé portály a jiné webové aplikace, kde jsou masivní updaty a inserty (a samozřejmě také selecty) na denním pořádku. Pokud budete chtít tuto databázi s PHP použít, musíte kompilovat s parametrem –with-sybase-ct=/cesta/k/sybase. V adresáři /cesta/k/sybase musíte mít nainstalovány klientské CT knihovny a hlavičkové soubory. A tady je kámen úrazu – ve verzi 10.x.x byly tyto knihovny dodávány přímo s vlastní databází. Pokud jste chtěli kompilovat PHP na stroji, kde Sybase neběží, mohli jste si překopírovat adresáře lib a include a všechno fungovalo. Ovšem při upgradu na verzi 11.0.9 jsem zjistil, že tyto knihovny v distribuci chybějí a musel jsem použít ty z „desítky“. Na webu Sybase.com jsem nemohl CT knihovny pro „jedenáctku“ najít. Pokud má někdo lepší řešení jak problém řešit, podělte se o něj s námi v diskuzním fóru.

ict ve školství 24

SSL se konfiguruje jako každý jiný modul. Má mnoho parametrů, které jsou popsány v dokumentaci. Co nyní musíme vytvořit je certifikát, který musí být podepsán certifikační autoritou (Verisign, IKS GmbH, u nás například ICA…). Poplatky jsou různé – veliké firmy typu Verisign jsou sice poněkud dražší, ale za to jsou přímo podporovány (zabudovány) v nejrozšířenějších prohlížečích a uživatelé si nemusí certifikáty instalovat. Například u ICA stojí certifikát na půl roku pro celý www server tisíc korun. Můžete si také sami vytvořit vlastní certifikační autoritu a certifikát si podepsat sami. Vše se děje za pomoci příkazu openssh, jak je popsáno v dokumentaci. Dejte si ale pozor, server nemůže být sám sobě certifikační autoritou – musí to být jiná organizace nebo jiný server! Podepsání CSR žádosti jinak neprojde. Bližší informace můžete získat na stránkách ICA.CZ.

V příštím článku ještě přiinstalujeme JSP/Servlet engine Tomcat a trošku se seznámíme se Servlety a JSP (Java Server Pages) na Apachi. Přeji všem linuxákům šťastné a veselé Vánoce a Nový Rok!