Mar 19 2010

XML-RPC, wylaczenie gzipa w Apache dla IE6

W aplikacjach klient-serwer z konektem po XML-RPC, natrafimy na problem komunikacji, gdy klient uzywa przegladarki IE6. Wiec. Jezeli gzip’em sterujemy bezposrednio z Javki to przy generowaniu response musimy go wylaczyc. Jezeli Tomcat nakryty jest Apachem to nastepujaca dyrektywa jest konieczna aby klient stworzony, na przyklad we Flashu mogl poprawnie odebrac odpowiedz.

BrowserMatch \bMSIE\s6 no-gzip gzip-only-text/html

Oczywiscie wlaczamy mod deflate w Apache


Dec 10 2009

Apache i Tomcat – konektor AJP

Bylo juz o konfiguracji kontenera Apache-Tomcat, pojawil sie tez opis mixa Apache-PHP-MySQL, pozostaje jednak, jeszcze pare innych waznych konfiguracji, tj. Tomcat Workers (load balancing) czy konektor AJP, ktorym dzis sie zajmiemy.

W skrocie, konektor AJP sluzy do polaczenia dwoch punktow webowych protokolem AJP, np. serwer Apache na jednej maszynie oraz Tomcat na drugiej. Mozemy ukryc w ten sposob serwer Tomcat przed bezposrednim dostepem z zewnatrz – na przyklad.

1. Instalujemy Apache (na maszynie 192.168.1.1)

czlowiek@maszyna:~$ sudo apt-get install apache2

Domyslna instalacja na apache2-mpm-worker

czlowiek@maszyna:~$ apache2ctl -V
Server version: Apache/2.2.12 (Ubuntu)
Server built:   Nov 12 2009 22:51:51
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   32-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
...

nie dziala najlepiej w konektorze AJP, wiec instalujemy apache2-mpm-prefork, ktory jest moze mniej wydajny, ale za to bardziej stabilny.

2. Instalujemy apache2-mpm-prefork

czlowiek@maszyna:~$ sudo apt-get install apache2-mpm-prefork

Tak jest poprawnie

czlowiek@maszyna:~$ apache2ctl -V
...
Server MPM:     Prefork
...
 -D APACHE_MPM_DIR="server/mpm/prefork"
...

3. Wlaczamy modul proxy_ajp

czlowiek@maszyna:~$ sudo a2enmod proxy_ajp

4. Konfigurujemy modul

czlowiek@maszyna:~$ sudo nano /etc/apache2/mods-enabled/proxy.conf

wlaczamy requesty i zmieniamy prawa

ProxyRequests On
Allow from all

5. Konfigurujemy konekta, otwieramy konfig apache

czlowiek@maszyna:~$ sudo nano /etc/apache2/sites-enabled/000-default

i dopisujemy linie

ProxyPass /examples/servlets/ ajp://192.168.1.5:8009/examples/servlets/

w wezle

<VirtualHost *:80>

gdzie adres ip 192.168.1.5 bedzie maszyna z zainstalowanym serwerem Tomcat.

Wiec, na drugiej maszynie konfigurujemy Apache-Tomcat. Tym razem pobieramy gotowa paczke – jezeli jednak instalacja, to zapraszam tutaj.

6. Pobieramy najnowsza paczke (na maszynie 192.168.1.5)

czlowiek@maszyna2:~$ sudo -i
root@maszyna2:~$ wget http://ftp.tpnet.pl/vol/d1/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz

7. Ekstraktujemy i kopiujemy

root@maszyna2:~$ tar xzvf apache-tomcat-6.0.20.tar.gz -C /tmp
root@maszyna2:~$ mkdir /usr/local/tomcat6 && cp -R /tmp/apache-tomcat-6.0.20/* /usr/local/tomcat6

8. Testujemy Tomcata

root@maszyna2:~$ wget -q http://localhost:8080 -O /tmp/atest && cat /tmp/atest | grep -i "Apache Tomcat"
    <title>Apache Tomcat</title>
...

lub wpisujemy adres (http://localhost:8080) w ulubionej przegladarce

tomcat-start-page

9. Konfigurujemy Tomcata – otwieramy server.xml i upewniamy sie, ze ponizszy konektor jest odkomentowany.

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Teoretycznie wszystko dziala poprawnie, ale na wszelki wypadek restarty i testy

root@maszyna2:~$ /etc/init.d/apache2 restart
root@maszyna2:~$ /usr/local/tomcat6/bin/shutdown.sh
root@maszyna2:~$ /usr/local/tomcat6/bin/startup.sh

Po wpisaniu adresu http://192.168.1.1/examples/servlets/ dostaniemy strone z przykladami servletow na serwerze Tomcat z maszyny o ip 192.168.1.5

Oczywiscie jezeli port 8009/tcp na maszynie 192.168.1.5 jest zamkniety to trzeba go otworzyc dla polaczen z serwerem Apache zainstalowanym na maszynie 192.168.1.1


Oct 3 2009

Konfiguracja Apache-Tomcat na Ubuntu

Jak juz jestem w temacie konfiguracji srodowisk programistycznych, to moze cos o kontenerze Tomcat (Jakarta), jako, ze jest najczesciej wykorzystywany do uruchamiania aplikacji webowych tworzonych w technologi Java Servlet i JSP.

1. Instalujemy Javke

czlowiek@maszyna:~$ sudo apt-get install sun-java6-jdk

2. Instalujemy Tomcat’a

czlowiek@maszyna:~$ sudo apt-get install tomcat6

3. Testujemy Tomcat’a

czlowiek@maszyna:~$ wget -q http://localhost:8080 -O /tmp/atest && cat /tmp/atest | grep -i "it works"

jak dostaniemy cos podobnego: <h1>It works !</h1> to serwer dziala.

4. Teraz instalujemy przykladowe aplikacje z repo

czlowiek@maszyna:~$ sudo apt-get install tomcat6-examples
czlowiek@maszyna:~$ sudo /etc/init.d/tomcat6 restart

i klikamy: http://localhost:8080/examples/.

5. Mozemy tez sciagnac przykladowa aplikacje i zainstalowac (skopiowac) ja recznie w domyslnym katalogu aplikacji webowych

czlowiek@maszyna:~$ wget http://tomcat.apache.org/tomcat-6.0-doc/appdev/sample/sample.war -O /tmp/sample.war && sudo cp /tmp/sample.war /var/lib/tomcat6/webapps/

po wklepaniu http://localhost:8080/sample/ w przegladarce powinnismy dostac cos takiego:

tomcat sample

lub takiego: <h1>Sample “Hello, World” Application</h1> z konsoli:

czlowiek@maszyna:~$ wget -q http://localhost:8080/sample/ -O /tmp/atest && cat /tmp/atest | grep -i "h1"

To tyle w skrocie na temat konfiguracji Apache-Tomcat na Ubuntu. Jednakze zapraszam na strone glowna projektu Tomcat.


Oct 3 2009

Konfiguracja Apache, PHP, MySQL na Ubuntu

Dzisiaj, wpisik na temat konfiguracji Apache do wspolpracy z interperterem PHP i bazka MySQL. Dla poczatkujacych koderow PHP jak znalazl.

1. Instalujemy Apache

czlowiek@maszyna:~$ sudo apt-get install apache2

2. Testujemy Apache

czlowiek@maszyna:~$ wget -q http://localhost -O /tmp/atest && cat /tmp/atest

jak dostaniemy cos podobnego: <html><body><h1>It works!</h1></body></html> to serwer dziala.

3. Instalujemy PHP, moda do Apache i konektor do MySQL’a

czlowiek@maszyna:~$ sudo apt-get install php5 libapache2-mod-php5 php5-mysql

4. Testujemy PHP, na poczatek tworzymy index.php

czlowiek@maszyna:~$ sudo nano /var/www/index.php

wklepujemy to

<?php echo("It works!"); ?>

CTRL+O, CTRL+X, restartujemy Apache (w przeciwnym wypadku serwer poda nam ten plik, cale szczescie nie ma w nim hasel ;) )

czlowiek@maszyna:~$ sudo /etc/init.d/apache2 restart

pobieramy kontent

czlowiek@maszyna:~$ wget -q http://localhost/index.php -O /tmp/atest && cat /tmp/atest

jak dostaniemy cos podobnego: It works! to php dziala.

5. Teraz czas na MySQL – instalujemy bazke

czlowiek@maszyna:~$ sudo apt-get install mysql-server-5.1

kiedy instalator poprosi o haslo, podajemy unikalne 8)

6. Testujemy MySQL’a

czlowiek@maszyna:~$ sudo nano /var/www/dbtest.php

wklejamy to

<?php
mysql_connect('localhost', 'root', 'jakiessupertajnehaslo');
print_r(explode('  ', mysql_stat()));
?>

w wyniku powinnismy dostac status serwera.

7. I na koniec kompleksowy test :)

czlowiek@maszyna:~$ sudo nano /var/www/phpinfo.php

wklejamy to

<?php phpinfo(); ?>

i po wpisaniu w przegladarce http://localhost/phpinfo.php dostaniemy pelny raport systemu.

Teraz mozemy juz zaczynac zabawe z PHP, na poczatek polecam manual z php.net.