Poukisa Adminer.php vid? Chanje non li fonksyone byen kanmenm? Analiz kòz la ak yon solisyon an 3 etap.

Yè apremidi, mwen t ap konfigire zouti jesyon baz done Adminer sou sèvè a. Adminer lejè epi fasil pou itilize; yon sèl fichye PHP fè travay la, kontrèman ak phpMyAdmin ki mande yon pakèt depandans. Mwen telechaje dènye vèsyon an sou sit entènèt ofisyèl la, mwen telechaje l sou sèvè a, mwen mete pèmisyon yo, epi mwen louvri navigatè mwen an, pare pou m tcheke li.

Apre sa, tout bagay te vin vid.

Poukisa Adminer.php vid? Chanje non li fonksyone byen kanmenm? Analiz kòz la ak yon solisyon an 3 etap.

Mwen rafrechi paj la twa fwa, dwèt mwen yo t ap fè m mal anpil fwa mwen te peze F5. Toujou pa gen anyen. Mwen louvri zouti devlopè navigatè a; li montre yon erè 200 OK, men kò repons lan te vid. Mwen te konplètman sezi. Kisa k t ap pase?

Mwen te reflechi sou sa pou yon ti moman. Èske se yon pwoblèm pèmisyon fichye? Mwen tcheke, epi li te 755. Èske se yon enkonpatibilite vèsyon PHP? Mwen tcheke, epi li se PHP 8.2, ki anfòm. Èske fichye a li menm gen pwoblèm? Mwen telechaje yon nouvo kopi, mwen ranplase li, epi li toujou vid.

Pou yon rezon eneksplikab, mwen te panse, poukisa mwen pa eseye chanje non mwen?

Mwen chanje non adminer.php pou l vin adminer1.php epi mwen rafrechi paj la.

Aksè a te reyisi.

Mwen te vrèman sezi. Menm fichye a, menm kòd la, menm sèvè a, epi li aksesib jis lè w chanje non an? Ki kalite lojik mistik sa ye menm?

Fichye adminer.php la vid.

Pita mwen reyalize ke sa pa t yon kalite sipèstisyon; se te caching PHP a ki te lakòz pwoblèm nan.

OPcache, abrevyasyon pou Opcode Cache, se yon ekstansyon optimize pèfòmans pou PHP. Prensip li senp: PHP se yon langaj entèprete, epi chak demann mande pou kòd PHP a konpile nan opcode anvan ekzekisyon. OPcache estoke rezilta konpile a nan memwa, sa ki pèmèt demann ki vin apre yo itilize vèsyon ki nan kach la dirèkteman san rekonpilasyon, sa ki lakòz yon amelyorasyon pèfòmans siyifikatif.

Men, se la pwoblèm nan ye.

Anvan sa, adminer.php te montre "Fichye pa jwenn" (mwen te telechaje move fichye a), epi OPcache te sere rezilta konpile kontni ki pa kòrèk la nan kach. Apre sa, mwen te ranplase adminer.php ak kòd ki kòrèk la, men OPcache te inyore li epi li te kontinye li ansyen kach la nan memwa, sa ki te lakòz yon paj vid oswa ansyen mesaj erè a.

Lè ou chanje non li an adminer1.php, li vin tounen yon chemen fichye konplètman nouvo pou OPcache, epi li pral rechaje epi rezoud li kòrèkteman.

Se tankou ou gen yon nouvo liv deja, men fich endèks bibliyotèk la toujou gen nimewo apèl ansyen liv la sou li. Lè w al chèche l sou etajè a, natirèlman, li vid. Men, si w chanje tit liv la, bibliyotèk la ap kreye yon nouvo fich endèks pou ou, epi apre sa w ap ka jwenn li.

Rezon 1: Kach OPcache lakòz espas vid

Ki jan fè fas ak li?

Rekòmanse sèvis PHP-FPM lan epi efase kach OPcache la.

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

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

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

Apre ou fin rekòmanse, chanje non fichye a pou l vin adminer.php, rafrechi paj wèb la (li rekòmande pou peze Ctrl+F5 pou fòse navigatè a rafrechi), epi pwoblèm nan ta dwe rezoud.

Men istwa a poko fini.

Apre mwen fin rekòmanse PHP-FPM, mwen chanje fichye adminer.php la ankò, mwen rafrechi paj la, men li te toujou vid. Mwen te konplètman dezoryante.

Rezon 2: Restriksyon règ konfigirasyon Nginx

Sa mennen nan dezyèm rezon posib la.

Fichye konfigirasyon Nginx la ka gen règ espesyal ki mete restriksyon sou adminer.php.

Mwen te deja konfigire Fail2Ban nan panèl HestiaCP a epi mwen te ekri yon règ egzak pou adminer.php pou anpeche atak fòs brit. Règ la te kode non fichye adminer.php la, kidonk yon fwa ou te chanje non li an adminer1.php, ou te kontoune règ Nginx sa a epi ou te ka jwenn aksè a li nòmalman.

Metòd depanaj la senp: chèche antre ki kode an dirèk nan konfigirasyon Nginx la.

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

Si ou jwenn règ tankou `location = /adminer.php { … }`, sa vle di Nginx ap jere non fichye espesifik sa a espesyalman. Jis efase li oswa modifye li.

Rezon 3: Paramèt ekspozisyon erè PHP yo

Twazyèm rezon an pi sibtil.

Yo entèsepte script PHP a oubyen li bay yon erè, men paj la dezaktive afichaj erè a (display_errors = Off). Nan yon anviwònman pwodiksyon, PHP kache erè yo pa defaut, li montre yon paj vid. Si fichye antre ou a (pa egzanp, index.php) plante pou kèk rezon pandan l ap eseye mete "./adminer.php", paj la ap tou senpleman vin vid.

Nan sitiyasyon sa a, tcheke jounal erè a se metòd ki pi fyab la:

# 查看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

Jounal la ap di w vrè rezon ki fè ekran blan an rive.

Pou m di laverite, mwen finalman jwenn pwoblèm nan lè m tcheke error.log la. Li te vin parèt ke adminer.php t ap rele yon ekstansyon PHP ki pa t egziste, epi display_errors te etenn, kidonk paj la te vid, men log erè a te anrejistre li byen klè.

Solisyon ak etap depanaj

Ensidan sa a kite yon gwo enpresyon sou mwen.

Pwoblèm teknik yo souvan pa osi senp jan yo parèt sou sifas la. Yon fichye adminer.php vid ka sanble yon pwoblèm fichye okòmansman, men fouye pi fon ka revele yon pwoblèm kach, pi devan li ta ka yon pwoblèm konfigirasyon, epi pi lwen toujou li ta ka yon pwoblèm ak kòd la li menm.

Si ou pa yon pwogramè, ou ta ka panse bagay sa yo pa enpòtan pou ou. Men, reflechi sou sa: chak aplikasyon ou itilize, chak paj wèb ou vizite, gen yon sistèm menm jan an k ap fonksyone an dèyè sèn nan. Kach, konfigirasyon, jesyon erè—konsèp sa yo aktyèlman toupatou.

Menm jan ak nou menm lèzòm. Anpil fwa, "sentòm" nou montre yo, tankou ranvwaye bagay yo, enkyetid, ak iritabilite, ka sanble ak parese sou sifas la, men lè nou fouye pi fon, yo ka akòz objektif ki pa klè, plis fouyman, yon laperèz pou echwe, e pi fon toujou, yon mantalite ki fòme pa eksperyans anfans.

Se sèlman lè nou jwenn vrè kòz la nou ka preskri bon medikaman an.

Finalman, si ou rankontre pwoblèm yon fichye adminer.php vid tou, verifye li nan lòd sa a:

Premyèman, rekòmanse PHP-FPM epi efase kach la, answit tcheke konfigirasyon Nginx la, epi finalman tcheke error.log la.

Nan pifò ka yo, de premye etap yo sifi pou rezoud pwoblèm nan.

Natirèlman, si sa toujou pa mache, tcheke error.log la.

Li pral di ou repons lan.

Piske ou fin li tout sa, si ou twouve l itil, tanpri like li epi pataje li. Si ou vle resevwa dènye nouvèl yo an premye, ou ka swiv mwen tou!

Mèsi paske ou li atik mwen an. N a wè pita.

kòmantè

您的邮箱地址不会被公开。必填项已用*标注

Ki gen tèt