Għaliex Adminer.php huwa vojt? Madankollu, it-tibdil tal-isem jaħdem tajjeb? Analiżi tal-kawża u soluzzjoni fi 3 passi.

Ilbieraħ wara nofsinhar, kont qed nikkonfigura l-għodda tal-ġestjoni tad-database Adminer fuq is-server. Adminer huwa ħafif u faċli biex tużah; fajl PHP wieħed jagħmel ix-xogħol, għall-kuntrarju ta'...phpMyAdminDak kien jinstalla għadd ta’ dipendenzi. Niżżilt l-aħħar verżjoni mill-websajt uffiċjali, tellajtha fuq is-server, issettjajt il-permessi, ftaħt il-browser tiegħi, u ppreparajt ruħi biex naraha b’għajnejja stess.

Imbagħad, kollox sar vojt.

Għaliex Adminer.php huwa vojt? Madankollu, it-tibdil tal-isem jaħdem tajjeb? Analiżi tal-kawża u soluzzjoni fi 3 passi.

Aġġornajt il-paġna tliet darbiet, subgħajja kienu qed iweġġgħuni milli għafast F5 tant drabi. Xorta xejn. Ftaħt l-għodod tal-iżviluppatur tal-browser; wera żball 200 OK, iżda l-korp tar-rispons kien vojt. Bqajt kompletament ixxukkjat. X'kien qed jiġri?

Ħsibt dwarha għal mument. Tista' tkun kwistjoni ta' permess tal-fajl? Iċċekkjajt, u kienet 755. Tista' tkun inkompatibilità tal-verżjoni tal-PHP? Iċċekkjajt, u hija PHP 8.2, li hija tajba. Jista' jkun li l-fajl innifsu huwa difettuż? Niżżilt kopja ġdida, ktibtha fuqha, u għadha vojta.

Għal xi raġuni inspjegabbli, ħsibt, għaliex ma nipprovax nibdel ismi?

Semmejt mill-ġdid adminer.php għal adminer1.php u aġġornajt il-paġna.

L-aċċess kien ta' suċċess.

Kont tassew imħawwad. L-istess fajl, l-istess kodiċi, l-istess server, u huwa aċċessibbli sempliċement billi tbiddel l-isem? X'tip ta' loġika mistika hija din?

Il-kwistjoni ta' fajl adminer.php vojt

Aktar tard indunajt li din ma kinitx xi tip ta’ superstizzjoni; kien il-caching tal-PHP li kien qed jikkawża l-problema.

OPcache, taqsira għal Opcode Cache, hija estensjoni ta' ottimizzazzjoni tal-prestazzjoni għal PHP. Il-prinċipju tagħha huwa sempliċi: PHP hija lingwa interpretata, u kull talba teħtieġ li l-kodiċi PHP jiġi kkompilat f'opcode qabel l-eżekuzzjoni. OPcache jaħżen ir-riżultat ikkumpilat fil-memorja, u jippermetti li talbiet sussegwenti jużaw il-verżjoni fil-cache direttament mingħajr rikompilazzjoni, li tirriżulta f'titjib sinifikanti fil-prestazzjoni.

Imma hemmhekk tinsab il-problema.

Preċedentement, adminer.php kien juri "Fajl mhux misjub" (kont tellajt il-fajl żbaljat), u OPcache kien żamm fil-cache ir-riżultat ikkumpilat ta' dak il-kontenut żbaljat. Aktar tard, bdejt nuża l-kodiċi korrett ta' adminer.php, iżda OPcache injorah u kompla jaqra l-cache l-antik mill-memorja, li rriżulta f'paġna vojta jew fil-messaġġ ta' żball l-antik.

Meta tibdel isemha għal adminer1.php, issir mogħdija ta' fajl kompletament ġdida għal OPcache, u terġa' tgħabbiha u ssolviha b'mod korrett.

Qisu li diġà xtrajt ktieb ġdid, imma l-karta tal-indiċi tal-librerija għad għandha n-numru tas-sejħa tal-ktieb il-qadim fuqha. Meta tmur tfittxu fuq l-ixkaffa, naturalment, ikun vojt. Imma jekk tbiddel it-titlu tal-ktieb, il-librerija toħloq karta tal-indiċi ġdida għalik, u mbagħad tkun tista' ssibu.

Raġuni 1: Il-cache tal-OPcache jikkawża spazji vojta

Kif tittrattaha?

Erġa' ibda s-servizz PHP-FPM u neħħi l-cache tal-OPcache.

# 查看正在运行的PHP版本
php -v

# 重启对应的PHP-FPM(例如PHP 8.5)
sudo systemctl restart php8.5-fpm

# 或者重启所有PHP-FPM服务
sudo systemctl restart php*-fpm

Wara li terġa' tibda, semmi mill-ġdid il-fajl għal adminer.php, aġġorna l-paġna web (huwa rrakkomandat li tagħfas Ctrl+F5 biex tisforza l-aġġornament tal-browser), u l-problema għandha tkun solvuta.

Imma l-istorja għadha mhix spiċċat.

Wara li erġajt bdejt PHP-FPM, biddilt lura l-fajl adminer.php, aġġornajt il-paġna, imma kienet għadha vojta. Kont kompletament imħawwad.

Raġuni 2: Restrizzjonijiet tar-regoli tal-konfigurazzjoni ta' Nginx

Dan iwassal għat-tieni raġuni possibbli.

Il-fajl tal-konfigurazzjoni ta' Nginx jista' jkollu regoli speċjali li jirrestrinġu adminer.php.

Kont hawn qabelHestiaCPF ġie kkonfigurat fil-pannell.ail2Ban implimenta regola ta' tqabbil preċiża għal adminer.php biex jipprevjeni attakki ta' forza bruta. Ir-regola tiddefinixxi l-isem tal-fajl adminer.php, allura jekk tibdel isem għal adminer1.php, tevita din ir-regola Nginx u tista' taċċessa s-sit normalment.

Il-metodu għas-soluzzjoni tal-problemi huwa sempliċi: fittex entrati hard-coded fil-konfigurazzjoni ta' Nginx.

sudo grep -rn "adminer.php" /etc/nginx/

Jekk issib regoli bħal `location = /adminer.php { … }`, ifisser li Nginx qed jittratta dan l-isem tal-fajl speċifiku b'mod speċjali. Sempliċement ħassarha jew immodifikaha.

Raġuni 3: Is-settings tal-wiri tal-iżbalji tal-PHP

It-tielet raġuni hija aktar sottili.

L-iskritt PHP jiġi interċettat jew jitfa' żball, iżda l-paġna tiddiżattiva l-wiri tal-iżbalji (display_errors = Off). F'ambjent ta' produzzjoni, PHP jaħbi l-iżbalji awtomatikament, u juri paġna vojta. Jekk il-fajl tad-dħul tiegħek (eż., index.php) jiġġarraf għal xi raġuni waqt li jipprova jinkludi "./adminer.php", il-paġna sempliċement issir vojta.

F'din is-sitwazzjoni, l-iċċekkjar tal-log tal-iżbalji huwa l-aktar metodu affidabbli:

# 查看Nginx错误日志
sudo tail -n 20 /var/log/nginx/error.log

# 或者查看HestiaCP对应域名的error日志
sudo tail -n 20 /var/log/nginx/domains/adminer.domain.com.error.log

Il-log jgħidlek ir-raġuni vera għall-iskrin abjad.

Biex inkun onest, fl-aħħar sibt il-problema billi ċċekkjajt l-error.log. Irriżulta li adminer.php kien qed isejjaħ estensjoni PHP li ma teżistix, u display_errors kien mitfi, għalhekk il-paġna kienet vojta, iżda l-log tal-iżbalji rreġistraha b'mod ċar.

Soluzzjonijiet u passi għas-soluzzjoni tal-problemi

Dan l-inċident ħallieli impressjoni profonda.

Problemi tekniċi ħafna drabi mhumiex sempliċi daqs kemm jidhru fuq wiċċ l-ilma. Fajl adminer.php vojt jista' jidher bħala problema ta' fajl mal-ewwel daqqa t'għajn, iżda jekk tħaffer aktar fil-fond tista' tiżvela problema ta' caching, aktar 'il quddiem tista' tkun problema ta' konfigurazzjoni, u aktar 'il quddiem tista' tkun problema bil-kodiċi nnifsu.

Jekk m'intix programmatur, tista' taħseb li dawn l-affarijiet mhumiex rilevanti għalik. Imma aħseb dwarha: kull app li tuża, kull paġna web li żżur, għandha sistema simili li taħdem wara l-kwinti. Il-caching, il-konfigurazzjoni, l-immaniġġjar tal-iżbalji—dawn il-kunċetti fil-fatt jinsabu kullimkien.

Eżatt bħalna l-bnedmin. Ħafna drabi, is-"sintomi" li nuru, bħall-prokrastinazzjoni, l-ansjetà, u l-irritabilità, jistgħu jidhru bħala għażż fuq wiċċhom, iżda meta nħaffru aktar fil-fond, jistgħu jkunu dovuti għal miri mhux ċari, aktar tħaffir, biża' tal-falliment, u saħansitra aktar fil-fond, mentalità ffurmata mill-esperjenzi tat-tfulija.

Huwa biss billi nsibu l-kawża ewlenija vera li nistgħu nippreskrivu l-mediċina t-tajba.

Fl-aħħarnett, jekk tiltaqa' wkoll mal-problema ta' fajl adminer.php vojt, iċċekkjah f'din l-ordni:

L-ewwel, erġa' ibda PHP-FPM u neħħi l-cache, imbagħad iċċekkja l-konfigurazzjoni tal-Nginx, u fl-aħħar iċċekkja l-error.log.

Fil-biċċa l-kbira tal-każijiet, l-ewwel żewġ passi huma biżżejjed biex isolvu l-problema.

Naturalment, jekk dan xorta ma jaħdimx, imbagħad iċċekkja l-error.log.

Se jgħidlek it-tweġiba.

Ladarba qrajt s'hawn, jekk sibtha utli, jekk jogħġbok agħti like u aqsamha. Jekk trid tirċievi aġġornamenti l-ewwel, tista' wkoll issegwini!

Grazzi talli qrajt l-artiklu tiegħi. Narak id-darba li jmiss.

发表 评论

您的邮箱地址不会被公开。 Jintużaw l-oqsma meħtieġa * Tikketta

Direttorju tal-Artikoli
Skrollja Top