如何使用php逐个执行.sh文件

如何使用php逐个执行.sh文件,php,sh,Php,Sh,我需要在服务器上运行一系列六个.sh文件 其中一个.sh文件的示例: wget ftp://xxxxxx:xxxxxx@ftp.interhome.com/accommodation.xml.zip unzip accommodation.xml.zip php accommodation.php rm -rf accommodation.xml.zip rm -rf accommodation.xml 我尝试从php文件运行以下内容: echo shell_exec('sh accomoda

我需要在服务器上运行一系列六个.sh文件

其中一个.sh文件的示例:

wget ftp://xxxxxx:xxxxxx@ftp.interhome.com/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新手

我如何只运行一次文件,然后再运行下一次


非常感谢

您可以在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');

试试添加#/bin/bash,使其可执行-chmod+x accountodation.sh,然后尝试使用passthru('/path/to/accountodation.sh');它应该工作得很好。其他可以考虑的是,如果脚本不需要在Web服务器上的用户输入之后直接执行,则可以将整个内容放入CRON作业中。