我使用 MAMP 在本地托管网站。我正确设置了虚拟主机,当我引用本地URL时,index.php文件会被拉起:my.example.local
问题是PHP文件包含不起作用。以下是代码示例:
<?php
session_start();
$_SESSION['message'] = '';
require_once "includes/config.php";
require_once "includes/classes/facilities.class.php";
require_once "includes/classes/states.class.php";
$title = "Home";
$sub_title = $title;
$reset = false;
require_once "includes/header.php";
?>
这是访问index.php时得到的错误消息:
Warning: require_once(includes/classes/facilities.class.php): failed to open stream: No such file or directory in /Users/userName/IOD/portal/index.php on line 9
Fatal error: require_once(): Failed opening required 'includes/classes/facilities.class.php' (include_path='.:/Applications/MAMP/bin/php/php5.4.10/lib/php') in /Users/userName/IOD/portal/index.php on line 9
对于记录,我尝试了多种不同的方式来引用文件路径,相对,绝对,使用主机名等。
我愿意尝试任何事情,但到目前为止还没有任何运气。哦,在你问之前,是的,文件是在引用的位置,但由于某种原因,(本地)服务器似乎不认为它们是。
注意:这在Web服务器上工作正常,我试图在本地托管它以实现版本控制,这样我就可以在本地开发并将更改推送到服务器。
答案 0 :(得分:2)
如果您将include /文件夹放入此文件夹;
/Users/jfloyd/IOD/includes/<all in here>
然后在PHP ini中更改此行:
include_path='.:/Applications/MAMP/bin/php/php5.4.10/lib/php'
要
include_path='.:/Applications/MAMP/bin/php/php5.4.10/lib/php:/Users/jfloyd/IOD/'
然后保存文件并重新启动服务器,然后找到包含文件。
这个ini指令可以在任何数量的地方,每个文件中,使用.htaccess或httpd.conf或ini文件设置在每个文件夹中,如我刚才所述。