2012-02-19 84 views
0

我有config.php,我在該文件上做了一個ls-l,它顯示了-rwxrwxr-x的讀,寫和可執行文件。PHP文件不可寫入錯誤。

但是在PHP腳本中,is_writable(config.php)函數顯示文件不可寫。

這是爲什麼?

+0

誰擁有該文件?誰運行php? – zerkms 2012-02-19 22:06:57

+0

PHP是否與文件所有者在同一組中運行? – 2012-02-19 22:07:45

+0

@Oli Charlesworth:與文件所有者技術上相同的羣組是不正確的,只要你可以指定任何羣組作爲文件所有者 – zerkms 2012-02-19 22:09:48

回答

1

大概是因爲PHP腳本運行作爲不同的用戶比你運行-l
嘗試執行LS命令:chmod + W的config.php

0

這組沒有文件屬於哪一種?

rwxrwxr-x表示該文件可由用戶和組寫入,但不能由其他人寫入。

現在,如果您的網絡服務器進程(即主持php)正在訪問該文件,它以用戶'nobody'或'www-data'的方式進行操作,所以這是需要擁有該文件或具有組的用戶寫入訪問它。

一個快速修復:如果你將文件的一個chown文件傳遞給apache正在運行的用戶,你應該沒問題。

+0

該文件屬於admin,這就是我。我運行php腳本。但我如何驗證我運行Apache作爲我自己,管理員? – lilzz 2012-02-19 22:17:47

+0

@lilzz在PHP中,做echo shell_exec('whoami'); – Roman 2012-02-19 22:21:25

+0

ps aux | grep apache,第一列顯示用戶 – mindandmedia 2012-02-19 22:22:00