Dasturiy ta'minot

ColdFusion Serverlarda PHP Ishlayotganmi? Qanday Tekshirish va Uni O'chirish

27-oktabr, 2026, 10:180 ko'rish4 daqiqa o'qish
ColdFusion Serverlarda PHP Ishlayotganmi? Qanday Tekshirish va Uni O'chirish

ColdFusion yoki Lucee bilan Windows serverda IIS ishlatayotganlar uchun PHP serverda qanday ishlayotganini va uni qanday xavfsiz o'chirishni bilish muhim. PHP serverda qanday ishlayotganini tekshirish va uni o'chirishning bir nechta usullari mavjud.

Nima sodir bo'ldi?

2026-yil 21-oktyabrda PHP ikki kritik xatoni tuzatish uchun favqulodda yangilanishlarni chiqardi. Bu xatolar PHP serverlarda kodni ijro etish imkonini berardi. Bu yangilanishlar PHP-FPM, Apache mod_php, php-cgi, FrankenPHP va LiteSpeed uchun ham amal qiladi.

Mening hosting kompaniyam 2026-yil oktyabr oyida web-server xavfsizligi uchun yangi qoidalarni kiritdi. Bu qoidalar IIS serverdagi URL qayta yozish qoidalariga asoslangan va har bir saytga ta'sir ko'rsatdi. Bu qoidalar multipart/form-data turidagi so'rovlarni blokladi, chunki bu turdagi so'rovlar fayl yuklash uchun ishlatiladi.

PHPning o'z maslahati bu xatolarni tuzatish va oldin session.upload_progress.enabled va post_max_size ni o'chirishni tavsiya qiladi. Bu qoidalar PHP serverlarida fayl yuklashni boshqarish uchun mo'ljallangan.

PHP serverda ishlayotganmi?

PHP serverda ishlayotganini tekshirish uchun PowerShell foydalanish mumkin. PowerShellni administrator sifatida oching va quyidagi buyruqlarni bajaring:

Import-Module WebAdministration

Import-Module WebAdministration
Get-WebHandler -PSPath 'IIS:\Sites' | Where-Object { $_.path -like '*.php' } | Select-Object name, path, scriptProcessor

Get-WebHandler -PSPath 'IIS:\Sites' | Where-Object { $_.path -like '*.php' } | Select-Object name, path, scriptProcessor

Agar hech narsa chiqmasa, IIS PHPni ishga tushirmaydi. Agar biror narsa chiqsa, PHP ishlayotgani va uni qanday o'chirish kerakligini bilish mumkin.

PHP fayllari bormi?

PowerShellning Get-ChildItem -Recurse buyrug'i ishlatilishi mumkin, ammo u bir necha daqiqaga cho'zilgan bo'lishi mumkin. Windowsning o'z dir buyrug'i tezroq ishlaydi. Quyidagi buyruq web root ostidagi PHP fayllarini sanaydi:

cmd /c "dir C:\inetpub\wwwroot\*.php /s /b" 2>$null | Measure-Object | Select-Object Count

name    path  scriptProcessor
----    ----  ---------------
FastCGI *.php C:\php\php-cgi.exe

Agar sanovchi nol bo'lmasa, quyidagi buyruq PHP fayllarini topadi:

cmd /c "dir C:\inetpub\wwwroot\*.php /s /b" 2>$null | ForEach-Object { Split-Path $_ -Parent } | Group-Object | Sort-Object Count -Descending | Select-Object -First 25 Count, Name | Format-Table -AutoSize

Agar tanish bo'lmagan PHP fayllar topilsa, bu xavfsizlik buzilishi bo'lishi mumkin. Quyidagi buyruq eng so'nggi o'zgarishlarni ko'rsatadi:

cmd /c "dir C:\inetpub\wwwroot\*.php /s /b" 2>$null | Get-Item | Sort-Object LastWriteTime -Descending | Select-Object -First 15 LastWriteTime, Length, FullName | Format-Table -AutoSize

cmd /c "dir C:\inetpub\wwwroot\*.php /s /b" 2>$null | Measure-Object | Select-Object Count

PHP o'rnatilganmi yoki ishlayotganmi?

PHP o'rnatilgan yoki ishlayotganini tekshirish uchun quyidagi buyruqlarni bajaring:

Get-Process php* -ErrorAction SilentlyContinue | Select-Object Name, Id, StartTime

Test-Path C:\php

php-cgi.exe jarayoni bo'lmasa, bu PHP so'rovlar uchun talab qilinmaganini anglatadi. IIS talab bo'lganda PHPni ishga tushiradi.

cmd /c "dir C:\inetpub\wwwroot\*.php /s /b" 2>$null | ForEach-Object { Split-Path $_ -Parent } | Group-Object | Sort-Object Count -Descending | Select-Object -First 25 Count, Name | Format-Table -AutoSize

Internet qanday ko'rinadi?

Har qanday kompyuterdan o'z saytingizdagi odatiy manzillarni sinab ko'ring:

foreach ($path in "phpmyadmin/", "phpMyAdmin/", "pma/", "info.php") { $url = "https://www.mysite.com/$path" try { $r = Invoke-WebRequest $url -UseBasicParsing -TimeoutSec 15; "$($r.StatusCode) $url" } catch { "$($_.Exception.Response.StatusCode.value__) $url" } }

200 javobi bo'lgan har bir narsa tekshirilishi kerak. Internetga ochiq phpMyAdmin kirish sahifasi bots uchun doimiy taklifdir.

Xavfsiz o'chirish

Quyidagi qadamlarni tartib bilan bajaring va oldin saqlang. Har bir qadam qaytarilishi mumkin.

cmd /c "dir C:\inetpub\wwwroot\*.php /s /b" 2>$null | Get-Item | Sort-Object LastWriteTime -Descending | Select-Object -First 15 LastWriteTime, Length, FullName | Format-Table -AutoSize

1. IIS konfiguratsiyasini saqlang

IIS o'z konfiguratsiyasini bir buyruq bilan saqlay oladi va qayta tiklay oladi:

& "$env:windir\System32\inetsrv\appcmd.exe" add backup "before-php-removal"

Barcha qadamlarni qaytarish uchun: appcmd.exe restore backup "before-php-removal"

Get-Process php* -ErrorAction SilentlyContinue | Select-Object Name, Id, StartTime
Test-Path C:\php

2. phpMyAdmin (va boshqa PHP ilovalari)ni web papkalaridan ko'chiring

phpMyAdmin va boshqa PHP ilovalarini web papkalaridan ko'chiring, lekin o'chirmang.

3. PHP handler mappingni o'chiring

PowerShellni administrator sifatida oching va quyidagi buyruqlarni bajaring:

foreach ($path in "phpmyadmin/", "phpMyAdmin/", "pma/", "info.php") {
    $url = "https://www.mysite.com/$path"
    try { $r = Invoke-WebRequest $url -UseBasicParsing -TimeoutSec 15; "$($r.StatusCode) $url" }
    catch { "$($_.Exception.Response.StatusCode.value__) $url" }
}

Remove-WebHandler -Name FastCGI -PSPath 'IIS:\Sites\Default Web Site'

4. PHPni o'chiring

PHPni o'chirish uchun quyidagi buyruqlarni bajaring:

Remove-Item -Path C:\php -Recurse -Force

5. IIS konfiguratsiyasini qayta tiklang

Agar biron bir narsa noto'g'ri bo'lsa, IIS konfiguratsiyasini qayta tiklang:

appcmd.exe restore backup "before-php-removal"

Asl manba: gregoryalexander.com

Manba: Hacker News
#ColdFusion #PHP #xavfsizlik #server #IIS
Telegram da muhokama qilish