我有一个网站(手工编码的 HTML/CSS/PHP),有数百个页面,每个页面都有多个引用$DOCUMENT_ROOT
- 例如:
<?php include("$DOCUMENT_ROOT/home/index.html"); ?>
在 PHP 5 下运行良好,但register_globals
已被弃用并从 PHP 7 中删除,所以它不再工作了。
我不想硬编码文件的路径,因为我的测试服务器和实时服务器使用不同的文件路径 - 例如:
测试服务器:/home4/testing/public_html/home/index.html
直播服务器: /home4/live/public_html/home/index.html
(另外,就一般原则而言,不必要地对路径进行硬编码似乎是个坏主意。)
我从句法上收集它,$_SERVER['DOCUMENT_ROOT']
或者$_SERVER["DOCUMENT_ROOT"]
可以替换$DOCUMENT_ROOT
.
我在源 HTML 上尝试了一个简单的搜索和替换:
<?php include("$_SERVER["DOCUMENT_ROOT"]/home/index.html"); ?>
和
<?php include("$_SERVER['DOCUMENT_ROOT']/home/index.html"); ?>
两者都不起作用 - 我得到 ERROR 500。
"
第一个很明显有字符串引用的问题(在错误的地方太多了)。
但第二个也不起作用(也是错误 500)。
如何让我的网站在 PHP 7 上运行?
有什么我可以放入.htaccess
或php.ini
定义的$DOCUMENT_ROOT
吗?
或者是否有不同的语法可以使用$_SERVER["DOCUMENT_ROOT"]
?
还是有更好的解决方案?
我的主要目标是让它尽快再次运行(它是一个公司网站,由于 Hostgator 出于安全原因已取消对 PHP 5 的支持,它已关闭),而不会造成更严重的问题。