U malo pomoći PHPa na windowsu

Pošto mi je probleme najlakše rešavati na linuxu sa (pa neki script jezik, izmedju ostalog PHP), problem nastane kad treba nešto uraditi što treba instalirati negde gde nema linuxa.

Jedno od rešenja, staviću na svoj server i dati korisnicima URL, i to radi odlično, osim u slučajevima kad scriptama treba pristup nečemu što je u lokalnoj mreži. A rešenja za to: custom browseri, java apleti, vpn,… verovatno još neko kojeg se nisam setio drastično komplikuje.

PHP se lepo i elegantno vrti na windowsu, ali ako nije neka statična scripta, potreban je web server, e tu opet ima više opcija, ali instalirti apache zbog 2 php scripte koje će nešto uraditi mi je malo previše, ali je jedno od lepih rešenja.

Jednostavnije i elegantnije rešenje: PHP ima u sebi embedded web server, koji se jednostavno pokrene tako što se pozicionirate u document root direktorijum i pokrenete php -S localhost:8080 i dobili ste web server koji se vrti na localhostu i može se pristupiti browserom, a sa druge strane scripte imaju kompletno pristup svim lokalnim resursima.

Prozor koji stoji otvoren, briga klienta da li je tamo nešto (što nema pojma šta je) pokrenuto i slični problemi su vrlo neozbiljni, i opterećujući. Pa hajmo da napravimo windows service od PHPa.

Program se zove nssm. I sve što je potrebno je jedna .cmd scripta koja će podesiti service.

inssvc.cmd

nssm install phpweb C:\php\php.exe
nssm set phpweb AppParameters -S localhost:8080
nssm set phpweb AppDirectory C:\php\htdocs
nssm set phpweb AppStdout C:\php\logs\stdout.log
nssm set phpweb AppStderr C:\php\logs\stderr.log
nssm set phpweb AppStopMethodSkip 6
nssm set phpweb AppStopMethodConsole 1000
nssm set phpweb AppThrottle 5000
nssm start phpweb

I to bi trebalo da bude to. Usput možemo napraviti još nekoli .cmd fajlova da bi ako zatreba mogli lako da pokrenomo, zaustavimo, restartujemo server.

delsvc.cmd – deinstalacija servica

nssm stop phpweb
nssm remove phpweb

start.cmd – startovanje servica

nssm start phpweb

stop.cmd – stopiranje servica

nssm stop phpweb

start-console.cmd – startovanje u konzoli, ako vam je potrebno da lako vidite stderr

cd htdocs
..\php -S localhost:8080

Ovo je tek malo testirano kod mene na računaru, videćemo kako će se pokazati u praksi. Ja se nadam da neće biti nekih problema.

This entry was posted in admin, php, scripts, windows and tagged . Bookmark the permalink.

One Response to U malo pomoći PHPa na windowsu

  1. ivanhoe says:

    Zanimljivo, mada ne vidim ni apache kao neki problem, isto tako stoji kao win servis i radi u pozadini, ako mu pristupas preko localhost onda sve radi automatski po instalaciji… a ipak je battle-tested, za razliku od ovih php “novotarija” (ako se ne varam uvedeno tek u 5.4, a meni je na pola masina jos 5.3)

Leave a Reply

Your email address will not be published. Required fields are marked *