Friday, April 27, 2012

Több PHP verzió IIS-en

A következő cikkben bemutatom, hogy hogyan lehet kényelmesen több PHP verziót használni egy IIS szerveren. Feltételezzük, hogy az Olvasó rendelkezik egy már meglévő PHP telepítéssel, mely tökéletesen működik, ha mégsem, kérem kövesse az egyik előző cikket: LINK.

Első lépésként töltsük le a kívánt php verziókat, csomagoljuk ki őket, illetve töltsük le és telepítsük a PHP Manager for IIS nevű IIS addont. Ez egy egyszerű kis felület új PHP verzió hozzáadásához, vagy verzióváltáshoz és egyéb beállításokhoz . Telepítés után a site-okon belül a beállítások ikonjainál fogunk találkozni vele.

Ha rákattintunk, először láthatunk egy sárga hátteres feliratot, ahol különböző ajánlásokat tesz a PHP helyes beállítása érdekében, ezeket nem árt ha megfontoljuk, illetve kijavítjuk ( lehetőség van arra, hogy ő kijavítsa nekünk).

Új verziót a ,,Register new PHP version" linkre kattintva vehetünk fel, itt csak ki kell választanuk a kívánt PHP verzió fastcgi-s exe-jét. Mellette találjuk a verzió választót, illetve elérhetjük a phpinfo-t.

Ezen beállítások alatt nagyjából ezen analógia alapján be tudjuk állítani a (hiba) logolást, illetve PHP extension-öket tudunk hozzáadni, be -és kikapcsolni.

Monday, April 16, 2012

IIS7.5 PHP Fast-CGI


Ebben a cikkben szeretném megmutatni, hogy hogyan kell PHP-t telepíteni Windows-os környezetbe, IIS7.5-ös web-kiszolgálóra. A nagyobb biztonság, sebesség és stabilitás érdekében szeretnénk FastCGI-vel futtatni a PHP-t. A PHP non-thread-safe verzióját fogjuk használni, hogy miért ezt használjuk, és miért épp FastCGI-t, eről bővebben itt olvashatsz.


Lehetőségünk van a Microsoft Web Platform Installer -nevű eszközzel telepíteni, de elég sok hátránya van, és nem is biztos, hogy azt a verziót telepíti amire szükségünk lehet, így éles rendszereknél biztonságosabb, és átláthatóbb ha kézzel állítjuk be.

A cikkben a Windows Server 2008 R2 Enterprise verzióját használjuk, így nem a parancssoros lépéseket fogom megmutatni, de elég sok infó található arról is.

Feltételezem hogy az Olvasó rendelkezik már telepített Windows Server-rel, és IIS7.5-tel. A leírás a következő rendszereken működik: Windows Server: 2008/2008R2, **Windows: 7.

**Windows 7 operációs rendszerből legalább Professional változatra van szükségünk, hogy IIS-t telepíthessünk rá.


A telepítés


1. Server Manager -> Roles -> Add Role Services és itt válasszuk (telepítsük) a CGI-t.



2. Töltsük le a kívánt PHP verziót, abból is a non-thread safe -et  (ww.php.net/downloads), és csomagoljuk ki, pl a C:\PHP mappába. 

3. Nyissuk meg az IIS Manager-t, kattintsunk a szerverünkre, válasszuk a Handler Mappingot. 

4. A Handler Mapping -on belül válasszuk a jobb oldali sávban az Add Module Mapping-ot.

5. A képen látható módon állítsuk be a mappinget, majd az OK -ra kattintás után válaszoljunk IGEN-nel, hogy engedélyezze a PHP FastCGI-s futtatását (automatikusan létrehoz egy applications-t).

A beállítás

Végeztünk is a PHP és FastCGI beállításával IIS7.5-re. Ha friss rendszeren vagyunk, akkor valószínűleg 500-as hibával el fog szállni a rendszer (0x800736b1). Kétféle hiba okozhatja ezt:

1.Friss rendszeren valószínűleg nincs telepítve a Microsoft Visual C++ 2008 Redistributable Package (x86). Fontos megjegyezni, hogy függetlenül, hogy a szerverünk 64 bites, nekünk a 32 bites verzió kell!

2. Másik hiba az lehet, hogy a php nem találja a php.ini -t, pontosabban a windows mappában keresi, ezt a következőképpen orvosolhatjuk:

Nyissuk meg a regedit-et. HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node. Itt jobklikk, new key. A key neve legyen PHP, és hozzunk létre benne egy sztringet, melynek neve legyen: iniFilePath és értéke legyen: c:\php
iniFilePath

Ha megvan: Start-> Control Panel -> Keresőbe advanced system settings -et írjuk be -> Environment Variables -> válasszuk ki a PATH-et és a végére írjuk hozzá a következőt: ;c:\php\ .
PATH
Ha minden lépést elvégeztünk, akkor többnyire a phpinfo() hívására megjelenik a phpinfo táblázat, melyből megtudhatjuk, hogy azt a php.ini -t töltötte-e be, amit szerettünk volna, illetve más infomrációkat a telepített PHP-ról.

Előfordulhat, hogy az újonnan létrehozott php mappában az IIS-nek nincs joga futtatni a php-fastcgi.exe-t (és a dll-eket), nézzük meg, javítsuk ki! Ha még mindig nem menne, nézzünk bele az IIS logjába (inetpub/logs mappában siteonként).

Alap beállításként a php.ini-ben engedélyezve van a log_errors( = On), ilyenkor ha bármilyen hiba van a php kódban, az alap 500 -as hibát fogja dobni a szerver (Internal Server Error), és így elég nehéz debugolni, ezért állítsuk Off -ra !

Ha sikerült megheggesztenünk, és minden tökéletesen működik, akkor hurrá, van egy magas rendelkezésre állású rendszerünk. Nyilván ha van lehetőségünk, PHP-t Linux-on fogunk futtatni, de lehet, hogy nincs elég erőforrásunk, így nem tudjuk az asp.net -es és PHP -s siteokat külön szerveren hosztolni, ilyenkor ez a legjobb megoldás.

Saturday, March 10, 2012

Windows 8 régi start menü

Ha a régi Windows 7-es start menüt szeretnénk használni Windows 8-on is, kicsit meg kell hekkelnünk a rendszert. Sajnos a registry-s hack lehetőséget javították, így most valami mást kell próbálni:

Valószínűleg már most is van egy csomó program ami javítja a ,,bugot", például töltsük le ezt.

Before

After
És kész is van.

Monday, March 5, 2012

Windows Server 8 első látásra

Kíváncsi voltam, hogy milyen lett az új Windows Server 8, így felraktam egy virtuális gépre, és tesztelgettem kicsit. Nem sok új funkciót látok benne, főleg a metro-s stílust húzták csak rá, mondjuk szerverre nem sok értelmét látom, főleg úgy, hogy elég sok funkciót/beállítást máshova tettek, így kicsit nehezebb megtalálni őket, de egy idő után biztos hozzá lehet szokni.

És akkor jöjjön néhány kép:

IIS, Nem sokat változott

Metro-s design

Server Manager meg új design

Új Task Manager
Az új Task Manager viszont tetszik, átláthatóbb, és kicsit modernebb lett.

Thursday, January 19, 2012

PHP Image Class

English:
A class written in php for manipulating image files. It has a lot of features such as:

  • resize
  • crop
  • rotate
  • watermark
  • mostly all of php's build in filters
  • some special algorythms like blur, noise, duotone, etc..
  • convert images between file extensions
It's ready to be used in MVC frameworks or in simple websites. For more informations please read readme.txt in downloads.

Download

Hun:
PHP osztály képek egyszerű kezelésére sok funkcióval mint például:
  • átméretezés
  • vágás
  • forgatás
  • vízjel
  • szinte az összes php-ba beépített filter
  • egyéb algoritmusok mint pl.: blur, duotone, zaj, stb...
  • Fájl formátumok közti váltás
Az osztály használható akár MVC framework-ökben, akár egyszerű weblapoknak, egyéb információk megtalálhatóak a readme.txt fájlban a letöltések között.

Thursday, December 1, 2011

PHP fejlesztőkörnyezet kialakítása


Webes fejlesztőkörnyezet kialakítása


1. Lépés:

Egyszerű HTMLCSS JS oldalak fejlesztéséhez nem feltétlenül van szükségünk fejlesztőkörnyezet kialakítására, hiszen a legtöbb böngésző önmagában is képes a helyben tárolt tartalom megjelenítésére,  viszont php futtatásához már más programokra is szükségünk lesz.

Szükségünk van egy webszerverre, amely a kliensektől érkező kéréseket szolgálja ki, általában Apache (Linux vagy Windows), vagy IIS (Windows) nevű kiszolgálókat szoktuk alkalmazni,  éles rendszereknél PHP-hoz általában Linuxon futó Apache -ot szoktak használni, de gond nélkül lehet használni IIS-t (Internet Information Services) is, ha nem csak PHP-t szeretnénk futtatni (IIS-t inkább ASP.NET –es oldalak hosztolására használnak Windows Server-eken).


Ha helyi gépen szeretnénk fejleszteni, és nem szeretnénk vacakolni a PHP, MySQL, Apache beállításával, vagy nem értünk hozzá, akkor letölthetünk egy kompakt csomagot, mely tartalmazza  a fejlesztéshez létfontosságú  eszközöket:

  •           Apache webszervert
  •           PHP futtatásához szükséges értelmezőt
  •           MySQL adatbázismotort

és egyéb eszközöket (ftp szerver, Perl). Ez a csomag mind Windows-ra, mind Linuxra letölthető, de vigyázunk, éles rendszerbe soha ne használjuk, mert biztonsági rések lehetnek benne, ezt a csomagot tipikusan fejlesztésre szánták.

A program neve XAMPP (X: Windows/Linux, A: Apache, M: MySQL, P: PHP, P:Perl), ebben a posztban ennek a telepítését, beállítását mutatom meg Linuxra és Windowsra. Természetesen használhatunk IIS-t is, ezt Windows 7  Professional +  operációs rendszerekhez jár ingyenesen. Telepítéséről és konfigurálásáról ITT lehet olvasni.

XAMPP telepítése Windows rendszerekre:

1.       Töltsük le a http://www.apachefriends.org/en/xampp.html –ról a megfelelő telepítőt.
2.       Indítsuk el a telepítőt: hagyhatunk mindent alapállapotban.
3.       Ha kész a telepítés, és nem indult el magától a control panel, akkor indítsuk el. Ez egy egyszerű és kényelmes kezelőfelület a szolgáltatások beállításához , ki –és bekapcsolásához. Mire jók  a szolgáltatások?
o   Apache: webszerver, php értelmező telepítve van hozzá
o   MySQL: adatbázis motor
o   FileZilla: FTP szerver és kliens
o   Mercury: levelező szerver
o   Tomcat:  Java Servlet és a JavaServer Pages megjelenítéséhez

Ha csak PHP-t szeretnénk használni, akkor elegendő, ha az Apache-ot indítjuk a ,,start” gomb megnyomásával.

Előfordul, hogy nem indul el, vagy a start megnyomása után, néhány másodpercig úgy tűnik, hogy elindult, aztán mégsem. Ez a szerver a 80-as portot használja, így azokat a programokat amik szintén ezt használják le kell állítani, tipikusan ilyen a Skype (de a Skype beállításainál meg lehet változtatni a port számot, így nem ütközik a kettő). Ha esetleg mégis gond lenne, és sehogy sem akar elindulni, akkor megváltoztathatjuk a portot, amit az Apache használ, ilyenkor viszont a böngészőnkben a következő címet kell beírni:

http://localhost:portszam

Tesztelés: Ha nem változtattunk az alap telepítési beállításokon, akkor a C:\xampp könyvtárba települt. Keressük meg a  ,,htdocs”  mappát, általában web szervereknél ez a mappa jelöli a megjelenítendő fájlok mappáját. Nyissuk meg, és hozzunk létre benne egy mappát. A mappában hozzunk létre egy szöveges fájlt, majd nevezzük át index.php-ra. és a tartalma legyen a következő:

 <?php  
      phpinfo();  
 ?>  

Ebben a kódrészletben meghívjuk a phpinfo() függvényt, mely az oldal megnyitásakor lefut, és különböző információkat ad a telepített php-ról. Mentsük el és zárjuk be a fájlt! Nyissuk meg a kedvenc böngészőnket és írjuk be az URL helyére: „http://localhost/mappaneve/index.php”, ha mindent jól csináltunk, akkor kapunk egy igen nagy táblázatot, ahol a telepített php beállításait látjuk, illetve a telepített bővítményeket. Ha ez megjelent, akkor a telepítés sikeres volt, a rendszer elvileg gond nélkül tud php kódot értelmezni.


2. Lépés:

PHP fejlesztés során szükségünk van egy szerkesztő programra, egyszerű, néhány soros oldalakhoz elég akár egy notedpad, de bonyolultabb programok írásakor sokat segíthet egy olyan program, mely áttekinthetővé teszi a kódot. Ezeknek a programoknak a száma végtelen, íme néhány:

Notepad++ : *
Kicsit komolyabb szövegszerkesztő mint a beépített notepad, tud sorokat számozni, illetve képes a különböző szintaktikai elemek színezésére. 1-2 fájlból álló oldalakhoz elég lehet, de minél több fájlból áll az oldal, annál nehezebb lesz átlátni.

Adobe Dreamweaver ***
Az Adobe cég  web fejlesztésre szánt programja, gyorsan meg lehet tanulni a használatát, megbízható, van benne ftp szerver, svn –re tud kapcsolódni, viszont code hinteket nehéz beállítni benne.

PHPDesigner ****
Hasonló a dreaweaverhez, egy kicsit bonyolultabb, viszont kiváló benne a code hinting, hátránya hogy az ftp nehezen beállítható.

NetBeans ***
Ingyenesen letölthető, php mellett számos nyelven lehet programozni benne (java, c, c++).

CodeLobster *****
Az alap verzió ingyenesen letölthető (email-ben kell serialt igényelni, de azonnal megjön), csak a bővítményekért kell fizetni (különböző cms-ek, sql szerverek -re való fejlesztést segítik ezek a kiegészítők, így nincs rájuk szükségünk). Telepítéskor vigyázzunk, hogy a plugin-eket ne pipáljuk ki, különben nem fogadja el az ingyenes serialt.

Google segítségével még n+1 darab ilyen programot találhatunk, illetve a későbbiekben is nagyon nagy segítséget tud nyújtani, ha valamilyen problémába ütközünk.

Ha sikerült telepítenünk a PHP futtatásához szükséges eszközöket, és rendelkezünk egy megfelelő szerkesztővel, akkor készen állunk webes tanulmányaink elkezdéséhez.

Thursday, November 24, 2011

Morse Coder / Encoder / Decoder

A következő linken keresztül le tudod tölteni a morze kódoló / dekódolómat, C nyelven íródott, nagyházi lévén a feladat bonyolultsága érdekében egy csöppet túl lett bonyolítva, de lényegében talán használható is valamire.

Ilyen fát épít fel
Ha csak a futtatható állományra vagy kíváncsi, innen tudod letölteni, a rar kicsomagolása után az első .exe fájl kell neked.

Ha a forráskód is érdekel: Ugyan arról a linkről szerezheted meg, külön be van csomagolva, VS 2010 -es projektfájlokkal, de továbbfejlesztésre nem ajánlom, hiszen -mint említettem- sokkal bonyolultabban lett megírva mint valójában kéne: A morze szótár bináris fával lett ábrázolva, így max. a dekódolás lett gyorsabb, de a morzéra kódolás nagy mértékben lelassult, hiszen a fa végéről kell bejárnunk elemenként. A legegyszerűbb megoldás az lett volna, hogy egy kétdimenziós tömbbe rakom az egészet, így kb. 400 sorból meg lett volna, de az meg nem izgalmas. Sok ötletem lenne, hogy mivel lehetne még feldobni, de sajnos időhiányban szenvedek.

Fejlesztés során felhasznált külső források: DebugMalloc. Ajánlom, mert jó.

[EN]

Little software to code or decode from or to morse. Written in ANSI C, licenced under GPL.



Update: 2012.01.19
A project megtalálható sourceforge-on:
Morse Master