2011-11-24 51 views
0

我需要在服务器上运行一系列六个.sh文件。如何执行.sh文件一个接一个地用php

.sh的文件之一的例子:

wget ftp://xxxxxx:[email protected]/accommodation.xml.zip 
unzip accommodation.xml.zip 
php accommodation.php 
rm -rf accommodation.xml.zip 
rm -rf accommodation.xml 

我试图运行从一个php文件如下:由于文件中出现反复和我执行

echo shell_exec('sh accomodation.sh'); 

这是愚蠢的我想我已经关闭了服务器。哎呦。

我已经继承了这个网站,并且从未使用过.sh文件。我也是一个PHP新手。

我将如何去运行文件只有一次,然后运行下一个?

非常感谢

+0

尝试添加#/ bin /在该sh文件的顶部庆典,使其可执行文件 - 使用chmod + X accomodation.sh,然后用中继('/路径尝试/到/住宿.SH');它应该工作正常。你可以考虑的其他事情是,如果脚本不需要在Web服务器上的用户输入之后直接执行,则可以将整个事件放入cron作业中。 – Vladimir

回答

2

你可以在PHP中做到这一切,你不需要任何shell脚本。

/* get the file via ftp */ 
// connect to server 
$ftp = ftp_connect('ftp.interhome.com'); 
// login 
$login = ftp_login($ftp,"username","password"); 
// download file to tmp.zip 
$file = ftp_get($ftp, 'tmp.zip', 'accommodation.xml.zip', FTP_BINARY); 
// disconnect from server 
ftp_close($ftp); 

/* unzip the file */ 
// new zip-instance 
$zip = new ZipArchive; 
// open downloaded file 
$res = $zip->open(’tmp.zip’); 
// check if file is readable 
if ($res === TRUE) { 
    // extract to current directory 
    $zip->extractTo(’./’); 
    // close zip-file 
    $zip->close(); 
} 

/* your code from accommodation.php goes here */ 

// delete files 
unlink('tmp.zip'); 
unlink('accommodation.xml'); 

相关问题