» »

WinXP pro & CYGWIN

WinXP pro & CYGWIN

Technitz ::

Windows XP profesional -> Apache 2 (w32), PHP 5 (w32), MySQL (w32)
CYGWIN -> Perl 5.8, MySQL client, sshd, crond, netutils

V upanju, da bo najdi.si tole objavo zindexiral, ko bom nedvomno spet potreboval te informacije... Morda se komu pride prav.

PROBLEM:
Novi racunalnik, bolje receno notebook (Prestigio 159, WXGA, Radeon, Bluetooth, WiFi, TV tuner, etc.) Web development mashina ( + World of Warcraft :)) in res nimam casa za Linux hacking. Probal sem zadnji Debian z malo uspeha, grafika ok, sound in modem sem se nekako se ustimal in pol obupal.

RESITEV:
I. WinXP pro.

II. CYGWIN
* Instalacija iz http://cygwin.com
* Sprva sem si izbral samo default instalacijo in kasneje dodal se perl, gcc, ping, binutils,... Sigurno je najbolje naloziti kar ves CD v nek direktorij, le da pol pri instalaciji setup.exe na vsakemu paketu prvo napravi MD5 checksum, kar traja natanko 5 minut predolgo.
* Installation path: D:\ ( kljub priporocilu da to ni "recommended" )
* system enviroment CYGWIN=tty ntea (in seveda reboot, da prime?)

! Uporaba windows command prompta za CYGWIN smrdi u nulo. Resize je obupen, history se bolj. Skratka cmd ne sploh.

Workaround a)
Telnet ali sshd & PuTTY
Evo en trik k sem ga ves dan isku zaman! Kako startat Cygwin xinetd tako, da laufa kot windows service:
bash$ cygrunsrv.exe --install xinetd --path /usr/sbin/xinetd.exe --disp "cygwin-xinetd" --desc "Cygwin xinetd server process [xinetd]"

Ta ukaz pod windows services (Start -> Run -> services.msc) namesti service imenovan "cygwin-xinetd". Lahko ga startas iz tam ali iz bash-a z:
bash$ cygrunsrv.exe --start xinetd

Workaround b)
Na netu ( http://gecko.gc.maricopa.edu/~medgar/pu... ) sem nasu tega strica, ki je napisal patch za PuTTy-ja. Patch omogoca uporabo PuTTy-ja kot local shell terminal-a. Zadeva dela strasno dobro. !!! Pri nastavitvi pazi da das hostname na '-' (minus) !!! Port je ignoriran. Term type: xterm

Bliznjico nikar ne nastavljaj da starta v maximized mode-u ker tko sesujes vim, emacs... Window resize vsakic na roke. ( Alt + Space, X ) Ima kdo boljso idejo?

III. Apache2 (win32 bin) Instalacija brez posebnosti na d:\usr\local\apache2

IV. PHP (win32 bin) Instalacija na d:\usr\local\php
Pazi, da ko enkrat dodas directorij v system enviroment PATH rebootas windows. Pha! Kdo bi si mislil?
V httpd.conf dodas:
### PHP stuff
#
PHPINIDir D:/usr/local/php
LoadModule php5_module "D:/usr/local/php/php5apache2.dll"
AddType application/x-httpd-php .php
#
###
Ne pozabit na DirectoryIndex dodat tudi index.php. Tko k sem jest.

V. Perl
Simple k pasulj. V https.conf dodas:
ScriptAlias /cgi-bin/ "D:/var/www/localhost/cgi-bin/"

...in stvar skoraj dela. Trik je v .pl kjer je v header treba napisat:
#!d:/bin/perl
... in ne:
#!/usr/bin/perl
...kot sem seveda sprva naredu.

VI. mySQL (win32 bin)
Install path: d:\usr\local\mysql-w32 (zakaj tle w32? Zaradi klijenta. Beri dalje)
Ni kaksnih posebnosti. Instalira se BP in zalaufa servis kot se spodobi.

VI. mySQL client za CYGWIN
Problem: mysql.exe, ki pride zraven windows instalacije ne dela znotraj cygwin, kljub temu, da
naceloma .exe programi, ki delajo v cmd-ju delajo ok. Zadeva zasteka pri vnosu gesla, CPU 100%

Resitev je v tem, da zbildas mysql pod cygwin-om. Za to pa rabis:
1. Mysql UNIX source
To odpakiras v nek temp dir in ne gres prec linkat ampak patchat kodo, da bo link sploh delal:

a) iz vseh file-ov izbrisi '#pragma interface'. Tkole( http://sources.redhat.com/ml/cygwin/200... ):
bash$ perl -i.rpi -pe 's/^#pragma interface.*$//;' `fgrep -rl '#pragma interface' .`

b) kot pravi ( http://bugs.mysql.com/bug.php?id=5343 ) popravi mysys/my_thr_init.c:
line 72 (+/-): pthread_mutexattr_setkind_np(&my_errchk_mutexattr, PTHREAD_MUTEX_ERRORCHECK_NP);

zamenjaj z:

#ifdef __CYGWIN__
pthread_mutexattr_settype(&my_errchk_mutexattr, PTHREAD_MUTEX_ERRORCHECK);
#else
pthread_mutexattr_setkind_np(&my_errchk_mutexattr, PTHREAD_MUTEX_ERRORCHECK_NP);
#endif

2. bash$ ./configure --prefix=/usr/local/mysql --enable-thread-safe-client

3. bash$ make (cakas cca. 40 minut)
4. bash$ make install (cakas 3 minute)

MySql SERVER je zdaj instaliran na dveh mestih v windoze in cygwin, vem. Bom ze pol zbrisu. Prvo rabim se DBD::mysql zlinkat.

Windows verzijo klijenta preimenuj na mysqlw32.exe ali karkoli. /usr/local/mysql/bin dodaj v cygwin path npr. v ~/.profile ali /etc/profile

Zdaj pa, v windows verziji server / klijent komunicirata preko named pipe-a, dokler unix verzije po defaultu komunicirajo prek unix socket-a, se pravi /tmp/mysql.sock
bash$ mysql ne bo delal dokler mu eksplicitno ne recemo, da komunicira preko tcp-a, v nasprotnem se bo pritolzeval z 'unable to find /tmp/mysql.sock' ali nekaj slicnega.
bash$ alias mysql="mysql --protocol=tcp"
...opravi to delo uspesno.

Se test: bash$ mysql -u root -p ... lejga zlomka dela!

cpan> install DBD::mysql je treba force-at ker make test po defaultu isce mysql.sock Zdaj pa upam, da ima DBD::mysql narejeno podporo za 'protocol=tcp' :)

Morda se ena zelo cool zadeva. Kako startat ultraedit32 iz cygwin?
bash$ cygstart --open uedit32 test.txt

Se nekaj, tko off the subject. Ce boste kupoval Prestigio notebook-a vedite, da NIMAJO PS2 izhodov. No, vsaj moj ga nima. Obstajajo USB / PS2 pretvorniki, ki pa NE DELAJO VSI. Model cy-155, ki ga prodajajo na Techtrade-u in podpira USB 1.1 full serje. Vsake 20 - 50 tipk se zadeva resetira in zadnjo tipko ponovi eno 20x. Tipkovnica je nato neuporabna vsaj 10 sec. Sedaj imam nek drug model, mislim, da iz com-shop-a in ta dela OK. Dejstvo je da tudi cy-155 dela a samo na USB 1.1 portih.

Zdaj pa imam se nekaj vprasanj, ce se je kdo slucajno ze ukvarjal z slicnimi tezavami:
- Zakaj make tako dolgo traja. 1.7GHz masina linka k da bi bla 486-ka z defektnim ramom?
- A kdo ve ali obstaja DBD::mysql podpora za protocol=tcp?
- Obstaja nacin kako pognat cygwin mysqld skozi cygrunsrv.exe?

lp

64202 ::

Uno s puttyem ni nujno potrebno ker ima cygwin prilozen win32 port rxvtja v bin direktoriju z vsem drugim. Ne vem pa, zakaj ni default.

btw.: nic te pa ne kosta (razen par un downloada :D), ce za hec probas se SUSE ftp install, ker slovi po najbolj plug'n'play podpori za laptope.
I am NaN, I am a free man!

64202 ::

> - Zakaj make tako dolgo traja. 1.7GHz masina linka k da bi bla 486-ka z defektnim ramom?

cygwin unix fs emulacijski layer je zelo pocasen. Recimo ce das komando find v enem velikem direktoriju, deluje zelo pocasi. Koreknost pred hitrostjo ocitno. Nisem pa ziher koliko to na linkanje vpliva, ni pa gnujev ld kaj pretirano hitra zadeva itak.
I am NaN, I am a free man!

Technitz ::

Hm... Ja, SUSE se nisem probal, je pa dobra ideja. Za rxvt sem vedel da je prilozen nisem pa vedel da gre za Win32 zadevo, nekje sem prebral da zadeva potrebuje X-e, pa sem raje preskocu ;)

Zgodovina sprememb…

  • spremenilo: Technitz ()

nejck ::


Morda se ena zelo cool zadeva. Kako startat ultraedit32 iz cygwin?
bash$ cygstart --open uedit32 test.txt


to men dela tud brez cygstart --open :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

Postavitev Apache serverja s podporo za PHP in MySQL (strani: 1 2 3 4 5 6 7 )

Oddelek: Izdelava spletišč
322253065 (27730) miko22
»

[C] MySQL

Oddelek: Programiranje
292813 (1835) Tutankhamun
»

problem z phpjem

Oddelek: Izdelava spletišč
304257 (3670) snow
»

Linux: MySQL problem

Oddelek: Operacijski sistemi
51049 (981) FXMagic
»

Mysql problem z zagonom

Oddelek: Izdelava spletišč
161189 (1051) Gandalfar

Več podobnih tem