После смены версии php ошибка 500

vovka83, так оно, я вроде как в этом и разбираюсь. просто когда один человек занимается одновременно разработкой/доработками сайта, в том чсиле дизайном, также seo, serm, ведение групп в соцсетях, таргет, контекстной рекламой, офлайн рекламой (флаеры, визитки, плакаты — все, создание макета, подготовка к печати, связь с типографией) и т.д. и т.п., то не всегда в каждой из этих областей прям сразу успеваешь подстроиться под обновления.

Sitealert, ок, буду искать.

edogs, настройки пхп — это вот это вы имеете в виду?

php_flag display_errors off

php_flag rewriteLogLevel 0

php_value allow_url_fopen on

php_value open_basedir /dir/incl/

yet_warm, да просто в blabla.txt то есть для апача с пхп htaccess как бы перестал существовать

SeVlad, adel92 — спасибо за дельные советы. действительно, если уж решил обновлять и вышла ошибка, то лучше уж сразу до 5.6 или 7.0 (оффтоп — а 6-ку они перепрыгнули чтоли?) обновиться и под него уже исправлять ошибки.

Так и сделаю тогда, попробую сначала 5.6, потом 7.0 и буду смотреть, что в логах пишут

Доброго дня, при попытке сменить версию php с 7.3 на 7.4 или выше, выдает ошибку 500, при возвращении 7.3 все в норме, 7.4 нужна для работы плагина, хостинг свой, где поискать проблему?

логи выдаёт кучу таких строк:

[05-Oct-2022 17:40:24 Europe/Moscow] PHP Notice:  Undefined index: price in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/dd/f7/32/ddf732f163bc0464114560bff7572ad9374a94cd.file.list-thumbs-view-grid.html.php on line 122 [05-Oct-2022 17:40:24 Europe/Moscow] PHP Notice:  Trying to get property 'value' of non-object in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/dd/f7/32/ddf732f163bc0464114560bff7572ad9374a94cd.file.list-thumbs-view-grid.html.php on line 122 [05-Oct-2022 17:40:25 Europe/Moscow] PHP Notice:  Undefined index: menuIcon in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/54/b4/91/54b49195e62f7add6ab86e0617b7e6530b7100d7.file.header.dd.cat.list.html.php on line 68 [05-Oct-2022 17:40:25 Europe/Moscow] PHP Notice:  Undefined index: menuIcon in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/54/b4/91/54b49195e62f7add6ab86e0617b7e6530b7100d7.file.header.dd.cat.list.html.php on line 68 [05-Oct-2022 17:40:25 Europe/Moscow] PHP Notice:  Undefined index: menuIcon in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/54/b4/91/54b49195e62f7add6ab86e0617b7e6530b7100d7.file.header.dd.cat.list.html.php on line 68 [05-Oct-2022 17:40:25 Europe/Moscow] PHP Notice:  Undefined index: menuIcon in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/54/b4/91/54b49195e62f7add6ab86e0617b7e6530b7100d7.file.header.dd.cat.list.html.php on line 68 [05-Oct-2022 17:40:25 Europe/Moscow] PHP Notice:  Undefined index: menuIcon in wa-cache/3d90db/apps/shop/templates/compiled/shop_ru_RU/54/b4/91/54b49195e62f7add6ab86e0617b7e6530b7100d7.file.header.dd.cat.list.html.php on line 68

  • Саламов Игорь
  • 22. Сверхразум (105920)
  • 5 лет

Модератор проекта «Ноль вопросов!», также увлекаюсь программированием

Проверьте директивы php.ini .У меня такое было, когда я переключался с версии 5.2 на 7.1. Причина была в том, что в старой версии php.ini была прописана директива register_global on, которая в новой версии была исключена разработчиками и таким образом из-за несуществующей директивы выдавалась ошибка 500.

Проблема, с которой сталкиваются многие программисты после перевода площадки на современную версию PHP, — вероятная полная или частичная потеря работоспособности программного обеспечения на одном или нескольких сайтах площадки. Не предавайтесь панике, всё решаемо!

Использование функций mysql_connect(), mysql_select_db(), mysql_query() и т.д.

В PHP 7 разработчики отказались от расширения mysql, все использования функций расширения приводят к фатальной ошибке (Call to undefined function).

Использование функций mysql_connect(), mysql_select_db(), mysql_query() и т.д.

Использование функций mysql_connect(), mysql_select_db(), mysql_query() и т.д.

Как заменить неработающие функции mysql_connect(), mysql_select_db(), mysql_query()? Ошибка «PHP Fatal Error: Call to undefined function»

Решения проблемы есть и даже не одно!

Есть достойная альтернатива mysql — расширение mysqli. Функции расширения соответствуют старым (большая часть):

mysqli_fetch_array() //расширение mysqli
mysql_fetch_array()  //расширение mysql

1. Если у вас небольшой проект, вам будет несложно через поиск найти несколько строк в коде с функциями, начинающимися с «mysql_*» расширения mysql. Вручную отредактируйте код, заменив «mysql_*» на «mysqli_*».

2. Если у вас большой проект или вы очень активно пользовались функциями расширения mysql, вам будет непросто поменять все упоминания устаревших функций. В таком случае вам поможет следующее решение. Создайте PHP-файл, в котором определите функции с именами исключённых, которые будут ссылаться на соответствующие функции расширения mysqli.

Пример кода новой библиотеки. Не надо перечислять все функции расширения, это излишний перфекционизм. Создайте только те, которые встречаются в ваших проектах.

<?
function mysql_connect($server, $username, $password, $new_link = NULL, $client_flags = NULL) {
  $GLOBALS['mysql_oldstyle_link'] = mysqli_connect($server, $username, $password);
  return $GLOBALS['mysql_oldstyle_link'];
 }
function mysql_query($sql) {
  return mysqli_query($GLOBALS['mysql_oldstyle_link'], $sql);
 }
function mysql_fetch_row($res) {
  return mysqli_fetch_row($res);
 }
function mysql_fetch_assoc($res) {
  return mysqli_fetch_assoc($res);
 }
function mysql_fetch_array($res) {
  return mysqli_fetch_array($res);
 }
function mysql_fetch_object($res) {
  return mysqli_fetch_object($res);
 }
function mysql_affected_rows($link = NULL) {
  if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
  return mysqli_affected_rows($link);
 }
function mysql_insert_id($link = NULL) {
  if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
  return mysqli_insert_id ($link);
 }
function mysql_select_db($database_name) {
  return mysqli_select_db($GLOBALS['mysql_oldstyle_link'], $database_name);
 }
function mysql_errno($link = NULL) {
  if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
  return mysqli_errno($link);
 }
function mysql_error($link = NULL) {
  if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
  return mysqli_error($link);
 }
function mysql_num_rows($res) {
  return mysqli_num_rows($res);
 }
function mysql_free_result($res) {
  return mysqli_free_result($res);
 }
function mysql_close($link) {
  return mysqli_close($link);
 }
function mysql_real_escape_string($sql, $link = NULL) {
  if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
  return mysqli_real_escape_string($link, $sql);
 }
function mysql_get_server_info($link = NULL) {
  if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
  return mysqli_get_server_info($link);
 }
 ?>

Данный код сохраните в файл, назовите его, например, deletedmysql.php и сохраните в корне сайта (на одном уровне с index.php главной страницы сайта).

В каждый PHP-файл, в котором встречается ошибка, добавьте строку в самое начало файла, после открывающего кода:

<?
include_once 'deletedmysql.php';
/* далее старый PHP-код */

Совсем идеально будет добавить проверку на версию PHP, так как при переезде на другую площадку или понижении версии PHP до 5.x вы получите ошибку PHP: Fatal error: Cannot redeclare…

if (version_compare(PHP_VERSION, '7.0.0', '>=')) include_once 'deletedmysql.php';

Маленький лайфхак для тех, кому понравился способ 2. Используйте это решение только в качестве временной заглушки. При удобном случае перепрограммируйте код на использование новых функций.


PHP Fatal error: Uncaught Error: Call to undefined function split()

В PHP 7 функция spit() — разбиение строки на массив по регулярному выражению, — была исключена. Альтернатива есть, функции preg_split(), str_split(), explode().

PHP7 Fatal error:  Uncaught Error: Call to undefined function split()

PHP7 Fatal error: Uncaught Error: Call to undefined function split()

В приведённом примере разбить командную строку можно любой функцией. Лично я предпочитаю explode().

Здравствуйте.
Яндекс и Google в один голос твердят, что страницы недоступны, мол ошибка 500. Делаю проверку доступности сайта в Яндексе, Яндекс говорит ошибка 500, а я в это время на проверяемой странице и все работает… Тоже самое и с Google…

Движок работает на PHP 8.1.6 и при этой версии Яндекс и Google выдает 500 ошибку.
Меняю версию PHP на 8.0.19 и Яндекс с Google сразу видят сайт…
А при чем тут версия интерпретатора? Я не знаю…

Как можно «жить» на последней версии PHP и быть доступным для поисковиков?

Спасибо.

— Ubuntu 18.04 LTS
— ISPmanager 6 Lite
— RAM 2048
— DISK 20 ГБ
— CPU 2

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • После сдачи баланса обнаружилась ошибка
  • После сброса ошибок машина не заводится
  • После редиректа ошибка 404
  • После революции на страну напала интервенщина ошибка

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии