2013-04-23 68 views
0

我主持本地一個網站與MAMP。我有虛擬主機正確安裝和index.php文件並得到拉昇時,我引用本地網址:my.example.local麻煩與本地主機的PHP require_once

的問題是,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

第一個require_once沒有錯誤?如果您將facilities.class.php的require_once註釋掉,那麼states.class.php require_once是否會失敗? – SomeSillyName 2013-04-23 15:17:34

+0

它可能是一個文件權限錯誤?不確定MAMP,但在LAMP堆棧上,經常發生你和apache用戶(通常是www-data)最初不在同一組中 – cypherabe 2013-04-23 15:22:09

+0

你應該檢查該文件是否真的存在並且是可讀的。用'is_file('includes/classes/facilities.class.php')'和'is_readable('includes/classes/facilities.class.php')'' – Uby 2013-04-23 15:27:33

回答

2

如果你把你的包括/文件夾放到這個文件夾;

/Users/jfloyd/IOD/includes/<all in here>

然後改變這條線在你的PHP INI來自:

include_path='.:/Applications/MAMP/bin/php/php5.4.10/lib/php'

TO

include_path='.:/Applications/MAMP/bin/php/php5.4.10/lib/php:/Users/jfloyd/IOD/'

然後保存文件並重新啓動服務器,則包括應該找到文件。

此INI指令可以在任意數量的地方使用的.htaccess或在httpd.conf或在ini文件中設置,在每個文件,每個文件夾中,正如我剛纔所描述。

+0

檢查出好了,所以更新,你可以用幾種方法解決這個問題。上述方法由杯子將工作,但它要求您爲多個域放置多個條目。我所做的就是直接進入apache httpd.conf文件,如下所示:' \t \t php_value include_path「。:/ Users/userName/your/includes/folder:/ Users/userName/your/includes/folder/classes「 AllowOverride All全部 允許,拒絕 全部允許 ' – user2311782 2013-04-23 20:50:57