Веб-сайт порожній у прямому напрямку або продовжуйте завантажуватися та ніколи не завантажуйте


23

Я зіткнувся з Найдавнішою проблемою коли-небудь в Магенто. ми використовуємо версію 1.9.0.

за останні 2 місяці наш веб-сайт в реальному часі є "порожнім" або "продовжуйте завантажуватися" для використовуваних браузерів. Значить, у цьому браузері ми відвідували сайт багато разів.

у деяких браузерах - це добре працює. у деяких показано порожнє.

але бекенд працює чудово у всіх браузерах.

ми стикаємося з проблемою в Chrome, Mozilla, Opera та інших браузерах.

1) Якщо ми очистимо історію браузера [кеш і файли cookie], ніж її робота.

2) Якщо ми відкриваємо той самий сайт у приватному вікні, він працює.

3) Якщо ми відкриваємо сайт у щойно встановлених браузерах, він працює деякий час. знову порожнє після того, як ми використовували сайт.

4) Якщо ми очистимо папку var / session, вона деякий час почне працювати для всіх браузерів. знову сайт порожній.

5) Іноді сайт буде завантажуватися, і він ніколи не завантажується ....

Я перевірив system.log & izjem.log . але, схоже, помилок, пов’язаних із цим, немає. ми використовуємо https для захищених сторінок. навіть у нас є живий додаток Andriod для цього сайту. іноді ми отримаємо фатальні помилки:

**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 Мб у php.ini

у .htaccess у нас є наступні файли.

php_value memory_limit 1512M php_value max_execution_time 18000

ми це прокоментували:

ini_set('display_errors', 1);

але не відображається помилка у фронтенді. Це журнал помилок apache :

дочірній pid 23845 вихідний сигнал Помилка сегментації (11), можливий coredump в / etc / apache2

Дійсно намагається вирішити цю проблему. Чи пов’язана ця проблема з нашим кодом чи ця проблема пов’язана із стороною сервера?

чи головна проблема браузера cookie? Якщо так, що потрібно зробити, щоб вирішити цю проблему cookie для всіх браузерів. чому вона почала працювати, коли ми очистимо папку сеансу?

ми стикаємося з цими проблемами під час перегляду нашого сайту. введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення


чи можливо, що це питання cookie? stackoverflow.com/questions/15491819 / ...
pzirkind

посилання, яке я вставив, призначене для бекенда, але у фронтенду може виникнути проблема із файлами cookie ... це може бути пов’язано із терміном експлуатації файлу cookie та часовою міткою сервера вимкнено
pzirkind

@pzirkind у нашому випадку підходить для всіх браузерів. чим ми повинні збільшити термін експлуатації файлів cookie за допомогою коду? і мені не було відомості про часові позначки сервера вимкнено. ми повинні це зробити?
Дитина в Магенто

@ Bab в Magento іноді, якщо сервер не має правильної позначки часу, він генерує файл cookie, який закінчується до поточної дати, тому коли клієнт перезавантажує сайт, а magento перевіряє файл cookie недійсним
pzirkind

@pzirkind Чи є ймовірність того, що помилка apache, розміщена у питанні чи часовій марці, може бути причиною цієї порожньої сторінки?
Дитина в Магенто

Відповіді:


10

Спочатку увімкніть режим розробника у своєму .htaccessфайлі, додайте в кінці файлу наступне:

SetEnv MAGE_IS_DEVELOPER_MODE "true"

Наступне редагування index.phpта коментування рядка:

#ini_set('display_errors', 1);

Посилання на рядок:

Далі увійдіть через SSH та шукайте основний дамп-файл під /tmpвказаною помилкою помилки сегмента. Іноді він також може бути в корені /або в кореневій директорії самого сайту, наприклад: /var/www/html/videomergerapp/.

Якщо ви не можете знайти жодні основні файли дампа, ви можете додати деякі додаткові директиви до PHP / Apache.

Подивіться тут:

Після того як у вас є основні файли дампа, ви можете використовувати gdb(якщо --enable-debug), що використовувався під час налаштування PHP. Ви можете зробити це визначення, видавши з командного рядка наступне:

php -i | grep debugабо просто створити файл скрипта php у корені веб-сервера за допомогою: <?php phpinfo(); ?>у його вмісті та переглянути файл через веб-браузер, щоб побачити значення конфігурації PHP.

Якщо це не було ввімкнено, ви не зможете отримати повний зворотний зв'язок у самому PHP, а лише системні виклики вищого рівня та / або зворотний зв'язок апаша:

Якщо у вас є доступ до основного дамп-файлу, видаючи щось на зразок наведеного нижче, ви отримаєте зворотній шлях, який допоможе знайти точку відмови:

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


Якщо у вас виникають лише випадкові проблеми на фронті і ніколи не є вихідними, більшість знаків вказують на можливу проблему з кодуванням шаблону. Після появи порожніх сторінок (та / або відображення помилок, якщо ви ввімкнули режим розробника та відображення помилок). Увійдіть до свого адміністратора і відключіть усі кеші та очистіть усі кеші та сховища кешу.

Потім увійдіть app/etc/local.xmlі встановіть для відключення локальних модулів значення true.

<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.

Сподіваюся, це допомагає!


Я спробую це над тим, щоб ви знали ....
Дитина в Магенто

ми очистили папку var / session. ніж це вирішило нашу проблему до сьогодні. але сьогодні ця проблема знову сталася. ніж я додав це у .htaccess: SetEnv MAGE_IS_DEVELOPER_MODE "вірно" та unment_i_set ('display_errors', 1); ця лінія. та <disable_local_modules> true </disable_local_modules>. Чим я помилився з помилкою: magento.stackexchange.com/questions/94559/…
Дитина в

Я не очищую жодного сесина після того, як я зроблю декілька зубців, якщо я очищую сеанс, автоматично збираюся вирішити всю проблему. Ви не думаєте, що це щось пов'язане печиво чи сеанси? чи є спосіб вирішити це?
Дитина в Магенто

@BabyinMagento Чи вдалося вирішити проблему на основі наданої інформації? Якщо так, то яке питання було для тих, хто відчував подібну проблему? Спасибі.
B00MER

1
Дякую за підтримку. ми очистили папку сеансу і сховали речі, пов’язані з файлами cookie, у varien.php. але все ж нам потрібно почекати ще деякий час, щоб перевірити, чи отримали ми постійне рішення чи ні. правильно ми отримали рішення, коли ми очистили папку сеансу.
Дитина в Магенто

3

Я здогадуюсь, що у вашому коді є рекурсія. Відредагуйте файл, lib/Varien/Db/Adapter/Pdo/Mysql.phpвстановіть $_debugі встановіть $_logCallStackзначення true. Він повинен var/debug/pdo_mysql.logзаписати стек виклику у файл, який повинен дати вам уявлення, чи є рекурсія у вашому коді, коли завантаження потрібно вічно. Зауважте, що цей файл буде рости дуже швидко, тому в ідеалі ввімкніть його, коли ви думаєте, що проблема почалася на місці.

Інший спосіб - відключити помилкові модулі / розширення, які, на вашу думку, можуть викликати це. Це також може бути вашим простим настроюваним розширенням цін, спробуйте вимкнути його тимчасово і подивіться, чи це допоможе запобігти проблемі.


я змінив значення "$ _debug" і "$ _logCallStack" на істинні, тепер я чекаю файлу pdo_mysql.log. і наші папки журналів заповнюють занадто багато, його майже 90 гб журналів є. Я встановив просте настроюване розширення до 2 тижнів, ця проблема існувала з 2 місяців. але все ж потрібно подивитися на інші помилкові модулі.
Дитина в Магенто

Я до цього часу не знайшов цей файл var / debug / pdo_mysql.log, але створено системні журнали та журнали виключень. я бачу в основному цей журнал: "lib / Varien / Simplexml / Config.php на лінії 510"
Baby in Magento

90 ГБ журналів? Оце Так! Створіть резервну копію їх в іншому місці та очистіть файли. що має принаймні допомогти дещо покращити швидкість вашого сайту.
Калпеш

так, ти правий. ми продовжуємо видалення через деякий час. це журнали через це питання? і до цих пір я не знайшов жодного pdo_mysql.log
Baby в

Перевірте значення $_debugFileфайлу Mysql.php і переконайтеся, що у вашому varкаталозі є відповідні дозволи, необхідні для створення папки та файлу.
Калпеш

2

У мене був такий самий випуск на веб-сайті клієнта. Перевірте свій Magento на наявність шкідливих програм.

Це добре відомий сценарій, звичайно це керамічне перенаправлення вмісту публікації користувача на зовнішній веб-сайт.

Почніть перевіряти index.php, вони зазвичай хакують його. Прокрутіть код до кінця, також перевірте праворуч та між коментованими рядками в заголовку ліцензії. Хакери використовуються для приховування коду таким чином.

У вас є "вічне завантаження", оскільки він намагається зв’язатися з веб-сайтами, які заблокував ваш Інтернет-провайдер.

Слід знайти досить зловмисне програмне забезпечення, шукати рядки "base64", "eval", "mcrypt".



наш сайт був зламаний раніше 3 місяців, після цього з'явилася лише ця проблема. але пізніше ми вживали багато заходів безпеки з боку сервера. але ви вважаєте, що зламаний код все ще присутній на сайті та створює проблему ?.
Дитина в Магенто

Ну, ваш index.php - це добре, але ваші симптоми справді схожі на ті, які я бачив у деяких веб-сайтах, які взламали клієнти. Я пропоную вам здійснити повний пошук, шукаючи такі шаблони: "base64", "eval", "mcrypt", "$ _POST". Вони дадуть тони помилкових позитивних результатів, тому вам потрібно перевірити їх. Якщо ви нічого не знайшли, я пропоную вам кешгринд-аналіз або покроковий аналіз xdebug.
Phoenix128_RiccardoT

Я буду шукати ці слова у файлах нашого сайту.
Дитина в Магенто

я знаходжу необмежену кількість разів: "base64" кодую і декодую тексти ........
Дитина в Магенто

2

Я мав подібну поведінку на Magento, який мав два веб-сайти. Сайт завантажувався на кілька сторінок, а потім завантажувався назавжди.

Конфігурація базових URL-адрес була неправильною. Параметр URL-адреси захищеної базової URL-адреси встановлено на неправильному веб-сайті, тоді як незахищена базова URL-адреса була встановлена ​​правильно.

Отже, щоб виправити це, якщо адміністратор навіть не працює належним чином, значення потрібно змінити в таблиці core_config_data для потрібного веб-сайту, тобто встановити правильну URL-адресу за допомогою "http: //" та косою косою рисою в полі значення, що відповідає шляхи "web / unsecure / base_url" та "web / secure / base_url" для правої області_id, що представляє ідентифікатор веб-сайту.

введіть тут опис зображення

Зауважте, що захищена URL-адреса є http лише тому, що це був демонстраційний веб-сайт.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.