apacheでbashプログラムを実行する

  • 投稿者:
  • 投稿カテゴリー:bash / PHP

ローカルサイトのapacheでbashを実行したいので調べてみた

cgiプログラムとして実行する

root@hostname:/var/www/htdocs/bash# lv /etc/apache2/mods-enabled/mime.conf | grep cgi
AddHandler cgi-script .cgi
root@hostname:/var/www/htdocs/bash# cat ls.cgi
#!/bin/bash
echo "Content-type: text/plain"
echo ""
ls -altr

2015-01-19_230649
.cgiプログラムに実行権限がないときは以下のメッセージで500エラーとなる
Premature end of script headers: ls.cgi

phpプログラムとして実行する

root@hostname:/var/www/htdocs/bash# cat ls.php
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

2015-01-19_231204
出力は標準出力だけとなるため、 標準エラー出力も必要な場合は ‘ls -lart 2>&1’ とする