2016-01-29 41 views
3

我已經徹底搜索了stackoverflow和其他在線資源,但沒有任何工作。PHP chmod()不能在服務器上工作

基本上,我想寫新的內容到服務器上的文件。我正在使用以下代碼來測試它。

代碼:

error_reporting(E_ALL); 
ini_set('display_errors',1); 

$my_file = 'test_file.php'; 

$permission = chmod($my_file, 0775); 
echo "Permission"; 
var_dump($permission);exit; 

它始終返回false,並顯示一條警告,chmod()是不允許的。

我不想爲此使用ftp解決方案。所以,請告訴我chmod()不能正常工作的原因是什麼,以及是否有其他方法可以實現此目的?

+0

and'error_reporting(E_ALL); ini_set('display_errors',1);'給了你什麼? –

+0

警告:chmod():第1行中的/home/new/domains/test.new.com.eu/public_html/test_perm.php中不允許操作 –

+1

用戶不是root用戶,因此您無權更改CHMOD。網絡服務器用戶需要先擁有這些權限。 – Martin

回答

3

原因是網絡服務器用戶(大多數Linux版本上的www-data)沒有權限更改文件test_file.php的權限。

要解決此問題,您可以運行chmod 644 www-data:www-data test_file.php(用您的Web服務器用戶替換www-data),現在您應該可以使用PHP的chmod()更改權限。

+0

我無法僅通過使用PHP腳本來解決此問題嗎? –

+0

@NuttyProgrammer否,因爲PHP(或更準確地說,是'www-data')不允許修改文件的權限。但是,一旦你完成了上述,你將能夠。 – developius

相關問題