2013-08-19 3 views
0

Я перенесла сайт PHP, на котором был запущен сервер ubuntu 10.10, на другой сервер unbutu 12.04. Теперь некоторые функции php устарели, а некоторые не могут найти правильный «путь», который они ищут. старый сервер был запущен PHP 5.3.3 новый один имеет PHP 5.3.10 (так что нет реальной большой разницы)PHP «не удалось открыть поток» после перехода с одного сервера на другой, другие устарели, почему?

Некоторые ссылки были написаны так:

"../modules/xxx.php" 

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

В связи с тем, что сайт полностью работает на старом сервере, конфигурация должна быть «хорошо». Вы, ребята, думаете, что есть какие-то другие причины для этих ошибок, чем версия php? Я думаю о понижении php до 5.3.3 на новом сервере для теста .... Но я не сделаю этого, когда могут быть другие причины.

Некоторые примеры ошибок:

Deprecated: Function split() is deprecated in /data/ 
Warning: include(modules/mdl_users/settings.conf.php): failed to open stream: No such file or directory in /data/xxx/www/classes/module.class.php on line 35 

он не может открывать файлы, когда одна часть пути была написана функция, как этот

include($this->registry->admin_path."modules/".$this->name."/settings.conf.php" 

так, очевидно, конфигурация в РНР был как-то изменилось. поскольку сайт не мой, я не хочу менять 100 путей вручную. Вы считаете, что понижение рейтинга будет «исправлять» эту проблему?

Заранее спасибо

+0

Вероятно, понижение рейтинга связано с тем, что проблема устарела и старый код. Вы должны исправить это, вместо использования старых версий PHP. – Repox

+0

Вероятно, это был устаревший и старый сервер. Вероятно, это был другой параметр сообщения об ошибках в вашем php.ini – Pitchinnate

+0

Да, возможно, но почему страница не работает, если эти ошибки не отвечают за это? на старом сервере эта страница работает на 100%.Я просто скопировал путь и правильно настроил apache2. и он показывал пустую страницу, что означает => проблема с php – RayofCommand

ответ

1

Это звучит для меня, что файл php.ini только имеет различные варианты, выбранные на новом сервере. Например, вы можете скрыть устаревшие предупреждения в разделе ошибок php.ini.

Если эти предупреждения были скрыты на вашем старом сервере и настроены для отображения на вашем новом сервере, то именно поэтому вы видите их внезапно.

Я вдвойне сильно недооцениваю модернизацию PHP на PHP. В конце концов все равно 5,3. Конфигурация PHP почти наверняка является причиной проблем.

Лучше всего было бы сравнить файл как с старыми, так и с новыми файлами php.ini, если у вас есть доступ.

В качестве альтернативы вы можете установить большинство параметров php.ini во время выполнения кода, если вам нужно.

+0

Я уже скопировал php.ini со старого компьютера, и он не работает :( – RayofCommand

+0

ah ok. Теперь я попытаюсь скопировать все загруженные ini-файлы, которые отображаются в info.php и скопировать их на новый сервер. Надеюсь, это поможет. – RayofCommand

+0

есть только один файл ini, загруженный сразу, правильно? – RayofCommand

1

Сплит() функция была DEPRECATED с PHP 5.3.0. Опираясь на эту функцию, очень не рекомендуется.

preg_split() - рекомендуемая альтернатива этой функции. Если вам не требуется сила регулярных выражений, быстрее использовать explode().