Direttorju tal-Artikoli
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.

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*-fpmWara 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.logIl-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.
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ L-artiklu "Adminer.php Access Blank? It-Tibdil tal-Ismijiet Jaħdem Normalment? Analiżi tal-Kawżi u Soluzzjoni Kompluta fi 3 Passi" maqsum hawn jista' jkun ta' għajnuna għalik.
Merħba biex taqsam il-link ta' dan l-artikolu:https://www.chenweiliang.com/cwl-34403.html
