niedziela, 24 maja 2009

Odwrotny tunel ssh

Na zdalnym serwerze, ktory np. jest za NAT'em albo nie ma wystawionej danej usługi na świat, wywołujemy polecenie łącząc się z naszym serwerem z publicznie dostępnym SSH:

sshpass -p NASZEHASLO ssh -f -N -R 10002:localhost:22 UZYTKOWNIK@NASZSERWER.PL -p 60022 &

dzięki czemu na naszym serwerze na porcie 10002 mamy usługę z portu 22 ze zdalnego serwera, która normalnie jest nieosiągalna.

I jeszcze pomocny przykład przekierowania:
ssh -f -N -R 13128:localhost:3128 user@zdalny.serwer -p 60022

czwartek, 21 maja 2009

INET QoS - przygotowanie systemu dla routera - kompilacja kernela, iptables, iproute

Odnośnie kompilacji jądra, fajny materiał jest pod adresem:
http://www.eioba.pl/a69850/kompilacja_jadra_linux

Dodatkowa pomoc:
http://jarekm3.ovh.org/index.php?menu=Code_maturity_level_options&grupa=0&strona=opis_konfiguracji.php&odw=1
http://www.linuxbox.pl/index.php?go=kernel

Poniższe przerobione z sukcesem na Debianie (wg http://dziennik-it.blogspot.com/2009/05/instalator-debiana-na-pamieci-flash.html)

apt-get update
apt-get upgrade
apt-get install mc
apt-get install ssh

Odtąd już można zdalnie przez ssh:

apt-get install bzip2 gcc g++ build-essential kernel-package libncurses5-dev
apt-get install zlib1g-dev libssl-dev
apt-get install dh-make
apt-get install fakeroot
apt-get install bison
apt-get install flex
apt-get install libdb4.6++-dev
apt-get install pciutils
apt-get install autotools-dev

cd /root

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.7.tar.bz2
wget http://www.inet.one.pl/download/system/system-source-2.6.24.7-1.tar.gz

cp linux-2.6.24.7.tar.bz2 /usr/src

cd /usr/src
tar -jxvf linux-2.6.24.7.tar.bz2
ln -s linux-2.6.24.7 linux

cd /root
cp system-source-2.6.24.7-1.tar.gz /usr/src
cd /usr/src
tar xvf system-source-2.6.24.7-1.tar.gz
cp system-source-2.6.24.7-1/kernel/kernel-2.6.24.7.diff /usr/src/linux

cd /usr/src/linux

patch -p1 < kernel-2.6.24.7.diff

cd /usr/src/
cp system-source-2.6.24.7-1/kernel/.config /usr/src/linux

cd /usr/src/linux
make menuconfig

- - - Load alternative configuration file -> .config

- - - General setup ---> Prompt for development and/or incomplete code/drivers (odznaczone)

- - - Processor type and features -> Core2 / newer XEON
- - - Device Drivers -> Multiple devices driver support (RAID and LVM) -> wszystkie zaznaczone w podgałęziach
- - - Serial ATA (prod) and Parallel ATA (experimental) drivers --->
- - - - - - AHCI SATA support
- - - - - - Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
- - - Character devices ---> IPMI top-level message handler ---> zaznaczone wszystkie jak leci
- - - Device Drivers -> I2C support -> wszystkie jak leci + chyba że wyraźnie nie dotyczą Intela
- - - Device Drivers -> HID Devices ---> wszystkie jak leci
- - - Device Drivers -> DMA Engine support ---> wszystkie jak leci

- - - General setup ---> Prompt for development and/or incomplete code/drivers (zaznaczone)

- - - Networking -> Networking Options -> Network packet filtering framework (Netfilter) -> wszystkie gałęzie
co się da jako moduł / reszta na *

make
make-kpkg --revision 1.0 --append-to-version -router -initrd --initrd kernel_image
cd ..
dpkg -i linux-image-2.6.24.7-router_1.0_i386.deb

reboot

cd /usr/src/system-source-2.6.24.7-1/iptables/iptables-1.4.0
make clean
make
dh_make -s -f ../iptables-1.4.0.tar.bz2
dpkg-buildpackage -rfakeroot
dpkg -i ../iptables_1.4.0-1_i386.deb

cd /usr/src/system-source-2.6.24.7-1/iproute2/iproute2-2.6.25
make clean
./configure
make
dh_make -s -f ../iproute2-2.6.25.tar.bz2
dpkg-buildpackage -rfakeroot
dpkg -i ../iproute2_2.6.25-1_i386.deb

cd /root
wget http://www.inet.one.pl/download/config/+20090215.tar.gz
tar xvf +20090215.tar.gz
cp /root/+20090215/rc.* /sbin

cd /root
wget http://sunet.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2009-05-10.tar.gz
tar xvf l7-protocols-2009-05-10.tar.gz
mkdir /etc/l7-protocols
cp /root/l7-protocols-2009-05-10/protocols/* /etc/l7-protocols/


--- dodatki ---

Testowe sprawdzenie czy nie ma błędów:
/sbin/rc.firewall start > /root/firewall.log && /sbin/rc.firewall stop

Ewentualna deinstalacja po ponownej rekompilacji przed nową instalacją:
dpkg -P linux-image-2.6.24.7-router


--- odnośnie sprzętu ---


lspci -k

00:00.0 Host bridge: Intel Corporation 82X38/X48 Express DRAM Controller
00:01.0 PCI bridge: Intel Corporation 82X38/X48 Express Host-Primary PCI Express Bridge
Kernel driver in use: pcieport-driver
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)
Kernel driver in use: uhci_hcd
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)
Kernel driver in use: uhci_hcd
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)
Kernel driver in use: ehci_hcd
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
Kernel driver in use: pcieport-driver
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02)
Kernel driver in use: pcieport-driver
00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 (rev 02)
Kernel driver in use: pcieport-driver
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
Kernel driver in use: uhci_hcd
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)
Kernel driver in use: uhci_hcd
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)
Kernel driver in use: uhci_hcd
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)
Kernel driver in use: ehci_hcd
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller (rev 02)
Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
Kernel driver in use: i801_smbus
01:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
Kernel driver in use: e1000
Kernel modules: e1000
02:00.0 Ethernet controller: Intel Corporation 82575EB Gigabit Network Connection (rev 02)
02:00.1 Ethernet controller: Intel Corporation 82575EB Gigabit Network Connection (rev 02)
03:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200e [Pilot] ServerEngines (SEP1) (rev 02)

lsusb

lsmod na oryginalnym jądrze:

ipv6 235364 16
loop 12748 0
snd_pcm 62596 0
snd_timer 17800 1 snd_pcm
snd 45604 2 snd_pcm,snd_timer
soundcore 6368 1 snd
snd_page_alloc 7816 1 snd_pcm
i2c_i801 7920 0
i2c_core 19828 1 i2c_i801
pcspkr 2432 0
iTCO_wdt 9508 0
button 6096 0
evdev 8000 0
ext3 105512 2
jbd 39444 1 ext3
mbcache 7108 1 ext3
dm_mirror 15104 0
dm_log 8484 1 dm_mirror
dm_snapshot 14340 0
dm_mod 46184 8 dm_mirror,dm_log,dm_snapshot
sd_mod 22200 3
usb_storage 77024 0
usbhid 35904 0
hid 33184 1 usbhid
ff_memless 4392 1 usbhid
ahci 23596 2
libata 140416 1 ahci
scsi_mod 129324 3 sd_mod,usb_storage,libata
dock 8304 1 libata
igb 61476 0
ehci_hcd 28396 0
uhci_hcd 18672 0
usbcore 118224 5 usb_storage,usbhid,ehci_hcd,uhci_hcd
e1000e 84612 0
thermal 15228 0
processor 32544 1 thermal
fan 4164 0
thermal_sys 10856 3 thermal,processor,fan

środa, 20 maja 2009

Instalator Debiana na pamięci Flash / dysku USB

Pobieramy z sieci program UNetbootin.
Wersja dla Windows to bezinstalacyjny plik uruchomieniowy.
Potrzebujemy pamięć USB.
Zakładamy na niej jedną partycję FAT (raczej nie FAT32)
Z poziomu programu wybieramy Distribution / Debian / Stable_NetInstall
Wybieramy napęd i wciskamy OK.
Pobrany i wgrany na USB zostanie specjalny instalator, za pomocą którego zainstalujemy Debiana.

Uwagi:
- można wybrać własny Diskimage (ISO) aczkolwiek przewidziane (jak przypuszczam) jest to raczej dla dystrybucji typu Live a nie instalatorów.

Pułapki:
- pod koniec instalacji systemu należy zainstalować GRUB'a na dysku twardym, a nie na pamięci USB z której bootujemy instalator.
- instalacja typowo sieciowa, zatem niezbędna jest karta sieciowa obsługiwana przez instalator.
- ponieważ po wyjęciu pendrive'a z instalatorem i bootowaniu z lokalnego dysku twardego zmienia nam się kolejność dysków widzianych przez Debiana konieczna są: odpalenie systemu z GRUBa z edycją polecenia by systemu szukał na (hd0,0) a nie (hd2,0); edycja pliku /etc/fstab by system wiedział że /boot jest na /dev/sda1 a nie /dev/sda3; na koniec edycja /boot/grub/menu.lst by bootmanager wiedział gdzie szukać systemu.

wtorek, 19 maja 2009

The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine

NAZWA_SERWERA Error:2147749896 (0x80041008).

http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft+SQL+Server&ProdVer=9.00.3042.00&EvtSrc=setup.rll&EvtID=70342



Rozwiązanie tutaj:

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressinstall/thread/632ca405-1c38-405b-9ed3-01785c9f99d1

a konkretnie trzeba uruchomić skrypt:

@echo on
cd /d c:\temp
if not exist %windir%\system32\wbem goto TryInstall
cd /d %windir%\system32\wbem
net stop winmgmt
winmgmt /kill
if exist Rep_bak rd Rep_bak /s /q
rename Repository Rep_bak
for %%i in (*.dll) do RegSvr32 -s %%i
for %%i in (*.exe) do call :FixSrv %%i
for %%i in (*.mof,*.mfl) do Mofcomp %%i
net start winmgmt
goto End

:FixSrv
if /I (%1) == (wbemcntl.exe) goto SkipSrv
if /I (%1) == (wbemtest.exe) goto SkipSrv
if /I (%1) == (mofcomp.exe) goto SkipSrv
%1 /RegServer

:SkipSrv
goto End

:TryInstall
if not exist wmicore.exe goto End
wmicore /s
net start winmgmt
:End

Refaktoryzacja kodu i wzorce projektowe

http://wortal.php.pl/wortal/artykuly/php/podstawy/refaktoryzacja_kodu_i_wzorce_projektowe

poniedziałek, 18 maja 2009

INSTRUKCJA REKLAMACJI BEZPOŚREDNIEJ W SEAGATE

Znalezione w mail'u:

Wejdź na stronę:
http://www.seagate.com/www/pl-pl/support/warranty_&_returns_assistance/

Po prawej stronie w części Zwrot produktu należy kliknąć na link
Dokonaj zwrotu dysku jako gość

Wybieramy: Wysyłka do kraju - Poland

Należy wpisać numer modelu lub numer katalogowy oraz Numer seryjny (jeśli nie wiesz gdzie znaleźć numer seryjny wejdź na http://support.seagate.com/rightnow/Flash/gtla_locater/Seagate_sn_gtla.html) Jeśli chcesz dodać więcej niż jeden dysk do jednego zgłoszenia kliknij na Dodać kolejny produkt.

Gdy wpiszesz już wszystkie numery seryjne i numery katalogowe lub modelu kliknij na Wyślij.

Pokaże się strona z wymienionymi wszystkimi dyskami oraz z informacją o dacie końca gwarancji - jeśli produkt jest na gwarancji będzie zaznaczone pole Zwrot.
Należy kliknąć Dalej.

Trzeba wypełnić pola na stronie, wpisać swoje dane kontaktowe, adresowe
Zaznaczyć pole: Akceptuję przedstawione postanowienia i warunki.

Opcjonalnie można założyć sobie konto w razie gdybyśmy w przyszłości chcieli zgłaszać dyski nie trzeba będzie znów danych adresowych i kontaktowych uzupełniać. Wtedy należy wypełnić pola: Identyfikator użytkownika, Potwierdź hasło, Tajne pytanie, Odpowiedź na tajne pytanie.

Po wypełnieniu wszystkich wymaganych pól należy kliknąc na Przegląd zamówienia/płatności

WAŻNE
--------------
Jako miejsce, do którego produkt ma zostać wysłany wybrać:
UPS-SCS Warszawa, UPS SCS (Polska) Sp. z o.o., Warszawa, N.A, Poland
--------------
W innym przypadku mogą być później problemy.

Następnie klikamy na Wyślij zamówienie.

Na następnej stronie klikamy na Wydrukuj etykietę wysyłkową na paczkę ze zwracanym produktem. Drukujemy etykietę która nam się pokazała w oddzielnym oknie. Wypełniamy druk poczty. Wysyłka na adres:
UPS SCS (Polska) Sp. z o.o. Segment A4D
ul. Szyszkowa 35/37
Warszawa 02-285

sobota, 16 maja 2009

Apache JMeter - testy obciążeniowe serwisów WWW

Budując nowy serwis internetowy, stawiając różne usługi na serwerze warto jest przetestować nowe rozwiązania pod względem wydajności. Przydatna do tego będzie aplikacja Apache JMeter napisana w Javie. Program Apache JMeter jest zaawansowanym systemem do mierzenia wydajności obiektów statycznych oraz dynamicznych (np. plików, servletów, klas Javy, serwerów HTTP i FTP itd.). Umożliwia testowanie wydajności, poprawności, wytrzymałości na duże obciążenie oraz analizę otrzymanych danych.

Ciąg dalszy na stronie:
thecamels.org/2009/05/11/testy-wydajnosciowe-za-pomoca-apache-jmeter/

Źródło: znalezione w mailu :)

http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi

Ewentualnie może być potrzebny: jdk-6u13-javafx-1_1_1-windows-i586.exe

Dodatkowe materiały:

http://www.sjsi.org/webgears/files/sjsi/File/tester/tester_5.pdf
http://students.mimuw.edu.pl/SO/Projekt04-05/temat2-g2/index.html#JMeter
http://jakarta.apache.org/jmeter/

środa, 13 maja 2009

Jak znaleźć wszystkie pliki pod Linuxem większe niż ... ?

Dla przykładu większe niż 100MB:

find / -size +100M -ls | sort -nr -k 7 | awk '{ print $7" "$11 }'

Jak wyczyścić plik pod Linuxem?

echo -n > nazwa_pliku

Problem - Planet ENW-9700 + Debian 5.01

Luźne zapiski odnośnie prób uruchomienia tej karty sieciowej.

Chipset: Marvell 88e8053

http://linux.derkeiler.com/Mailing-Lists/Debian/2004-12/2305.html

Marvell driver for Linux kernels 2.6.4 and above
Version: 10.70.1.3, System: Linux, Datum: 30.08.2006

http://www.syskonnect.com/syskonnect/support/driver/htm/sk9e21_lin.htm

Marvell Yukon/SysKonnect SK-98xx Gigabit Ethernet Adapter driver for LINUX

http://debian.linux.pl/viewtopic.php?t=7426
http://ubuntuforums.org/showthread.php?p=7081765

aptitude install linux-headers-`uname -r` gcc gcc-4.1 gcc-4.1-base gcc-3.4-base libgcc1 g++ g++-4.1 build-essential

[/etc/apt/sources.list]
deb http://ftp.pl.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.pl.debian.org/debian/ lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

apt-get install linux-source-2.6.26
apt-get install bzip2

cd /usr/src
tar -jxvf linux-source-2.6.26
ln -s linux-source-2.6.26 linux

apt-get install libncurses5-dev

cd /usr/src/linux
make clean
make menuconfig
make

apt-get instal kernel-package

sudo apt-get install zlib1g-dev libssl-dev

make-kpkg --revision 1.0 --append-to-version -router -initrd --initrd kernel_image
cd ..
dpkg -i linux-image-2.6.26-router_1.0_i386.deb

By odinstalować:
dpkg -P linux-image-x.x.xx-router

albo trochę kompilowane po staremu ...

make vmlinux
make bzImage
make modules
make modules_install

kopiuje System.map + ln
kopiuje BzImage + ln

mkinitrd ... konfiguracja grub ...

http://debian.linux.pl/viewtopic.php?t=7426
http://debian.linux.pl/viewtopic.php?t=7426
http://linux.derkeiler.com/Mailing-Lists/Debian/2004-12/2305.html
http://ubuntuforums.org/showthread.php?p=7081765
http://ubuntuforums.org/archive/index.php/t-1055931.html

Moduły być może odpowiedzialne:

insmod sky2.ko
insmod skge.ko

Do konfiguracji interfejsów korzystamy z 'ip' (ifconfig jest passe)

ip link

I taka ciekawostka odnośnie poprawiania modułów:

su
modprobe -v sky2
cd /lib/modules/2.6.25.9-0.2-default/kernel/drivers/net
cp -p sky2.ko{,.orig}
perl -pe 's/\0\0\x6c\x43/\0\0\x55\x43/g' sky2.ko.orig > \ sky2.ko

Inspiracja - Jak może wyglądać sklep internetowy #2

http://www.itart.eu/

sobota, 9 maja 2009

TC-Viewer - podglądanie kolejek HFSC

http://pawilcz.eu/tc-viewer/tc-viewer.html

Formy marketingu stosowane przez sklepy internetowe w Polsce

Sprawdzanie dostępności towaru - 96%
Sprawdzanie statusu zamówienia - 89%
Ocena produktów przez klientów - 73%
Indywidualne polecenia produktów w oparciu o listy produktów uzupełniających się - 62%
Możliwośc złożenia rozszerzonego, indywidualnego zamówienia produktu - 58%
Programy lojalnościowe - 53%
Indywidualne polecenia produktów w oparciu o dotychczasowe zakupy klienta - 42%
Indywidualne polecenia w oparciu o typowe zakupy określonej grupy klientów - profil klienta - 33%
Blogi i fora - 24%
Serwis społecznościowy wokół e-sklepu - 16%

Znalezione na webhosting.pl

IP Flow Meter - statystyki ruchu sieciowego

http://wiki.nnd-linux.pl/index.php/Statystyki_scr_ipfm

piątek, 8 maja 2009

Jak policzyć ilość otwartych połączeń na routerze?

netstat -anp | grep ADRES_IP | wc -l
Centrum wiedzy o pamięciach masowych:
http://www.storagefocus.pl/backup

czwartek, 30 kwietnia 2009

XP na pendrive'ie USB

Wystarczy poszukać w sieci:
Extra_Small_Windows_XP_USB_Flash_Edition_2009

wtorek, 28 kwietnia 2009

SOAP - informacje o metodach i typach

$result = $client->__getFunctions();
highlight_string(print_r($result,true));

$result = $client-> __getTypes();
highlight_string(print_r($result,true));

Propel - Criterias

http://www.devexp.eu/?p=551

Propel - taka rzeźba na odpowiednik TRUNCATE TABLE

$crit = new Criteria();
$crit->add(TabelaPeer::ID, "0", Criteria::GREATER_EQUAL);
TabelaPeer::doDelete($crit);

SOAP Client + WSDL + HTTPS

Problem: ... SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://
Wskazówka: WS po HTTP u innych dostawców działa
Rozwiązanie: włączyć extension=php_openssl.dll w php.ini

poniedziałek, 27 kwietnia 2009

Propel i migracja danych / tabeli

Teoretycznie, pewnie w prostych przypadkach, w poniższy sposób można rozszerzać istniejące i wypełnione już tabele:

[JAK W PRZYKŁADZIE PONIŻEJ - GENERUJEMY PO RAZ PIERWSZY]
propel-gen c:\php5\pear\data\propel_generator\projects\xtest

[WPISUJEMY STRUKTURĘ]
propel-gen c:\php5\pear\data\propel_generator\projects\xtest insert-sql

[APLIKACJA ŻYJE]
...

[MUSIMY ROZSZERZYĆ JAKĄŚ TABELĘ O NOWE POLE]
...

[MODYFIKUJEMY SCHEMA.XML]

[ROBIMY DUMP'a]
propel-gen c:\php5\pear\data\propel_generator\projects\xtest datadump

[KONWERTUJEMY DUMP'a do SQL]
propel-gen c:\php5\pear\data\propel_generator\projects\xtest datasql

[GENERUJEMY NOWE KLASY POD NOWĄ STRUKTURĘ]
propel-gen c:\php5\pear\data\propel_generator\projects\xtest

[WCIĄGAMY NOWĄ STRUKTURĘ i STARE DANE]
propel-gen c:\php5\pear\data\propel_generator\projects\xtest insert-sql





http://blog.dywicki.pl/2007/02/11/propel-12-a-istniejaca-baza-danych/

http://www.symfony.pl/forum/viewtopic.php?f=9&t=134&sid=2c4e57af4c74378f3c17892a0f748702

http://propel.phpdb.org/trac/wiki/Users/Documentation/1.2/HowTos/ExistingDatabases

Propel + XAMPP na Windowsie

cd D:\xampp\php>
pear channel-discover pear.phpdb.org
pear config-set preferred_state stable
pear install phpdb/propel_generator
pear install phpdb/propel_runtime

Miejsce gdzie się instaluje:
runtime -> D:\Xampp\php\PEAR\propel\
generator -> C:\php5\pear\data\propel_generator\

Sprawdzamy czy działa ogólnie:

D:\xampp\php>propel-gen i jeśli mamy błąd:
"No VERSION.TXT file found; try setting phing.home environment variable."
... należy odinstalować phing'a i zainstalować go ponownie.

Sprawdzamy czy generuje testowe projekty:
D:\xampp\php>propel-gen c:\php5\pear\data\propel_generator\projects\bookstore
D:\xampp\php>propel-gen c:\php5\pear\data\propel_generator\projects\treetest

Przystępujemy do utworzenia naszego projektu XTEST:

1) w katalogu c:\php5\pear\data\propel_generator\projects\ tworzymy podkatalog 'xtest'
2) zakładamy bazę danych xtest:

D:\xampp\mysql\bin\mysql -u root

CREATE DATABASE `xtest` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'xtest'@'localhost' IDENTIFIED BY 'test1234';
GRANT USAGE ON * . * TO 'xtest'@'localhost' IDENTIFIED BY 'test1234' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
GRANT ALL PRIVILEGES ON `xtest` . * TO 'xtest'@'localhost' WITH GRANT OPTION ;
FLUSH PRIVILEGES;

3) w podkatalogu tworzymy plik build.properties i umieszczamy w nim poniższą zawartość:

propel.project = xtest
propel.database = mysql
propel.database.url = mysql:dbname=xtest
propel.database.user = xtest
propel.database.password = test1234
propel.mysqlTableType = InnoDB
propel.disableIdentifierQuoting=true
propel.targetPackage = xtest
propel.addGenericAccessors = true
propel.addGenericMutators = true
propel.useDateTimeClass = true

3) tworzymy plik schema.xml i umieszczamy w nim poniższą zawartość:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<database name="xtest" defaultIdMethod="native">
<table name="miasto" description="Tabela Miast">
<column name="miasto_id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Id Miasta"/>
<column name="nazwa" type="varchar" size="255" required="true" description="Nazwa Miasta"/>
<column name="panstwo_id" type="integer" required="true" description="Klucz obcy do tabeli Panstwo"/>
<foreign-key foreignTable="panstwo">
<reference local="panstwo_id" foreign="panstwo_id"/>
</foreign-key>
</table>

<table name="panstwo" description="Tabela Panstw">
<column name="panstwo_id" type="integer" required="true" primaryKey="true" autoIncrement="true" description="Id Panstwa"/>
<column name="nazwa" type="varchar" size="128" required="true" description="Nazwa Panstwa"/>
</table>
</database>

4) tworzymy plik runtime-conf.xml i umieszczamy w nim poniższą zawartość:

<?xml version="1.0" encoding="UTF-8"?>
<config>
<propel>
<datasources default="xtest">
<datasource id="xtest">
<adapter>mysql</adapter>
<connection>
<dsn>mysql:dbname=xtest;host=localhost</dsn>
</connection>
</datasource>
</datasources>
</propel>
</config>

5) Uruchamiamy poniższy kreator:

D:\xampp\php>propel-gen c:\php5\pear\data\propel_generator\projects\xtest

6) Jeśli powyższe zakończyło się sukcesem, wypełniamy strukturą naszą bazę danych:

D:\xampp\php>propel-gen c:\php5\pear\data\propel_generator\projects\xtest insert-sql

7) Tworzymy przykładowy plik index.php dla naszej aplikacji:

error_reporting(E_ALL);

set_include_path("C:\php5\pear\data\propel_generator\projects\xtest\build\classes" . PATH_SEPARATOR . get_include_path());
require_once 'propel/Propel.php';

Propel::init("C:\php5\pear\data\propel_generator\projects\xtest\build\conf\xtest-conf.php");

$panstwo = new Panstwo();
$panstwo->setNazwa("Polska");

$miasto = new Miasto();
$miasto->setNazwa("Warszawa");
$miasto->setPanstwo($panstwo);

$miasto->save();

$c = new Criteria();
$miasta = MiastoPeer::doSelect($c);

var_dump($miasta);
?>

Więcej przykładów manipulowania danymi pod adresem: http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/BasicCRUD

8) Jeśli powyższy skrypt nie działa, wywalając Apache'a:
należy pobrać : http://windows.php.net/downloads/snaps/php-5.2-win32-VC6-x86-latest.zip
i skopiować z paczki plik: libmysql.dll do katalogów xampp\apache\bin & xampp\php

9) Należy również sprawdzić czy poniższe dyrektywy są odpowiednio ustawione:

ze1_compatibility_mode Off
magic_quotes_gpc Off
magic_quotes_sybase Off
register_globals Off

10) Do poczytania: http://www.internetmaker.pl/artykul/4268,1,propel_-_porady_jak_rozwiazac_podstawowe_problemy.html