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.