Showing posts with label windows. Show all posts
Showing posts with label windows. Show all posts

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.

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ű HTML– CSS – 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.

Friday, November 18, 2011

Platformfüggetlen (ANSI) c: clear vagy cls?

Egyszerűbb c program írásakor / tervezésekor felmerülhet, hogy platformfüggetlen programot szeretnénk írni, viszont az alapvető parancssoros megjelenéshez szükség lenne egy olyan képernyőtörlési függvényre, amely Linux és Windows rendszerek alatt is tökéletesen fut.

Mindkét rendszeren a system() függvény végzi a képernyő törlést, viszont más-más paramétert várnak, ezért ha egyszerűség miatt mindenképpen őt szeretnénk használni (és nem egy bonyolultabb grafikus könyvtárat), akkor a következőket kell tennünk:

Makró segítségével meg kell vizsgálni, hogy Linuxon vagy Windowson fordítjuk a kódot, ezt a következőképpen lehet megtenni:


 #ifdef linux  
 void cls()  
 {  
      /* Hasznaljon clear-t ha Linuxon fordul*/  
      system("clear");  
      return;  
 }  
 #endif  
 #ifdef _WIN32  
 void cls()  
 {  
      /* Hasznaljon cls-t ha Windowson (VisualStudio) fordul */  
      system("cls");  
      return;  
 }  
 #endif   

Ezután a programunkban a képernyő törlésére használjuk a cls() függvényt, melynek segítségével platformfüggetlenek maradhatunk.

A #ifdef utáni rész (linux, _WIN32) fordítónként eltérhet, ezért mindenképpen utánna kell nézni, hogy a használt fordító milyen makrót definiál.

Saturday, October 29, 2011

Port 80 is used by System.....

Web Developers could have a lot of problems about developing on localhost, mostly when you have a lot of development tools,such as iis, apache, mysql, mssql, postgresql using the same port.
I had a lot of problems because of it, finally found out how to solve the problem of the used port 80 by the system.

1st: Open a command prompt type it: netstat -o -n -a | findstr 0.0:80
The last column is the process id (PID) of the services witch uses the port. Then start task manager (ctrl+shift+esc) go to processes and click on ,,show processes from all users", and you will find it. (If youd dont have PID column go to->select cloumns and X the process ID).

The biggest problem is when it says its PID 4, witch is in most cases the system.

2nd: In task manager go to services right down: ,,services...". Here you find all the services running, or not on your computer. If you installed visual studio it could install sql server express and some services witch can use port 80. Try to stop them one-by-one and check netstat. If the problem not solved try stopping ,,World Wide Web Publishing Service".

If non of these actions freed up the port, try stopping other processes witch could use that port.

Good Luck!

Friday, September 16, 2011

Single NIC for Hyper-V


Imagine the problem: You have a physical server and you decided to use Hyper-V for virtualisation. The problem is, that you have only one NIC(network interface controller) for both host system and hyper-v.
So what we have:

  • Parent Partition: Windows Server 2008 R2 with Hyper-V
  • Child Partition: Windows Server 2008 R2
  • One physical NIC
  • DHCP server


Step 1: Create a Virtual Network in Virtual Network Manager (in Hyper-V manager)

Step 2: Go to your network adapter settings on parent partition (host computer), choose properties. The network manager installed Microsoft Virtual Switch Protocol, and disabled all other protocols. Now, the child partitions can use the network, but your parent partition can’t.

Step 3: You have to enable all the protocols.