Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помогите найти в чем проблема ...fopen и иже с ним


malinator

Recommended Posts

Добрый день, подскажите куда копать... версия ocstore 2.3.0.2.3, сайт работает нормально, страницы открывается.

НО периодически в выдачу вываливается в сохраненных страницах:

 

<b>Warning</b>: fopen(/home/m/mailrucx/SITENAME.ru/public_html/system/storage/cache/cache.product.seopath.1587459852): failed to open stream: No such file or directory in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>28</b><b>Warning</b>: flock() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>30</b><b>Warning</b>: filesize(): stat failed for /home/m/mailrucx/SITENAME.ru/public_html/system/storage/cache/cache.product.seopath.1587459852 in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>32</b><b>Warning</b>: fread() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>32</b><b>Warning</b>: flock() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>34</b><b>Warning</b>: fclose() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>36</b><!DOCTYPE html>;
<b>Warning</b>: filesize(): stat failed for /home/m/mailrucx/SITENAME.ru/public_html/system/storage/cache/cache.product.seopath.1587459852 in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>32</b><b>Warning</b>: fread() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>32</b><b>Warning</b>: flock() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>34</b><b>Warning</b>: fclose() expects parameter 1 to be resource, boolean given in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php</b> on line <b>36</b><!DOCTYPE html>

На момент ошибок:

сам файл — /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php — есть

права доступа на файл file.php — 700
права доступа на папку cache — 700

Хостинг — Beget

 

Как это устранить можно? Или как сформулировать вопрос в ТП хостинга, если надо править на их стороне?

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


1 час назад, nikifalex сказал:

выключить вывод ошибок и забить

выключить вывод ошибок куда именно? они итак не показываются у пользователей

какой то странный совет, не обращать внимание на проблему если проблема есть...

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


11 минут назад, nikifalex сказал:

показываются. вы же сами пишете

я сказал что они НЕ показываются, но в выдаче почему то их можно увидеть если поднять содержимое сохраненных страниц
сейчас у меня сделано именно так как вы показали на скриншоте
Показывать ошибки — Да
Записывать ошибки — Да 

На некоторых страницах вебкэша яндекса есть эти ошибки, а на других нет.

ЗЫ. что то под вечер голова не варит, почему я на рабочем сайте не вижу эту ошибку если включен вывод ошибок?

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


6 минут назад, Otvet сказал:

при большой нагрузке

т.е. она появляется именно когда большая нагрузка и именно для ботов получается?
у меня посещаемость всего до 200 человек в день, откуда там нагрузке то быть...

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


@AlexDW спс, но именно на этот ответ я и наткнулся поиском, и с него и начал копания по этой проблеме

но все дело в том, что этот анекдот написан в 5-7 местах в интернете, а конкретики по решению не написано, кроме как пишите хостеру

а хостер пишет - а как нам эту проблему воспроизвести???

Надіслати
Поділитися на інших сайтах


@AlexDW спс, попробую, только я не знаю как проверить есть ошибка или нет после того как попробую?

 

хостер ответил вот что

Приносим свои извинения за задержку с ответом. Для решения проблемы обернули проверку в условие file_exists:

mailrucx@atom1:~/SITENAME.ru/public_html [0] $ sed -n 28,40p system/library/cache/file.php
                        if(file_exists($files[0])){
                        $handle = fopen($files[0], 'r');

                        flock($handle, LOCK_SH);

                        $data = fread($handle, filesize($files[0]));

                        flock($handle, LOCK_UN);

                        fclose($handle);

                        return json_decode($data, true);
                        }

 

но насколько это будет работать тоже пока не знаю...

Надіслати
Поділитися на інших сайтах


В общем докладываю, вчерашние ошибки после внесенных хостером исправлений исчезли, но осталась часть других:

<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/session.php</b> on line <b>50</b>;
    
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/storage/modification/catalog/controller/startup/startup.php</b> on line <b>103</b>;

<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/storage/modification/catalog/controller/startup/startup.php</b> on line <b>175</b>;

<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/vqmod/vqcache/vq2-system_storage_modification_catalog_controller_product_product.php</b> on line <b>1325</b><!DOCTYPE html>

 

Не проходите мимо, подскажите,  как это исправить?

Надіслати
Поділитися на інших сайтах


 

В 22.04.2020 в 13:39, AlexDW сказал:

как вариант, пробуйте в файле system\library\cache\file.php

добавить clearstatcache();

 

Внес это, в результате от совокупности действий, хостера и этой подсказки
Из начальных >230 ошибок в сервисе показывается теперь не более 25, разные файлы и только 3 варнинга:

<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/library/session.php</b> on line <b>50</b>;
   
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/storage/modification/catalog/controller/startup/startup.php</b> on line <b>103</b>;

<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/m/mailrucx/SITENAME.ru/public_html/system/library/cache/file.php:17) in <b>/home/m/mailrucx/SITENAME.ru/public_html/system/storage/modification/catalog/controller/startup/startup.php</b> on line <b>175</b>;

Есть еще варианты что можно сделать?

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

 

2 часа назад, chukcha сказал:

Запустить сканеры в несколко потоков

да получилось под нагрузкой получать эти варнинги в лог..

 

Скажите, если в админке отключен показ ошибок на сайте, и стоит только запись в файл, они могут в поисковую выдачу попасть в теории или нет?

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


В общем путем тестирования на сервисе loaddy_com выяснил что 30 заходов каждые 10 секунд в течение 10 минут дают стабильную работу, а вот выше вываливает ошибки в файл лога... саппорт хостинга Бегет в ответ на вопрос написал "По вопросу ошибок при нагрузочном тестировании обращаю внимание, что на сервере есть ограничение - одновременно для сайта может исполняться не более 30 процессов."

Видимо вариант переехать на ВПС этим сайтом, но я не ковырялся с ними уже лет 7...
Буду искать еще варианты решения.

 

еще саппорт насоветовал внести в htaccess "Выключить отображение можно, закоментировав или удалив строки в конце .htaccess:

 php_flag display_startup_errors on
 php_flag display_errors on

но смысл сего не понятен мне ибо в админке оно итак выключено...

хотя может и стоит попробовать

 

PS. если вместо unlink написать @unlink, получится что файл не будет удален, и значит он будет расти?

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


13 минут назад, Otvet сказал:

начните с просмотра папки кэша, если там слишком много файлов, это одна из причин

а какой именно кэш?

/public_html/image/cache - там изображения кладутся
/public_html/system/library/cache/ - там всего 3 файла
/system/storage/cache - вот тут больше 2к файлов, эта папка виновата?

на ней кстате права доступа 700 стоят... может 777 надо поставить?

 

Змінено користувачем malinator
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.