เว็บไซต์สดว่างเปล่าในส่วนหน้าหรือเก็บไว้ในการโหลดและไม่เคยโหลด


23

ฉันกำลังเผชิญกับปัญหาที่แปลกประหลาดที่สุดในวีโอไอพี เราใช้เวอร์ชั่น 1.9.0

จาก 2 เดือนล่าสุดไซต์สดของเราคือ "ว่างเปล่า" หรือ "โหลดต่อเนื่อง" สำหรับเบราว์เซอร์ที่ใช้แล้ว หมายถึงในเบราว์เซอร์นี้เราได้เยี่ยมชมเว็บไซต์หลายครั้ง

ในบางเบราว์เซอร์มันใช้งานได้ดี ในบางรายการแสดงว่างเปล่า

แต่แบ็คเอนด์ทำงานได้ดีในเบราว์เซอร์ทั้งหมด

เรากำลังประสบปัญหาในโครเมี่ยม, โมซิลล่า, โอเปร่าและเบราว์เซอร์อื่น ๆ ทั้งหมด

1) หากเราล้างประวัติเบราว์เซอร์ [แคชและคุกกี้] กว่าที่ใช้งาน

2) ถ้าเราเปิดเว็บไซต์เดียวกันในหน้าต่างส่วนตัวมันทำงานได้

3) ถ้าเราเปิดเว็บไซต์ในเบราว์เซอร์ที่ติดตั้งใหม่มันจะทำงานได้ในบางครั้ง ว่างเปล่าอีกครั้งหลังจากเราใช้เว็บไซต์

4) หากเราล้างโฟลเดอร์ var / session กว่าจะเริ่มทำงานกับเบราว์เซอร์ทั้งหมดในบางครั้ง ไซต์ว่างอีกครั้ง

5) บางครั้งเว็บไซต์จะทำการโหลดต่อไปและมันจะไม่โหลด ....

ฉันจะตรวจสอบsystem.log & exception.log แต่ดูเหมือนว่าไม่มีข้อผิดพลาดที่เกี่ยวข้องกับเรื่องนี้ เรากำลังใช้https สำหรับหน้าเว็บที่ปลอดภัย แม้เรามีแอพถ่ายทอดสดสำหรับเว็บไซต์นี้ บางครั้งเราจะได้รับข้อผิดพลาดร้ายแรง:

**Fatal error**: Allowed memory size of 536870912 bytes exhausted (tried to allocate 85 bytes) in /lib/Zend/Db/Statement/Pdo.php or lib/Varien/Object.php or /lib/Varien/Db/Select.php or app/code/core/Mage/Core/Model/Config.php

เราตั้ง memory_limit = 1512 Mb ใน php.ini

ใน. htaccessเรามีไฟล์ต่อไปนี้

php_value memory_limit 1512M php_value max_execution_time 18000

เราไม่ใส่เครื่องหมายข้อคิดเห็นนี้:

ini_set('display_errors', 1);

แต่ไม่มีข้อผิดพลาดแสดงในส่วนหน้า นี่คือบันทึกข้อผิดพลาด apache :

child pid 23845 exit exit การแบ่งส่วนผิดปกติ (11), coredump ที่เป็นไปได้ใน / etc / apache2

การดิ้นรนเพื่อแก้ไขปัญหานี้จริงๆ ปัญหานี้เกี่ยวข้องกับรหัสของเราหรือปัญหานี้เกี่ยวข้องกับฝั่งเซิร์ฟเวอร์หรือไม่

เบราว์เซอร์คุกกี้เป็นปัญหาหลักหรือไม่ ถ้าเป็นเช่นนั้นสิ่งที่ต้องทำเพื่อแก้ไขปัญหาคุกกี้นี้สำหรับเบราว์เซอร์ทั้งหมด ทำไมมันเริ่มทำงานเมื่อเราล้างโฟลเดอร์เซสชั่น?

เราต้องเผชิญกับปัญหาเหล่านี้เมื่อเรียกดูเว็บไซต์ของเรา ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่


เป็นไปได้หรือไม่ว่าเป็นปัญหาเกี่ยวกับคุกกี้ stackoverflow.com/questions/15491819/…
pzirkind

ลิงก์ที่ฉันวางไว้สำหรับแบ็กเอนด์ แต่ส่วนหน้าอาจมีปัญหาคุกกี้เช่นกัน ... มันอาจเป็นเพราะอายุการใช้งานของคุกกี้และการประทับเวลาของเซิร์ฟเวอร์ปิดอยู่
pzirkind

@ pzirkind ในส่วนแบ็คเอนด์ของเรานั้นใช้ได้กับเบราว์เซอร์ทั้งหมด กว่าที่เราจะต้องเพิ่มอายุการใช้งานของคุกกี้ผ่านรหัส? และฉันไม่ได้เกี่ยวกับการประทับเวลาของเซิร์ฟเวอร์ปิดอยู่ เราต้องทำมันต่อไปไหม?
เด็กใน Magento

@Babby ใน Magento บางครั้งหากเซิร์ฟเวอร์ไม่มีการประทับเวลาที่ถูกต้องมันจะสร้างคุกกี้ที่หมดอายุก่อนวันที่ปัจจุบันดังนั้นเมื่อลูกค้าโหลดไซต์ใหม่และ Magento ตรวจสอบคุกกี้ว่าไม่ถูกต้อง
pzirkind

@pzirkind มีความเป็นไปได้ที่ข้อผิดพลาด apache โพสต์ในคำถามหรือการประทับเวลาอาจเป็นเหตุผลสำหรับหน้าว่างนี้หรือไม่?
เด็กใน Magento

คำตอบ:


10

เปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์ใน.htaccessไฟล์ของคุณก่อนเพิ่มสิ่งต่อไปนี้ที่ท้ายไฟล์:

SetEnv MAGE_IS_DEVELOPER_MODE "true"

แก้ไขถัดไปindex.phpและยกเลิกหมายเหตุบรรทัด:

#ini_set('display_errors', 1);

อ้างอิงบรรทัด:

เข้าสู่ระบบต่อไปผ่าน SSH และมองหาไฟล์การถ่ายโอนข้อมูลหลักภายใต้/tmpเป็นข้อผิดพลาดข้อผิดพลาดส่วนที่กล่าวถึง บางครั้งก็ยังสามารถอยู่ในรากหรือในไดเรกทอรีรากของเว็บไซต์ของตัวเองตัวอย่างเช่น://var/www/html/videomergerapp/

หากคุณไม่สามารถค้นหาไฟล์ดัมพ์หลักใด ๆ คุณอาจต้องการเพิ่มคำสั่งเพิ่มเติมใน PHP / Apache

ลองดูที่นี่:

เมื่อคุณมีไฟล์ core dump คุณสามารถใช้gdb(ถ้า--enable-debug) ถูกใช้เมื่อ PHP ถูกกำหนดค่า คุณสามารถทำการตัดสินใจนี้ได้ด้วยการออกสิ่งต่อไปนี้จาก Command Line:

php -i | grep debugหรือเพียงแค่สร้างไฟล์สคริปต์ php ในรูทเว็บเซิร์ฟเวอร์ของคุณด้วย: <?php phpinfo(); ?>ในเนื้อหาและดูไฟล์ผ่านทางเว็บเบราว์เซอร์เพื่อดูค่าการตั้งค่า PHP

หากไม่ได้เปิดใช้งานคุณจะไม่สามารถรับ backtrace แบบเต็มใน PHP ได้ แต่จะเรียกเฉพาะระบบที่สูงกว่าและ / หรือ apache backtrace:

หากคุณมีสิทธิ์เข้าถึงไฟล์ core dump ที่ออกสิ่งต่อไปนี้จะช่วยให้คุณมี backtrace เพื่อช่วยค้นหาจุดที่ล้มเหลว:

gdb /usr/local/apache2/bin/httpd /tmp/core.2027


หากคุณกำลังประสบปัญหาสุ่มเท่านั้นในส่วนหน้าและไม่เคยแบ็กเอนด์สัญญาณส่วนใหญ่จะชี้ไปที่ปัญหาที่เป็นไปได้ด้วยการเข้ารหัสแม่แบบของคุณ เมื่อคุณพบหน้าว่าง (และ / หรือข้อผิดพลาดจะปรากฏขึ้นหากคุณเปิดใช้งานโหมดผู้พัฒนาและการแสดงข้อผิดพลาด) เข้าสู่ระบบผู้ดูแลระบบของคุณและปิดการใช้งานแคชทั้งหมดและล้างแคชและที่เก็บแคชทั้งหมด

จากนั้นไปที่app/etc/local.xmlและตั้งค่าปิดการใช้งานโมดูลในท้องถิ่นเป็นจริง

<disable_local_modules>true</disable_local_modules>

นี้จะปิดการใช้งานรถตักดินแบบอัตโนมัติจากการโหลดโมดูลใด ๆ app/code/localใน

เมื่อต้องการปิดใช้งานโมดูลชุมชนคุณสามารถผ่านไฟล์นิยามโมดูลแต่ละไฟล์ที่คุณพบapp/etc/modulesและปิดใช้งานได้ง่ายที่สุดโดยการตั้งค่าโหนดที่ใช้งานเป็นเท็จเช่น:

<active>false</active>

วิธีนี้คุณสามารถช่วยออกกฎหากโมดูลของบุคคลที่สามเป็นสาเหตุของแหล่งที่มาของปัญหาโดยกระบวนการกำจัด หมายเหตุ: คุณไม่สามารถdisable_local_modulesและผ่านโมดูลNON-COREทั้งหมดของคุณได้(ทุกสิ่งที่ Mage_ * เพิกเฉย!)

หากยังมีปัญหาอยู่ฉันจะลองใช้แม่แบบแพ็คเกจเริ่มต้นเป็นการชั่วคราวด้วยการไปที่ระบบ> ออกแบบและกำหนดการออกแบบใหม่ของบางอย่างเช่นค่าเริ่มต้นหรือฐาน หากแพคเกจเทมเพลตหุ้นทำงานได้คุณจะรู้ว่าสาเหตุของข้อผิดพลาดนั้นอยู่ในไฟล์ออกแบบแม่แบบของคุณ (.phtml)

เทมเพลตจำนวนมากที่ฉันพบนั้นไม่ดีเกี่ยวกับการใช้Mage::getModel()->load()ภายในลูป foreach เพราะนี่เป็นการฝึกฝนที่ไม่ดีและในที่สุดก็สามารถใช้หน่วยความจำเซิร์ฟเวอร์และทรัพยากรจำนวนมากในที่สุด

Magento มีเครื่องมือวิเคราะห์รหัสซึ่งอาจช่วยสแกนไฟล์เทมเพลตของคุณเพื่อตรวจสอบว่ามีโค้ดที่ไม่ดีเหล่านี้หรือไม่:

อ่านเพิ่มเติม:

app/etc/local.xmlนอกจากนี้ก็อาจจะเป็นประโยชน์สำหรับทุกคนสิ่งที่แคชและเซสชั่นการจัดเก็บข้อมูลที่คุณกำลังใช้ที่กำหนดไว้ใน

หวังว่านี่จะช่วยได้!


ฉันจะลอง nad นี้ให้คุณรู้ ....
เด็กใน Magento

เราล้างโฟลเดอร์ var / session กว่าจะแก้ปัญหาของเราจนถึงวันนี้ แต่วันนี้ปัญหานี้เกิดขึ้นอีกครั้ง กว่าที่ฉันเพิ่มใน. htaccess: SetEnv MAGE_IS_DEVELOPER_MODE "จริง" และ uncomment ini_set ('display_errors', 1); บรรทัดนี้ และ <disable_local_modules> จริง </disable_local_modules> กว่าที่ฉันได้รับข้อผิดพลาด tjis: magento.stackexchange.com/questions/94559/…
Baby in Magento

ฉันไม่ได้ล้าง sessin ใด ๆ หลังจากที่ฉันทำ chnages ถ้าฉันล้างเซสชั่นโดยอัตโนมัติมันจะแก้ปัญหาทั้งหมด คุณไม่คิดว่าเกี่ยวข้องกับคุกกี้หรือเซสชัน มีวิธีใดบ้างที่จะแก้ปัญหานี้?
Baby in Magento

@BabyinMagento คุณได้รับการแก้ไขปัญหาตามข้อมูลที่ให้ไว้หรือไม่? ถ้าเป็นเช่นนั้นปัญหาสำหรับผู้อื่นที่ประสบปัญหาคล้ายกันคืออะไร ขอบคุณ
B00MER

1
ขอบคุณมากสำหรับการสนับสนุนของคุณ เราล้างโฟลเดอร์เซสชั่นและซ่อนสิ่งที่เกี่ยวข้องกับคุกกี้ใน varien.php แต่เรายังต้องรออีกสักครู่เพื่อตรวจสอบว่าเรามีวิธีแก้ปัญหาแบบถาวรหรือไม่ ถูกต้องเราได้ทางออกเมื่อเราล้างโฟลเดอร์เซสชั่น
Baby in Magento

3

ฉันเดาว่ามีการเรียกซ้ำในรหัสของคุณ แก้ไขไฟล์lib/Varien/Db/Adapter/Pdo/Mysql.phpและตั้งค่า$_debugและ$_logCallStackเป็นจริง การดำเนินการนี้ควรบันทึก call stack ในvar/debug/pdo_mysql.logไฟล์ซึ่งจะให้แนวคิดแก่คุณหากมีการเรียกซ้ำในโค้ดของคุณเมื่อโหลดซ้ำ โปรดทราบว่าไฟล์นี้จะเติบโตอย่างรวดเร็วมากดังนั้นจึงควรเปิดใช้งานเมื่อคุณคิดว่าปัญหาได้เริ่มขึ้นแล้วในเว็บไซต์

วิธีอื่นคือปิดใช้งานโมดูล / ส่วนขยาย buggy ที่คุณคิดว่าอาจเป็นสาเหตุนี้ นี่อาจเป็นส่วนขยายราคาที่คุณกำหนดได้อย่างง่าย ๆ ลองปิดการใช้งานชั่วคราวและดูว่าช่วยป้องกันปัญหาได้หรือไม่


ฉันเปลี่ยนค่าของ "$ _debug" และ "$ _logCallStack" เป็นจริงตอนนี้ฉันกำลังรอไฟล์ pdo_mysql.log และโฟลเดอร์บันทึกของเราเติมมากเกินไปมีไฟล์บันทึกเกือบ 90 gb ฉันติดตั้งส่วนขยายที่กำหนดค่าได้ง่ายก่อน 2 สัปดาห์ปัญหานี้อยู่ที่นั่นตั้งแต่ 2 เดือน แต่ยังต้องดูโมดูลบั๊กกี้อื่น ๆ
Baby in Magento

ฉันไม่พบไฟล์นี้ var / debug / pdo_mysql.log จนถึงตอนนี้ แต่สร้างบันทึกระบบและข้อยกเว้น ฉันสามารถดูบันทึกนี้เป็นหลัก: "lib / Varien / Simplexml / Config.php ในบรรทัด 510"
Baby in Magento

บันทึก 90 GB ว้าว! สำรองข้อมูลไปยังตำแหน่งอื่นและล้างไฟล์ อย่างน้อยควรช่วยปรับปรุงความเร็วไซต์ของคุณบ้าง
Kalpesh

ใช่คุณถูก. เราทำการลบต่อไปในบางครั้ง บันทึกเหล่านี้เป็นเพราะปัญหานี้หรือไม่ และจนถึงตอนนี้ฉันก็ไม่พบ pdo_mysql.log
Baby in Magento

ตรวจสอบค่าของ $_debugFileในไฟล์ Mysql.php และตรวจสอบให้แน่ใจว่าvarไดเรกทอรีของคุณมีสิทธิ์ที่จำเป็นในการสร้างโฟลเดอร์และไฟล์
Kalpesh

2

ฉันมีปัญหาเดียวกันในเว็บไซต์ของลูกค้า ตรวจสอบมัลแวร์ Magento ของคุณ

นี่เป็นสถานการณ์ที่เป็นที่รู้จักกันดีโดยทั่วไปแล้วมันเป็นวอลแวร์ที่เปลี่ยนเส้นทางเนื้อหาของโพสต์ของผู้ใช้ไปยังเว็บไซต์ภายนอก

เริ่มตรวจสอบ index.php พวกเขามักจะแฮ็คมัน เลื่อนรหัสไปจนสิ้นสุดตรวจสอบทางด้านขวาและระหว่างบรรทัดที่มีความคิดเห็นในหัวข้อใบอนุญาต แฮกเกอร์ใช้เพื่อซ่อนรหัสด้วยวิธีนี้

คุณมี "โหลดตลอดไป" เนื่องจากพยายามติดต่อเว็บไซต์ที่ ISP ของคุณบล็อก

มันควรจะง่ายต่อการค้นหามัลแวร์ค้นหาสตริง "base64", "eval", "mcrypt"


นี่คือ index.php ของเรา => pastebin.com/N8xnWMa7
Baby in Magento

ไซต์ของเราถูกแฮ็กก่อน 3 เดือนหลังจากนั้นมีปัญหานี้เกิดขึ้นเท่านั้น แต่ต่อมาเราใช้มาตรการรักษาความปลอดภัยมากมายจากฝั่งเซิร์ฟเวอร์ แต่คุณคิดว่ารหัสที่แฮ็กยังคงปรากฏอยู่ในเว็บไซต์และสร้างปัญหาหรือไม่
Baby in Magento

ดี index.php ของคุณก็ดี แต่อาการของคุณก็เหมือนกับที่ฉันเคยเห็นใน webistes ที่แฮ็กของลูกค้า ฉันแนะนำให้คุณทำการค้นหาแบบเต็มโดยมองหารูปแบบต่อไปนี้: "base64", "eval", "mcrypt", "$ _POST" พวกเขาจะให้ผลบวกปลอมจำนวนมากดังนั้นคุณต้องตรวจสอบพวกเขา หากคุณไม่พบสิ่งผิดปกติฉันขอแนะนำให้คุณวิเคราะห์ cachegrind หรือการวิเคราะห์ xdebug ทีละขั้นตอน
Phoenix128_RiccardoT

ฉันจะค้นหาคำเหล่านั้นในไฟล์ไซต์ของเรา
Baby in Magento

ฉันกำลังค้นหาเวลาไม่ จำกัด : "base64" เข้ารหัสและถอดรหัสข้อความ ........
Baby in Magento

2

ฉันเคยมีพฤติกรรมคล้ายกันใน Magento ที่มีสองเว็บไซต์ ไซต์โหลดได้ดีสำหรับสองสามหน้าแล้วโหลดตลอดไป

การกำหนดค่า URL พื้นฐานไม่ถูกต้อง การตั้งค่า URL ฐานความปลอดภัยถูกตั้งค่าเป็นเว็บไซต์ที่ไม่ถูกต้องในขณะที่ URL ฐานที่ไม่ปลอดภัยได้รับการตั้งค่าอย่างถูกต้อง

ดังนั้นหากต้องการแก้ไขปัญหานี้หากผู้ดูแลระบบทำงานไม่ถูกต้องค่าจำเป็นต้องเปลี่ยนในตารางcore_config_dataสำหรับเว็บไซต์ที่ถูกต้องเช่นตั้งค่า URL ที่ถูกต้องด้วย "http: //" และสแลชต่อท้ายในฟิลด์ค่าที่สอดคล้องกับ เส้นทาง "web / unsecure / base_url" และ "web / secure / base_url" สำหรับขอบเขตที่ถูกต้องที่แสดงรหัสเว็บไซต์

ป้อนคำอธิบายรูปภาพที่นี่

โปรดทราบว่า URL ที่ปลอดภัยนั้นเป็น http เท่านั้นเพราะเป็นเว็บไซต์ตัวอย่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.