ولې Adminer.php خالي دی؟ نوم بدلول یې ښه کار کوي؟ د لامل تحلیل او د 3 مرحلو حل.

پرون ماسپښین، زه په سرور کې د اډمینر ډیټابیس مدیریت وسیله تنظیموم. اډمینر سپک او کارول یې اسانه دي؛ د PHP یو واحد فایل کار کوي، د phpMyAdmin برعکس چې ډیری انحصارونو ته اړتیا لري. ما د رسمي ویب پاڼې څخه وروستۍ نسخه ډاونلوډ کړه، سرور ته یې اپلوډ کړه، اجازې یې تنظیم کړې، او خپل براوزر مې خلاص کړ، د دې د لیدلو لپاره چمتو وم.

بیا، هرڅه خالي شول.

ولې Adminer.php خالي دی؟ نوم بدلول یې ښه کار کوي؟ د لامل تحلیل او د 3 مرحلو حل.

ما پاڼه درې ځله تازه کړه، زما ګوتې د F5 د څو ځله فشارولو له امله درد کوي. بیا هم هیڅ نه. ما د براوزر د پراختیا کونکي وسیلې خلاصې کړې؛ دا د 200 OK تېروتنه وښودله، مګر د ځواب بدن خالي و. زه په بشپړ ډول حیران وم. څه روان وو؟

ما د یوې شیبې لپاره په دې اړه فکر وکړ. ایا دا د فایل اجازې ستونزه کیدی شي؟ ما چیک کړه، او دا 755 وه. ایا دا د PHP نسخه نا مطابقت کیدی شي؟ ما چیک کړه، او دا PHP 8.2 دی، کوم چې ښه دی. ایا فایل پخپله غلط کیدی شي؟ ما یو نوی کاپي ډاونلوډ کړ، بیا یې ولیکه، او دا لاهم خالي دی.

د یو ناڅرګند دلیل لپاره، ما فکر وکړ، ولې د خپل نوم بدلولو هڅه ونه کړم؟

ما د adminer.php نوم adminer1.php ته بدل کړ او پاڼه مې تازه کړه.

لاسرسی بریالی شو.

زه په ریښتیا سره حیران وم. ورته فایل، ورته کوډ، ورته سرور، او دا یوازې د نوم بدلولو سره لاسرسی کیدی شي؟ دا څه ډول صوفیانه منطق دی؟

د خالي adminer.php فایل ستونزه

وروسته ما پوه شوم چې دا یو ډول توهم نه و؛ دا د PHP کیشنګ و چې ستونزه یې رامینځته کوله.

OPcache، د Opcode Cache لنډیز، د PHP لپاره د فعالیت اصلاح کولو توسیع دی. د دې اصل ساده دی: PHP یوه تشریح شوې ژبه ده، او هره غوښتنه د اجرا کولو دمخه د PHP کوډ په opcode کې تالیف کولو ته اړتیا لري. OPcache تالیف شوې پایله په حافظه کې زیرمه کوي، وروسته غوښتنو ته اجازه ورکوي چې د بیا تالیف پرته مستقیم کیش شوي نسخه وکاروي، چې پایله یې د پام وړ فعالیت ښه والی دی.

خو ستونزه هلته ده.

پخوا، adminer.php به "فایل ونه موندل شو" ښودل (ما غلط فایل اپلوډ کړی و)، او OPcache د دې غلط مینځپانګې راټول شوي پایله کیش کړې وه. وروسته، ما adminer.php د سم کوډ سره بدل کړ، مګر OPcache دا له پامه غورځوله او د حافظې څخه یې زوړ کیش لوستلو ته دوام ورکړ، چې پایله یې خالي پاڼه یا زوړ غلطۍ پیغام و.

کله چې تاسو یې adminer1.php ته بدل کړئ، دا د OPcache لپاره په بشپړ ډول نوې فایل لاره کیږي، او دا به یې بیا پورته کړي او په سمه توګه به یې حل کړي.

دا داسې ده لکه تاسو لا دمخه یو نوی کتاب ترلاسه کړی وي، مګر د کتابتون د شاخص کارت لاهم د زاړه کتاب د تلیفون شمیره لري. کله چې تاسو په المارۍ کې د هغې د لټون لپاره ځئ، البته، دا خالي وي. مګر که تاسو د کتاب سرلیک بدل کړئ، کتابتون به ستاسو لپاره یو نوی شاخص کارت جوړ کړي، او بیا تاسو یې موندلی شئ.

دلیل ۱: د OPcache کیش د خالي ځایونو لامل کیږي

د دې سره څنګه معامله وکړو؟

د PHP-FPM خدمت بیا پیل کړئ او د OPcache کیش پاک کړئ.

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

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

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

د بیا چالانولو وروسته، د فایل نوم بیرته adminer.php ته بدل کړئ، ویب پاڼه تازه کړئ (سپارښتنه کیږي چې د براوزر تازه کولو لپاره Ctrl+F5 فشار ورکړئ)، او ستونزه باید حل شي.

خو کیسه لا پای ته نه ده رسیدلې.

د PHP-FPM بیا پیلولو وروسته، ما د adminer.php فایل بیرته بدل کړ، پاڼه یې تازه کړه، مګر دا لاهم خالي وه. زه په بشپړ ډول حیران وم.

دلیل 2: د Nginx ترتیب قواعد محدودیتونه

دا دوهم احتمالي دلیل ته لار هواروي.

د Nginx ترتیب فایل ممکن د adminer.php محدودولو لپاره ځانګړي قواعد ولري.

ما مخکې د HestiaCP پینل کې Fail2Ban تنظیم کړی و او د adminer.php لپاره مې د brute-force بریدونو مخنیوي لپاره د دقیق میچ قاعده لیکلې وه . دې قاعدې د فایل نوم adminer.php هارډ کوډ کړی و، نو یوځل چې تاسو یې adminer1.php ته بدل کړ، تاسو د Nginx دا قاعده له پامه وغورځوله او په نورمال ډول یې لاسرسی کولی شو.

د ستونزو حل کولو طریقه ساده ده: د Nginx ترتیب کې د سخت کوډ شوي ننوتلو لټون وکړئ.

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

که تاسو د `location = /adminer.php { … }` په څیر قواعد ومومئ، نو دا پدې مانا ده چې Nginx دا ځانګړی فایل نوم په ځانګړي ډول اداره کوي. یوازې یې حذف کړئ یا یې تعدیل کړئ.

دلیل 3: د PHP د ښودلو ترتیباتو تېروتنه

دریم دلیل ډیر نازک دی.

د PHP سکرېپټ مداخله کیږي یا تېروتنه اچوي، مګر پاڼه د تېروتنې ښودنه (display_errors = Off) غیر فعالوي. په تولیدي چاپیریال کې، PHP په ډیفالټ ډول تېروتنې پټوي، یو خالي پاڼه ښکاره کوي. که ستاسو د ننوتلو فایل (د مثال په توګه، index.php) د "./adminer.php" شاملولو هڅه کولو پرمهال د کوم دلیل لپاره کریش شي، پاڼه به په ساده ډول خالي شي.

په دې حالت کې، د تېروتنې لاګ چک کول ترټولو باوري طریقه ده:

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

لاګ به تاسو ته د سپینې پردې اصلي دلیل ووایی.

په صادقانه توګه، ما بالاخره د error.log په چک کولو سره ستونزه وموندله. دا معلومه شوه چې adminer.php د PHP غیر موجود توسیع ته زنګ وهي، او display_errors بند و، نو پاڼه خالي وه، مګر د غلطۍ لاګ دا په روښانه توګه ثبت کړه.

د حل لارې او د ستونزو حل کولو مرحلې

دې پېښې پر ما ژور اغېز پرېښود.

تخنیکي ستونزې اکثره دومره ساده نه وي لکه څنګه چې په سطحه ښکاري. د adminer.php یوه خالي فایل ممکن په لومړي نظر کې د فایل ستونزې په څیر ښکاري، مګر ژور کیندل کولی شي د کیش کولو ستونزه ښکاره کړي، په پای کې دا د ترتیب کولو ستونزه کیدی شي، او بیا هم په پای کې دا پخپله د کوډ سره ستونزه کیدی شي.

که تاسو پروګرامر نه یاست، نو تاسو شاید فکر وکړئ چې دا شیان ستاسو لپاره غیر اړونده دي. مګر د دې په اړه فکر وکړئ: هر اپلیکیشن چې تاسو یې کاروئ، هره ویب پاڼه چې تاسو یې ګورئ، د پردې تر شا ورته سیسټم لري. کیچ کول، ترتیب کول، د غلطۍ اداره کول - دا مفکورې په حقیقت کې هرچیرې دي.

لکه موږ انسانان. ډیری وختونه، هغه "نښې" چې موږ یې ښکاره کوو، لکه ځنډ، اضطراب، او خپګان، ممکن په سطحه د سستۍ په څیر ښکاري، مګر ژور کیندل، دا ممکن د ناڅرګندو اهدافو، نور کیندلو، د ناکامۍ ویره، او حتی ژور، د ماشومتوب تجربو لخوا جوړ شوي ذهنیت له امله وي.

یوازې د اصلي لامل په موندلو سره موږ کولی شو سم درمل وړاندیز کړو.

په پای کې، که تاسو د خالي adminer.php فایل سره هم مخ شئ، نو دا په دې ترتیب سره وګورئ:

لومړی، د PHP-FPM بیا پیل کړئ او کیچ پاک کړئ، بیا د Nginx ترتیب وګورئ، او په پای کې error.log وګورئ.

په ډیری مواردو کې، لومړني دوه ګامونه د ستونزې د حل لپاره کافي دي.

البته، که دا بیا هم کار ونکړي، نو error.log وګورئ.

دا به تاسو ته ځواب ووایی.

څرنګه چې تاسو تر دې دمه لوستلي دي، که تاسو ګټور وموندل، مهرباني وکړئ خوښ یې کړئ او شریک یې کړئ. که تاسو غواړئ لومړی تازه معلومات ترلاسه کړئ، تاسو کولی شئ ما تعقیب کړئ!

زما د مقالې د لوستلو لپاره مننه. بل ځل به سره ګورو.

هیله ده، د چن وییلینګ په بلاګ ( https://www.chenweiliang.com/ ) کې شریک شوی مقاله "Adminer.php لاسرسی خالي دی؟ نوم بدلول په نورمال ډول کار کوي؟ د لاملونو تحلیل او د ستونزې د بشپړ حل لپاره 3 ګامونه" به ستاسو لپاره ګټور وي.

د دې مقالې لینک شریکولو لپاره وړیا احساس وکړئ: https://www.chenweiliang.com/cwl-34403.html

د نورو پټو چلونو د خلاصولو لپاره، زموږ د ټیلیګرام چینل سره یوځای کیدو ته ښه راغلاست!

که مو خوښه شوه لایک او شریک کړئ! ستاسو شریکول او خوښول زموږ دوامداره هڅونه ده!

 

评论 评论

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

پاس شئ