Есть у нас древний проект на apache+php 5.4 (сам я никогда PHP не касался, мой стек исключительно .net). Перед НГ решили запустить еще пару серверов, чтобы было дублирование, и народ не отвлекал нас в новогодние праздники, если основной сервер умрет. Собрали тестовую машину на nginx+php7.4-fpm. Ну и конечно ничего не работает.
index.php
<? include('work.php'); ?>
<html>
<head>
</head>
<frameset rows="50,*,20" frameborder="yes" border="1" framespacing="1">
<frame src="/Frameset/viewHeader/" scrolling="NO" marginwidth="0" marginheight="0" name="top" frameborder="NO">
<frame src="/Frameset/viewContent/" name="main" scrolling="AUTO" marginwidth="12" marginheight="12" frameborder="NO">
<frame src="/Frameset/viewFooter/" name="footer" scrolling="NO" marginwidth="0" marginheight="0" name="bottom" frameborder="NO">
</frameset>
<noframes>
<body bgcolor="#FFFFFF" text="#000000"></body>
</noframes>
</html>
work.php
.....
session_name('s');
session_start();
.....
$ui=$_SESSION;
$ui['val42'] = 42;
..... тут дальше идут миллионы всяких присваиваний вида $ui[''''] =
..... затем тут же идут всякие хелперы и прочее
function num($a){
return number_format($a/100, 2,'.',',');
}
....
И дальше, например /Frameset/viewFooter/index.php (тот самый что внутри frame)
<html>
<head>
<meta http-equiv="refresh" content="600">
<link rel="stylesheet" href="/_stylesheets/main.css">
</head>
<body>
<?=num($ui['val42'])?>
</body>
</html>
Ну и это не работает, потому что внутри frame переменная $ui не определена, функция num тоже неизвестная. Что как бы правильно, даже исходя из моего опыта .net, ведь внутри frame отдельная страница - отдельный запрос. Но проблема в том, что на старом сервере все работает.
Поэтому вопрос: почему? Может были, какие-то настройки apache или самого PHP, или раньше (во времена 5.4) так можно было делать. И как нам не переписывая все под НГ. Хотелось бы запустить это древнее *сайт* с минимальными переделками.
Предварительные ответы:
- внутри viewFooter.php никаких видимых include нету (может есть какие-то include по умолчанию, но не знаю, где и как поглядеть)
- стаковерфлоу утверждает, что так не бывает -
https://stackoverflow.com/questions/25425958/acces... - я с ним согласен, но у меня на руках рабочий проект
- может apache как-то группирует запросы, а nginx нет (ведь внутри viewFooter.php даже нету session_start и прочего, но обращение к $ui работает)