2015-11-25 77 views
0

我需要幫助解決,有什麼說是在htdocs文件夾的權限錯誤,因爲我需要改變他們甚至在首位添加文件夾。require_once:未能打開流:權限被拒絕(LAMPP)

這是我init.php文件:

<?php 
//Start Session 
session_start(); 

//Include Configuration 
require_once('config/config.php'); 

//Helper Function Files 
require_once('helpers/system_helper.php'); 
require_once('helpers/format_helper.php'); 
require_once('helpers/db_helper.php'); 

//Autoload Classes 
function __autoload($class_name){ 
require_once('libraries/'.$class_name . '.php'); 
} 
?> 

我試着通過`

運行我index.php文件,我得到這個錯誤,包括它:

Warning: require_once(../../htdocs/PHP-Wizard/helpers/system_helper.php): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 9 

Fatal error: require_once(): Failed opening required '../../htdocs/PHP-Wizard/helpers/system_helper.php' (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 9 

我試圖去一個與../文件夾,但它不起作用。

我環顧四周,類似的錯誤礦,但沒有運氣。他們都說No such file or directory in (path)

難道是它是相同的錯誤,還是我真的需要更改我的權限?如果是的話,我該怎麼做?

編輯:當我使用include_once('helpers/system_helper.php');我得到這個錯誤:

Warning: include_once(helpers/system_helper.php): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 9 

Warning: include_once(): Failed opening 'helpers/system_helper.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 9 

Warning: include_once(helpers/format_helper.php): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 10 

Warning: include_once(): Failed opening 'helpers/format_helper.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 10 

Warning: include_once(helpers/db_helper.php): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 11 

Warning: include_once(): Failed opening 'helpers/db_helper.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/PHP-Wizard/core/init.php on line 11 

回答

3

問題確實是權限,我猜是因爲我複製了文件夾。

我修復了該文件夾中所有文件的chmod 777,現在它工作正常。

感謝您的時間試圖幫助我。

0

require_once需要絕對的路徑,而不是相對路徑。這應該有所幫助:

require_once realpath(dirname(__FILE__)."/helpers/system_helper.php"); 
+0

如果我明白你說的是 「/opt/lampp/lampp/htdocs/project/helpers/system_helper.php」 應該工作,我是對嗎? 編輯:我會發布我與include_once –

+0

錯誤現在它只是說沒有這樣的文件或目錄 –

+0

是的。這應該工作。但是請注意,如果這是您的文檔根目錄而不是/ opt,那麼您的路徑從/ htdocs開始,這意味着如果必須將它放在代碼中,那麼您的路徑將爲/project/helpers/system_helper.php。儘管你應該嘗試以編程的方式獲得絕對路徑,正如我在答案中所建議的那樣。 –

1

我測試使用相對路徑,它工作正常。

<?php 

require_once '../test.php'; 

echo ' you'; 

test.php只包含echo "hello";導致預期 「你好你」。

我猜你的問題是文件權限。你能檢查你的system_helper.php有什麼權限嗎?它應該至少可以通過用戶php運行(通常是www-data)來執行。我可以做一個chown root test.phpchmod 600 test.php重現你的錯誤信息,所以我猜是這樣

chown www-data: system_helper.php

chmod g+rwx system_helper.php

應該給你的權限運行該腳本。

+0

這就是當我鍵入它說: 「LS -ld /選擇/ LAMPP/htdocs目錄」 drwxrwsrwx 6根WWW 4096 11月16日23:18的/ opt/LAMPP/htdocs目錄 –

+0

,這就是當我鍵入「LS它說-ld/opt/lampp/htdocs/PHP-Wizard「 --drwxr-xr-x 12 xy www 4096 Nov 25 21:34/opt/lampp/htdocs/PHP-Wizard/ –

+0

這些是我對系統幫助程序的許可.php:-rw ------- 1 xy xy 1518 –

0

打開終端,粘貼,執行這些命令:

sudo -i 
sudo chmod -R 777 var/www/html/*/*.* 

當然,當收到提示後sudo -i

現在你的要求,包括將工作輸入密碼!

+0

謝謝!我是新來的stackoverflow,我不知道如何格式化文本:P – Jackson

相關問題