2016-07-16 46 views
0

我是一個Centos 7機器,我用Apache和Slim Framework配置了PHP機器。php函數file_exits,copy,shell_exec不能在一臺機器上工作,但是在不同機器上工作的代碼相同

檢查文件是否存在並將代碼複製到目錄中的簡單代碼在其中一臺機器上工作正常,但在另一臺機器上無法工作。它真的很奇怪。

其實我是通過Apache訪問API來觸發這個函數的。

功能像shell_exec alaways返回0 複製功能也沒有工作 file_exists也無法正常工作。

任何幫助或線索爲什麼這是錯誤的或調試此問題。

+1

可能是[open_basedir的](HTTP的不同的設置:// PHP .net/manual/en/ini.core.php#ini.open-basedir)或[safe_mode_exec_dir](http://php.net/manual/en/ini.sect.safe-mode.php#ini.safe- mode-exec-dir)或事件[disable_functions](http://php.net/manual/en/ini.core.php#ini.disable-functions)也許? –

+0

我第二次Alon在php的安全性上指出.ini文件。還要確保error_reporting處於打開狀態,以查看遇到的任何錯誤。 – jirka

+0

我試圖進一步調試它,發現它是爲一個普通的php腳本工作,但是當相同的腳本從apache(web)調用時,它不起作用。檢查open_basedir/disable_function沒有配置,所以仍然想知道爲什麼它不能從Apache工作 – nirajkumar

回答

0

謝謝大家的幫助。

問題是文件權限問題。 原因是我所執行的上述所有功能都在文件上。由於這些文件對不同的用戶具有不同的權限。

因此,如果我從瀏覽器中打開URL,它是通過「Apache」用戶,該用戶對該文件夾沒有執行權限來訪問文件並讀取該文件的權限。

總之

須藤使用chmod + RX文件

須藤使用chmod + x 「的所有的目錄結構」

相關問題