Opis instalacji serwera Apache (w wersji 1.3.x) z dodatkowymi modułami: mod_ssl , mod_perl, mod_bandwidth, mod_fastcgi, mod_throttle, php + standardowe moduły dostępne w pakiecie apache. 0. ściągamy potrzebne pakiety (wg własnych potrzeb) openssl-0.9.6d.tar.gz mod_ssl-2.8.10-1.3.26.tar.gz apache_1.3.26.tar.gz mod_fastcgi-2.2.12.tar.gz mod_bandwidth mod_perl-1.26.tar.gz php-4.2.2.tar.gz Apacha można zainstalować na dwa sposoby : a) moduły statycznie wkompilowane w httpd b) dynamicznie załączane moduły w postaci zewnętrznych plików (.so) W pierwszej metodzie w wyniku dostajemy sporych rozmiarów plik httpd, który w sobie zawiera wszystkie moduły. Wadą tego rozwiązania jest uciążliwy update (lub dodanie) któregoś z modułów - trzeba przekompilować całego apacha od nowa. Dużo wygodniejsza jest motoda dynamicznego dołączania modułów - tak właśnie działaja apache instalowany z RedHatowych RPM-ek. Poniżej opisałem po krótce sposób instalacji apacha wraz z modułami dołączanymi dynamicznie, a na końcu przykład statycznej kompilacji. 1. instalujemy OpenSSL-a (chyba że już mamy to można przejść do pkt 2) [server]# gzip -d -c openssl-0.9.6d.tar.gz | tar xvf - [server]# cd openssl-0.9.6d [server]# ./config [server]# make [server]# make install (domyślnie w /usr/local/ssl) 2. rozpakowujemy źródła Apacha [server]# gzip -d -c apache_1.3.26.tar.gz | tar xvf - 3. przygotowujemy mod_ssl'a [server]# gzip -d -c mod_ssl-2.8.10-1.3.26.tar.gz | tar xvf - [server]# cd /mod_ssl-2.8.10-1.3.26 [server]# ./configure --with-apache=../apache_1.3.26 4. przygotowanie do kompilacji Apacha [server]# cd /apache_1.3.26 [server]# CFLAGS="-DEAPI" [server]# export CFLAGS [server]# SSL_BASE=../openssl-0.9.6d ./configure --prefix=/home2/httpd \ > --enable-module=ssl \ > --enable-shared=ssl \ > --enable-shared=max \ > --enable-module=all \ > --enable-module=so [server]# make [server]# make certificate [odpowiadamy 'N' na ostatnie pytanie] [server]# make install 5. sprawdzamy czy da się już uruchomić Apacha [server]# /home/httpd/bin/apachectl start Serwer powinien uruchomić się w domyślnej konfiguracji. W tym miejscu może wystąpić błąd z niektórymi modułami. Jeśli tak, to trzeba upewnić się, że przed make'iem ustawiliśmy CFLAGS="-DEAPI". 6. instalacja pozostałych modułów (nie wchodzących w skład zródeł Apache'a) - mod_perl: [server]# cd /mod_perl-1.26 [server]# perl Makefile.PL \ > USE_APXS=1 \ > WITH_APXS=/home2/httpd/bin/apxs \ > EVERYTHING=1 \ [server]# make && make install - mod_fastcgi: [server]# cd /mod_fastcgi-2.2.12/ [server]# /home2/httpd/bin/apxs -o mod_fastcgi.so -c *.c [server]# /home2/httpd/bin/apxs -i -a -n fastcgi mod_fastcgi.so - mod_throttle: [server]# /home2/httpd/bin/apxs -c mod_throttle.c [server]# /home2/httpd/bin/apxs -i -a -n 'throttle' mod_throttle.so - mod_bandwidth: [server]# cd /mod_bandwidth [server]# /home2/httpd/bin/apxs -c mod_bandwidth.c [server]# /home2/httpd/bin/apxs -i -a -n 'bandwidth' mod_bandwidth.so dla pozostałych analogicznie 7. Wsparcie dla PHP - ściągamy aktualne źródła PHP [php-4.2.2.tar.gz] [server]# gzip -d -c php-4.2.2.tar.gz | tar xvf - [server]# cd /php-4.2.2 [server]# ./configure --prefix=/usr/local/php-4.2.2 \ > --with-apxs=/home2/httpd/bin/apxs \ > --with-pgsql \ > --with-mysql \ > --with-COS_TAM_JESZCZE [server]# make && make install I to wszystko ... W katalogu /home2/httpd/bin mamy właściwą binarkę apacha ~400 kB, a w /home2/httpd/libexec zewnętrzne moduły. Aby sprawdzić co dokładnie zawiera nasz apache można dopisać do httpd.conf : ExtendedStatus On SetHandler server-status order deny,allow deny from all allow from naszhost.naszadomena.pl Po przeładowaniu serwera (apachectl restart) mamy szczegółowe info o naszej konfiguracji pod adresem http://adres.serwera/server-status ------------- Instalację statyczną przeprowadza się mniej więcej tak : 1. rozpakowujemy źródła apacha i kopiujemy do src/modules/ zewnętrzne moduły (pliki .c) [server]# gzip -d -c apache_1.3.26.tar.gz | tar xvf - cp /mod_bandwidth/mod_bandwidth.c /apache_1.3.26/src/modules/standard/mod_bandwidth.c [server]# cp -r /mod_fastcgi-2.2.12/ /apache_1.3.26/src/modules/mod_fastcgi/ 2. rozpakowujemy źródła PHP i ustalamy co ma być wkompilowane (nie zapomnij czegoś bo będziesz musiał się wracać !) [server]# gzip -d -c php-4.2.2.tar.gz | tar xvf - [server]# cd /php-4.2.2 [server]# ./configure --with-pgsql --with-mysql --with-apache=../apache_1.3.26 [server]# make && make install 3. przygotowanie do kompilacji apacha [server]# cd /apache_1.3.26 [server]# ./configure --prefix=/home2/httpd \ > --activate-module=src/modules/standard/mod_alias.c \ > --activate-module=src/modules/standard/mod_rewrite.c \ > --activate-module=src/modules/standard/mod_userdir.c \ > --activate-module=src/modules/standard/mod_bandwidth.c \ > --activate-module=src/modules/standard/mod_cgi \ > --activate-module=src/modules/standard/mod_asis.c \ > --activate-module=src/modules/standard/mod_expires.c \ > --activate-module=src/modules/standard/mod_access.c \ > --activate-module=src/modules/standard/mod_headers.c \ > --activate-module=src/modules/standard/mod_env.c \ > --activate-module=src/modules/standard/mod_usertrack.c \ > --activate-module=src/modules/fastcgi/libfastcgi.a \ > --activate-module=src/modules/php4/libphp4.a [server]# make && make install Jeśli ./configure i make nie \"wyłożą się\" w którymś miejscu, to po make install mamy gotowego apacha w /home2/httpd/ Zauważ, że plik /home2/httpd/bin/httpd jest znacznie większy niż w przypadku modułów dołączanych dynamicznie. Jeżeli zapomniałeś czegoś dodać przy konfiguracji PHP (lub innego modułu), to niestety musisz wrócić na początek ;-((( Tak czy inaczej mając gotowego apacha możesz go teraz z_tarować i próbować uruchamiać na innych serwerach. O ile architektura sprzętowa jest taka sama i ten sam system (GLIBC) to nie będzie żadnego problemu z uruchomieniem. Niektóre moduły (o ile dobrze pamiętam z mod_layoutem był problem) nie chcą się instalować przez apxs-a. Wówczas należy użyć konfiguracji mieszanej, tzn. wszystkie moduły instalujemy przez apxs-a, ale na początku kompilacji apacha dodajemy statycznie moduł, z którym były problemy (przy ./configure na końcu dodajemy --activate-module=src/modules/modulu.c). 11.08.2002 - ^marek/(o)\rojcanet/(-)pl$