Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Старый php сайт не хочет больше работать

1079  1 2 все
AlexNek патриот24.03.21 13:51
AlexNek
24.03.21 13:51 

Есть у меня старый сайт еще с PHP 4.x, на основе dragonfly CMS. Пару последних лет его вообще не открывал. Теперь открыл - и нифига не работает, провайдер обновил PHP, причем даже и старые версии оставил. Но и с 5.6 ничего не завелось, с 7.х показывает ошибки eregi, phpinfo показывает пустую страницу.

С ПХП 8.0 показывает только пустые страницы.

Пробую пока хоть 7.3.27 запустить, но что для этой ошибки делать пока непонятно

Если ли надежда запустить в принципе? На вообще что то новое "руками" никак не перейти, в базе тысячи записей. Да и основа была хорошо покурочена.


#1 
NightWatch коренной житель24.03.21 14:23
NightWatch
NEW 24.03.21 14:23 
в ответ AlexNek 24.03.21 13:51, Последний раз изменено 24.03.21 14:38 (NightWatch)

This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide. Alternatives to this function include:

https://www.php.net/manual/en/mysql.installation.php


Если ли надежда запустить в принципе?

Только если найдешь хостинг с php до 7.0.0 или vps/root или перепишешь исходники под актуальный API.

Поправка: возможно, поддержка других расширений там уже есть. Посмотри config.php. Есть там что-то подобное?

# -- database type ---------------------------------------

# The type of SQL server that I will be using to store my

# site's database

#

# Choose from the following (case-sensitive):

# - mysql (4.x or later)

# - mysqli (PHP must be compiled with "System Mysql")

# - postgre7 (7.3.x or later)

#

# default: mysql

# --------------------------------------------------------

define('DB_TYPE', 'mysql');


mysql -> mysqli

https://dragonflycms.org/Forums/viewtopic/t=11637.html

#2 
MrSanders коренной житель24.03.21 14:23
NEW 24.03.21 14:23 
в ответ AlexNek 24.03.21 13:51, Последний раз изменено 24.03.21 14:25 (MrSanders)

Поздно, уже ответили :)

#3 
AlexNek патриот24.03.21 14:49
AlexNek
NEW 24.03.21 14:49 
в ответ NightWatch 24.03.21 14:23

Ну на 5.6 я могу пока свободно переключить, только тоже ничего не дает. Ну и неизвестно сколько они будут еще 5.6 держать.


"vps/root" есть для другого сайта. Я их специально разнёс. Один для экспериментов, второй только хостинг, упавший как раз на втором.


перепишешь исходники под актуальный API

Ну если опять вернуться к изучению ПХП, только вот сколько это времени займёт? Сайт в принципе только для истории пока нужен.


Нашел новую версию старой СМС-ки - "PHP 7.2 compatible" от 2018 можно попробовать ее запустить и старую базу как то перекинуть.

Или переключить на 5.6 и там добивать?

А из этих то: MySQLi, PDO_MySQL что выбрать? Точных рекомендаций пока не заметил.

#4 
Murr патриот24.03.21 15:07
Murr
NEW 24.03.21 15:07 
в ответ AlexNek 24.03.21 13:51

База то хоть живая?

Если - да, то не поменялась ли версия? Порт? Пароли?

#5 
AlexNek патриот24.03.21 15:20
AlexNek
NEW 24.03.21 15:20 
в ответ Murr 24.03.21 15:07
База то хоть живая?

Должна быть. Один фиг собирался еще раз копию сделать, заодно и гляну.

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

#6 
Murr патриот24.03.21 15:30
Murr
NEW 24.03.21 15:30 
в ответ AlexNek 24.03.21 15:20

а я видимо предупреждение прозевал

-----

Ну а Я просто не получал... Веришь? хаха

#7 
AlexNek патриот24.03.21 15:56
AlexNek
NEW 24.03.21 15:56 
в ответ Murr 24.03.21 15:30

А что у тебя тоже самое?

Может и не посылали, хотя обычно информируют о плановых изменениях

#8 
AlexNek патриот24.03.21 15:59
AlexNek
NEW 24.03.21 15:59 
в ответ NightWatch 24.03.21 14:23

Спасибо, с базой ошибка "убил", вылезли еще eregi, тоже исправил. Но теперь ничего не показывает вообще, просто пустой экран.

Видимо эмулятор нужно запускать и с ним играться

#9 
AlexNek патриот24.03.21 16:08
AlexNek
NEW 24.03.21 16:08 
в ответ NightWatch 24.03.21 14:23

А что теперь вместо endels-а?

https://www.kobzarev.com/soft/endels/

Классно было, всё локально под виндой поставил и пользуйся

#10 
NightWatch коренной житель24.03.21 16:12
NightWatch
NEW 24.03.21 16:12 
в ответ AlexNek 24.03.21 15:59
Но теперь ничего не показывает вообще, просто пустой экран.

См. логи вэб-сервера и php.

#11 
Murr патриот24.03.21 16:12
Murr
NEW 24.03.21 16:12 
в ответ AlexNek 24.03.21 15:56

Что значит тоже самое?

Мне твои предупреждения нефига не присылают.

Спросил своих кошек - тоже не получаю.... спок

#12 
NightWatch коренной житель24.03.21 16:16
NightWatch
NEW 24.03.21 16:16 
в ответ AlexNek 24.03.21 16:08
А что теперь вместо endels-а?

Вместо - не знаю, а так есть XAMPP.

#13 
AlexNek патриот24.03.21 16:24
AlexNek
NEW 24.03.21 16:24 
в ответ NightWatch 24.03.21 16:12, Последний раз изменено 24.03.21 23:07 (AlexNek)
См. логи вэб-сервера и php.

И где их искать? В никсах где то что-то было, тама?

#14 
AlexNek патриот24.03.21 16:26
AlexNek
NEW 24.03.21 16:26 
в ответ NightWatch 24.03.21 16:16

XAMPP - спасибо попробую

#15 
NightWatch коренной житель24.03.21 16:54
NightWatch
NEW 24.03.21 16:54 
в ответ AlexNek 24.03.21 16:24, Последний раз изменено 24.03.21 17:03 (NightWatch)

Если это apache, то обычно типа здесь /var/log/apache2/error.log.

Точный путь стоит в конфиге.


php: phpinfo скажет.

#16 
AlexNek патриот24.03.21 18:04
AlexNek
NEW 24.03.21 18:04 
в ответ NightWatch 24.03.21 16:54
php: phpinfo скажет.

Локальный точно также не работает. А серверный даёт:

error_log

log_errors On


и /var каталога через фтп не вижу, не уверен, что SSH доступ есть.

Зато нашел менюшки для wordpress и joomla. Не уверен только, что к ним хорошая фотогалерея есть. Лучше coppermine пока не попадалось.


#17 
AlexNek патриот25.03.21 11:37
AlexNek
NEW 25.03.21 11:37 
в ответ NightWatch 24.03.21 16:16

Потихоньку разбираюсь.

Но возникла старая проблема импорта больших дампов (сжатый 160Мб), раньше вроде это помогало. Но там тоже пхп 4.3

https://www.ozerov.de/bigdump/usage/

Как народ борется? Только частями сохранять?

#18 
NightWatch коренной житель25.03.21 11:59
NightWatch
NEW 25.03.21 11:59 
в ответ AlexNek 25.03.21 11:37
Как народ борется?

Народ борется mysqldump'ом.

#19 
AlexNek патриот25.03.21 12:53
AlexNek
NEW 25.03.21 12:53 
в ответ NightWatch 25.03.21 11:59, Последний раз изменено 25.03.21 12:55 (AlexNek)

https://dev.mysql.com/doc/refman/8.0/en/mysql-shell-tutori...

А как абсолютный путь указать? Или куда нужно файл записать? Под виндой.

На "E:\Web\file.sql" ругается

Failed to open file: 'E:\Web\file.sql' is a directory

...

Сорри, так и есть

#20 
AlexNek патриот26.03.21 12:10
AlexNek
NEW 26.03.21 12:10 
в ответ AlexNek 24.03.21 15:59

Разобрался наконец с пустым экраном. Нашел как можно ПХП отлаживать в VC Code и оказалось, вылетают еще эксепшины которых нигде не было видно, потому как в скриптах не было глобального обработчика ошибок.

Пока сделал в обработчике ошибок вывод на экран для отладки, что с ними делать потом, еще не знаю.

Теперь локально в XAMPP-е даже сайт как то показывается, НО к изображениям нет доступа. Как такое под виндой может быть? Может надо куда то .htaccess добавить с волшебными словами для ксампа?

#21 
NightWatch коренной житель26.03.21 12:33
NightWatch
NEW 26.03.21 12:33 
в ответ AlexNek 26.03.21 12:10
вылетают еще эксепшины которых нигде не было видно, потому как в скриптах не было глобального обработчика ошибок.

Все неотловленные ошибки падают в лог.

НО к изображениям нет доступа.

Кому?

#22 
AlexNek патриот26.03.21 12:47
AlexNek
NEW 26.03.21 12:47 
в ответ NightWatch 26.03.21 12:33
Все неотловленные ошибки падают в лог.

Это их кто тогда ловит, ПХП?

Нет вообще ПХП лога в хампе у меня.


Я так сделал и все ловится.

set_exception_handler('my_global_exception_handler');


С изображениями похоже с путями что то не то

Я когда копирую путь к изображению в лисе и затем его копирую в адресную строку, говорит что 'access denied'.

Похоже скрипт делал какие то манипуляции с адресом, которые теперь не работают.


В темах есть хтмл-ные файлы в которых путь к картинкам прописан относительно рута сайта, а не относительно расположения файла.

#23 
NightWatch коренной житель26.03.21 13:05
NightWatch
NEW 26.03.21 13:05 
в ответ AlexNek 26.03.21 12:47
Это их кто тогда ловит, ПХП?

Естественно.

Нет вообще ПХП лога в хампе у меня.

Вэб-сервер отдает выполнение скриптов PHP через SAPI, и все ошибки сваливаются в лог вэб-сервера. Я могу представить только один вариант, когда в логах ничего нет - это если специально ошибки молчаливо "проглатываются". Но даже если и так, у PHP есть не ловящиеся ошибки. Они по-любому в ло уйдут.

#24 
AlexNek патриот26.03.21 13:26
AlexNek
NEW 26.03.21 13:26 
в ответ NightWatch 26.03.21 13:05

если имеется в виду "apache/error.log" - там иногда бывают сообщения об ошибках. Но там нет имени файла и строки. Может и пропустил. смущ


Но меня сейчас больше волнует, как путями можно манипулировать. Есть вот такая строка в хтмл темах

<td width="27" height="23"><img src="themes/efoto/images/h/h08.jpg" width="27" height="23" alt="" /></td>

А в выходе перед "themes/efoto" добавляется еще кое что и неправильно. Со ссылками тоже самое, что то еще добавляется, а где непонятно.

#25 
Murr патриот26.03.21 14:53
Murr
NEW 26.03.21 14:53 
в ответ AlexNek 26.03.21 12:47

Это их кто тогда ловит, ПХП?

-----

Сервер.

Страница выполняется в тру-катч блоке.

Иначе сервер бы падал на каждом необработанном исключении.

#26 
Murr патриот26.03.21 15:03
Murr
NEW 26.03.21 15:03 
в ответ AlexNek 26.03.21 13:26

что то еще добавляется, а где непонятно.

------

Насколько Я помню ИИС и Апача по разному трактуют пути без префиксов.

Проверь как будет с точкой "." и тильдой "~"

#27 
AlexNek патриот26.03.21 15:20
AlexNek
NEW 26.03.21 15:20 
в ответ Murr 26.03.21 15:03
Насколько Я помню ИИС и Апача по разному трактуют пути без префиксов.

Хочешь сказать что пути подставляет сервер, а не скрипт?

странно как то получается для менюшек, например

http://localhost:8080/"http://localhost:8080//index.php?name=coppermine

Вместо

http://localhost:8080/Site-Name/index.php?name=coppermine
#28 
AlexNek патриот26.03.21 15:31
AlexNek
NEW 26.03.21 15:31 
в ответ AlexNek 26.03.21 15:20

гадина, новый скрипт тоже не хочет устанавливаться.

"localhost:8080" как домейн, для соединения с базой не подходит, а на 80 порту хамп не работает.

#29 
AlexNek патриот26.03.21 16:41
AlexNek
NEW 26.03.21 16:41 
в ответ AlexNek 26.03.21 15:31

Не везет мне с этим подлым ПХП, взял для игрушек с .NET Core простенький юникс сервер.

Есть и PHP 7.3 и Maria Db 10, а вот никакого SQL adapter-а нет. Или нужна мария 5 для этого?

При установке dragonfly cms пишет "Poodle SQL adapter not found", хотя на хампе это есть. Что за штука, что нужно установить?

#30 
Murr патриот26.03.21 16:45
Murr
NEW 26.03.21 16:45 
в ответ AlexNek 26.03.21 15:20
Хочешь сказать что пути подставляет сервер, а не скрипт?

------

А что тебя в этом удивляет? Сервер:

Во первых - всегда должен контролировать урлы - иначе при аплоуде тебе напихают радостей в СЫСТЕМ32...

Во вторых - есть доп.модули позволяющие прописывать паравила замены. Я не пользовался - деталей не знаю.

В третьих - что там с точкой и тильдой?

#31 
AlexNek патриот26.03.21 17:04
AlexNek
NEW 26.03.21 17:04 
в ответ Murr 26.03.21 16:45
В третьих - что там с точкой и тильдой?

Может для интереса и проверю, но в ссылках нет ни точек ни тильд.

Ну и очень не уверен, что дело в сервере. Можно еще стибрить где то пхпшный сайтик без базы и проверить, но почти уверен, что будет работать без проблем.

#32 
AlexNek патриот29.03.21 14:20
AlexNek
NEW 29.03.21 14:20 
в ответ Murr 26.03.21 16:45
В третьих - что там с точкой и тильдой?

Как и ожидалось виноват скрипт, добавил для теста строку

echo '<a href="index.php/">Test Link</a>';

выдает. В тестовом скрипте, как и положено хттп:/localhost:8080/test/index.php/

http://localhost:8080/"http://localhost:8080//index.php/
#33 
AlexNek патриот29.03.21 15:50
AlexNek
NEW 29.03.21 15:50 
в ответ AlexNek 29.03.21 14:20

Вот эта гадина выпендривалась

$header = '<base href=\"'.$BASEHREF.'\" />'
#34 
AlexNek патриот30.03.21 21:47
AlexNek
NEW 30.03.21 21:47 
в ответ AlexNek 29.03.21 15:50

Новая проблема вылезла. Кодировка как то изменилась

Вместо können в базе видно können. Раньше помню в phpMyadmin было всё без проблем видно.

Что еще могло измениться в MySql за эти года?


#35 
Murr патриот31.03.21 02:17
Murr
NEW 31.03.21 02:17 
в ответ AlexNek 30.03.21 21:47

А какие локали у старой и новой базы/сервера/инстанса?

#36 
AlexNek патриот31.03.21 12:57
AlexNek
NEW 31.03.21 12:57 
в ответ Murr 31.03.21 02:17

Я нигде ничего не менял.

Было и осталось: utf8_general_ci


У хампа появилось еще

utf8mb4_general_ci

utf8mb4_bin

#37 
1 2 все