我正在自学网站开发并自学PHP和HTML。当我最初开始这个时,我设计了我的网站在windows xp上运行的apache。一旦我得到了大部分的错误,我将它加载到一个免费的服务器托管网站上,一切都是hunky dory。
不幸的是,Windows死了(我的system32文件夹中的文件已损坏),而我现在正在运行Linux Mint。我刚刚在它上面安装了apache2,php和mysql,所以我可以继续我的网站开发,但问题出在这里:
为了节省时间,我使用include语句包含我的页眉和页脚html文件,如下所示:
<?php include("./dir/file1.html");?>
这适用于Windows和免费服务器(我认为它运行的是Linux版本,但不要引用我的内容)。但是,它不再适用于我的机器了。这有效:
<?php include("./file2.html");?>
但我真的不想反映我拥有的每个网页。如何让我的include语句再次将文件包含在相对路径的文件夹中?
我尝试过的事情:
我已将include_path更改为指向dir,但无济于事。
我尝试过绝对路径,但这也无效。
我已经通过apache.conf和php.ini查找可能阻止其阅读的任何内容。
仔细检查文件夹和文件权限以确保可以读取。
任何和所有建议都将受到赞赏,非常感谢提前。
更新
使用require会给我错误:
网站在检索http://localhost/时遇到错误。它可能已关闭以进行维护或配置不正确。
哪个不是很有帮助。
仅使用include语句没有错误。
我的include_path中有一个“。:”。
最终更新
经过大量的反复试验,我得出结论,问题根本不涉及php或include语句,而是由于某种原因apache服务器不允许访问子目录。这个问题现在没有实际意义,应该关闭。
答案 0 :(得分:0)
要使用相对路径包含文件,请确保include_path中有“。”,在php.ini或脚本中设置:
set_include_path( ".:" . get_include_path());