# PHP atjaunināšana Windows sistēmā

> PHP atjaunināšana Windows: izvēlēties pareizo variantu, pārbaudīt lejupielādi ar SHA-256, pārņemt php.ini un ņemt vērā Apache moduļa režīmu pret PHP2Shell.

Avots: https://phpsos.de/lv/blog/php-unter-windows-aktualisieren/  
Aktuāls uz: 25.10.2026  
Pakalpojuma sniedzējs: PHP SOS, PHP ārkārtas palīdzība un serveru drošība. Tūlītēja palīdzība pa WhatsApp: https://wa.me/491736494914?text=Sveiki%2C%20PHP%20SOS%2C%20mums%20nepiecie%C5%A1ama%20pal%C4%ABdz%C4%ABba%20ar%20m%C5%ABsu%20PHP%20serveri.%20Uz%C5%86%C4%93mums%3A%20%E2%80%A6%20Vietne%3A%20%E2%80%A6

**Īsi sakot:** Windows sistēmā PHP atjaunina ar rokām: no php.net lejupielādēt labotu versiju, izvēlēties to pašu variantu (Thread Safe vai Non Thread Safe) un arhitektūru, lejupielādi pārbaudīt ar SHA-256, pārņemt php.ini un paplašinājumus, nomainīt ceļu un pārstartēt visus PHP procesus. Atjauninājums ir īpaši steidzams, ja Apache Windows sistēmā ielādē PHP kā moduli, jo šo darbības režīmu PHP komanda PHP2Shell gadījumā vērtē visaugstāk.

## Kur PHP Windows datoros atrodas

Windows serveri ar PHP ir biežāk, nekā daudzi domā. Reti tā ir liela vietne, bieži tie ir intranets, speciālās lietojumprogrammas vai rīki, ko kāds iestatījis pirms gadiem. Darbību zem IIS ļoti detalizēti apraksta lapa [PHP nostiprināšana Windows un IIS](https://phpsos.de/lv/server/windows-iis-php/). Šis raksts aplūko pašu atjauninājumu un gadījumus ārpus IIS.

Tipiskas atrašanās vietas ir Apache for Windows ar PHP kā moduli, izstrādātāju pakotnes, piemēram, XAMPP, WampServer vai Laragon, kas nonākušas serverī, paša PHP kopijas speciālajās lietojumprogrammās un PHP skripti ieplānotajos uzdevumos. Šīs PowerShell komandas tikai lasa un palīdz atrast:

```powershell
# Atrast visus php.exe diskā C: (lielos diskos mazliet aizņem laiku)
Get-ChildItem -Path C:\ -Filter php.exe -Recurse -ErrorAction SilentlyContinue |
  Select-Object FullName, LastWriteTime

# Kurš php.exe atrodas meklēšanas ceļā?
where.exe php

# Darbojošies PHP un Apache procesi ar ceļu un startēšanas laiku
Get-Process php*, httpd -ErrorAction SilentlyContinue | Select-Object Name, Id, StartTime, Path

# Instalācijas versija un ielādētā konfigurācija (ceļš kā piemērs)
& "C:\PHP\8.4\php.exe" -v
& "C:\PHP\8.4\php.exe" --ini
```

Svarīgi: ja PHP darbojas kā Apache modulis, atsevišķa PHP procesa nav. PHP tad atrodas procesā `httpd.exe`. Kas meklē tikai php-cgi procesus, šīs instalācijas palaiž garām.

Viegli aizmirstami ir arī ieplānotie uzdevumi, kas izsauc PHP skriptus, piemēram, importiem, pārskatiem vai datu salīdzināšanai. Tie bieži izmanto savu, vecāku `php.exe`. PHP2Shell gadījumā tie tiek uzskatīti par mazāk apdraudētiem, jo komandrinda saskaņā ar līdzšinējām php.net ziņām neietilpst skartajos darbības režīmos; nomaiņas laikā tiem tomēr jānorāda uz jauno ceļu, citādi vecā instalācija paliek lietošanā un netiek noņemta nekad.

```powershell
# Ieplānotie uzdevumi, kas izsauc PHP
Get-ScheduledTask | Where-Object { $_.Actions.Execute -match 'php' } |
  Select-Object TaskName, TaskPath, @{n='Programm';e={$_.Actions.Execute}}
```

Atsevišķa tēma ir izstrādātāju datori. XAMPP un līdzīgas pakotnes startē Apache ar PHP kā moduli un bieži ir sasniedzamas visā uzņēmuma tīklā. Arī tur PHP jāatjaunina, un tīmekļa serverim jāklausās tikai paša datora adresē.

## Thread Safe vai Non Thread Safe: pareizais variants

php.net katru Windows versiju piedāvā vairākos variantos. Nomaiņai ir spēkā: tas pats variants un arhitektūra kā līdz šim, citādi tīmekļa serveris vai paplašinājumi neielādējas.

| Pazīme | Opcijas | Kad kura |
|---|---|---|
| Pavedienu drošība | NTS (Non Thread Safe), TS (Thread Safe) | saskaņā ar php.net NTS FastCGI, piemēram, IIS, un komandrindai; TS PHP kā modulim Apache |
| Arhitektūra | x64, x86 | php.net iesaka x64 |
| Kompilators | VS16, VS17 | vajadzīgs Visual C++ Redistributable Visual Studio 2015 līdz 2022 |

PHP 8.5 php.net pieprasījuma brīdī 25.10.2026 uzskaitīja versiju 8.5.12 no 21.10.2026, kā ZIP arhīvu visās četrās kombinācijās. Pārējos atbalstītos atzarus izvēlaties tajā pašā lapā. Labotas ir 8.5.12, 8.4.27, 8.3.36 un 8.2.35. Versijām 8.1 un vecākām oficiālu atjauninājumu vairs nav.

## PHP atjauninājums Windows: lejupielādes pārbaude un tīra nomaiņa

1. **Lejupielādēt labotu versiju:** no php.net Windows lejupielādes lapas, atbilstoši variantam un arhitektūrai.
2. **Salīdzināt kontrolsummu:** php.net pie katra arhīva norāda SHA-256 vērtību. Ja tā atšķiras, failu neizmantojiet.
3. **Izsaiņot jaunā mapē:** piemēram, `C:\PHP\8.4.27`, lai vecais stāvoklis paliktu kā atkāpšanās ceļš.
4. **Pārņemt konfigurāciju:** nokopēt līdzšinējo `php.ini` un salīdzināt ar jauno `php.ini-production`.
5. **Pārbaudīt paplašinājumus:** trešo pušu papildu DLL failiem jāatbilst versijai, variantam un arhitektūrai.
6. **Nomainīt ceļu:** FastCGI ierakstā, Apache `LoadModule` rindā vai vides mainīgajā `PATH`.
7. **Pārstartēt un pārbaudīt:** pārstartēt tīmekļa servera pakalpojumu un ieplānotos uzdevumus, tad pārbaudīt versiju un startēšanas laikus.

```powershell
# Aprēķināt lejupielādētā faila SHA-256 un salīdzināt ar php.net
Get-FileHash .\php-8.5.12-nts-Win32-vs17-x64.zip -Algorithm SHA256

# Pēc maiņas: ielādētie paplašinājumi un jaunās instalācijas versija
& "C:\PHP\8.5.12\php.exe" -m
& "C:\PHP\8.5.12\php.exe" -v
```

Ja PHP pēc maiņas nestartē vai ziņo par trūkstošu DLL, bieži trūkst Visual C++ Redistributable atbilstošā arhitektūrā vai kāds paplašinājums neder jaunajai versijai. Kļūdu ātrāk redzēsiet, ja `php.exe -v` izsauksiet tieši komandrindā, pirms pārslēdzat tīmekļa serveri. Ko dara atsevišķie php.ini ieraksti, izskaidro [php.ini paskaidrojums](https://phpsos.de/lv/php/php-ini-erklaert/).

## Apache zem Windows: moduļa režīmu uztvert nopietni

Daudzas vecākas Windows instalācijas PHP iesaista tieši Apache ar `LoadModule` rindu. Tehniski tas ir tas pats, kas mod_php Linux sistēmā. PHP komanda PHP2Shell risku tieši tur vērtē visaugstāk, jo exploit tika demonstrēts, vēl pirms tiek izpildīts lietojumprogrammas kods. Fonu skatiet sadaļā [Kāpēc mod_php ir īpaši apdraudēts](https://phpsos.de/lv/php2shell/mod-php-risiko/).

Kurus moduļus Apache ielādē, parāda `httpd.exe -M` instalācijas bin mapē; komanda tikai lasa. Ja tur ir PHP modulis, atjauninājumam ir prioritāte. Vidējā termiņā vērts pāriet uz PHP caur FastCGI ar NTS būvējumu, lai PHP darbotos savos procesos. Tam vajadzīgs tests, jo mainās konfigurācija un tiesības.

> **Svarīgi:**
> Ar failu nomaiņu ievainojamība vēl nav aizvērta. Kamēr Apache pakalpojums, IIS lietojumprogrammu pūli vai ieplānotie uzdevumi darbojas ar veco versiju, ievainojamība paliek atvērta. Pēc atjauninājuma pārbaudiet katra procesa startēšanas laiku.

## Pēc atjauninājuma: pārbaude un pēdas

Katrai instalācijai fiksējiet ceļu, versiju, variantu un maiņas datumu. Vecās PHP mapes noņemiet tikai tad, kad jaunais stāvoklis darbojas stabili, un tad arī patiešām, lai tās netiktu nejauši atkal iesaistītas.

Atjauninājums ļaunprogrammatūru nenoņem. Ja Windows serveris dienās pirms ielāpa bija sasniedzams no interneta, pārbaudiet tīmekļa direktorijus uz jauniem skriptu failiem, ieplānotos uzdevumus un lokālos kontus uz nepazīstamo un saglabājiet tīmekļa servera protokolus no 20. oktobra. Kā atpazīt ielaušanos, apraksta [Vai esmu jau kompromitēts?](https://phpsos.de/lv/php2shell/bin-ich-gehackt-anzeichen/).

## Kā PHP SOS palīdz konkrēti?

- **Atrast visas instalācijas:** Mēs meklējam PHP jūsu Windows sistēmās, arī Apache moduļos, izstrādātāju pakotnēs un speciālajās lietojumprogrammās.
- **Nomainīt un apliecināt:** Ar [PHP ielāpu pakalpojumu](https://phpsos.de/lv/leistungen/php-patch-service/) mēs pārejam uz labotu versiju, pārbaudām kontrolsummas un dokumentējam versiju un procesu startēšanu.
- **Uzlabot darbības režīmu:** Kur PHP darbojas kā Apache modulis, mēs plānojam un testējam pāreju uz FastCGI.
- **Pārbaudīt pēdas:** Mēs saglabājam protokolus un pārbaudām sistēmas uz uzbrukuma pazīmēm.


## Biežāk uzdotie jautājumi

**Vai Windows Update atjaunina arī PHP?**  
Nē. PHP nav Windows daļa. Tas nāk kā ZIP arhīvs no php.net, kā pakotnes daļa, piemēram, XAMPP, vai kopā ar speciālu lietojumprogrammu, un jāatjaunina attiecīgajā ceļā.

**Vai man vajag Thread-Safe vai Non-Thread-Safe versiju?**  
Saskaņā ar php.net NTS paredzēta FastCGI, tātad, piemēram, IIS, un komandrindai. TS paredzēta darbībai kā modulis tīmekļa serverī, piemēram, Apache. Atjauninot ņemiet to pašu variantu kā līdz šim.

**Kā pārbaudīt, vai PHP lejupielāde ir īsta?**  
php.net pie katra Windows arhīva norāda SHA-256 kontrolsummu. Ar Get-FileHash PowerShell aprēķiniet lejupielādētā faila kontrolsummu un abas vērtības salīdziniet rakstzīmi pa rakstzīmei.

**Es serverī izmantoju XAMPP. Ko tagad darīt?**  
Tādas pakotnes kā XAMPP nes līdzi savu PHP un Apache, bieži ar PHP kā Apache moduli. Pārbaudiet, vai projekts piedāvā versiju ar labotu PHP, un pretējā gadījumā pārejiet uz uzturētu risinājumu. Produkcijai šādas izstrādātāju pakotnes tāpat nav paredzētas.

## Avoti

- [php.net: PHP lejupielāde Windows](https://www.php.net/downloads.php?os=windows)
- [PHP: atbalstītās versijas](https://www.php.net/supported-versions.php)
- [Apache HTTP Server: dokumentācija](https://httpd.apache.org/docs/)
