2016-04-20 47 views
1

我已經安裝了2臺Ubuntu機器:192.168.1.104 & 192.168.1.105在兩臺機器上都安裝了ssh,在104臺機器上生成ssh-keygen,並將密鑰添加到兩個ip地址。將文件從一臺機器複製到其他機器使用php

我想通過php將文件從一個192.168.1.104複製到192.168.1.105。 我試過這個命令scp /home/tejas/hadoop/conf/core-site.xml [email protected]:/home/tejas/hadoop/conf/core-site.xml 通過shell腳本文件被完全複製,但是當我通過PHP腳本運行相同的命令

<?php $output = shell_exec('scp /home/tejas/hadoop/conf/core-site.xml [email protected]:/home/tejas/hadoop/conf/core-site.xml'); ?>

它亙古不變的顯示任何錯誤,但不列入文件被複制。也試過類似exec()也試過rysnc而不是scp rsync -avzh /home/tejas/hadoop/conf/mapred-site.xml [email protected]:/home/tejas/hadoop/conf/mapred-site.xml仍然沒有運氣。

兩個命令是完全通過shell腳本,但努力通過PHP

我檢查PHP不工作是不是在安全模式和了shell_exec()或者exec()在php.ini

沒有被禁用

回答

0

exec()shell_exec()由運行php腳本的用戶執行(通常在Ubuntu上爲www-data,但可能爲apache或其他)。該用戶很可能沒有文件/文件夾的權限。一種解決方案是創建一個新用戶組,並將該用戶(www-data)添加到該組中,然後在要複製/複製到的文件/文件夾上設置正確的所有權/權限。

+0

將嘗試併發布結果 – darkrider

+0

完成'sudo adduser tejas','sudo useradd -d/var/www -G www-data tejas'並給予文件的所有權仍然無效 – darkrider

+0

如果我的步驟是錯誤的 – darkrider

相關問題