ユーザー apache として bash スクリプトを実行しようとしています。そして、それは次のようにスローします
[apache@denison public]$ ll
total 32
drwxr-xr-x 2 apache apache 4096 Jul 17 08:14 css
-rw-r--r-- 1 apache apache 4820 Jul 17 10:04 h3111142_58_2012-07-17_16-03-58.php
-rwxrwxrwx 1 apache apache 95 Jul 17 10:04 h31111.bash
drwxr-xr-x 2 apache apache 4096 Jul 17 08:14 images
-rw-r--r-- 1 apache apache 754 Jul 17 08:13 index.php
drwxr-xr-x 2 apache apache 4096 Jul 17 08:14 javascript
drwxr-xr-x 5 apache apache 4096 Jul 17 08:14 jquery-ui-1.8.21.custom
[apache@denison public]$ bash h31111.bash
: command not found :
ファイルの内容は次のとおりです。
#!/bin/bash
/usr/bin/php /opt/eposdatatransfer/public/h3111142_58_2012-07-17_16-03-58.php
PHPスクリプトは正常に実行され、結果は以下のとおりです
[apache@denison public]$ /bin/bash h31111.bash
: command not found:
[apache@denison public]$ chmod +x h31111.bash
[apache@denison public]$ ./h31111.bash
./h31111.bash: Command not found.
[apache@denison public]$ php h3111142_58_2012-07-17_16-03-58.php
ファイルの作成:
$batchFile = $this->session->username . "_" . $index . "_" . $date . ".sh";
$handle = fopen($batchFile, 'w');
$data = "#!/bin/bash
/usr/bin/php /opt/eposdatatransfer/public/$file
";
/*
rm -rf /opt/eposdatatransfer/public/$file
rm -rf /opt/eposdatatransfer/public/$batchFile*";*/
fwrite($handle, $data);
fclose($handle);
batchfile は bash スクリプトで、file は php ファイルです。これらは、webapp でのユーザー入力に基づいて自動的に作成されます。私の webapp は Linux で動作します。