2012年3月29日木曜日

[PHP]PHPでコマンド発行をしてみた

PHP5.4でコマンドを発行してみた。

shell_execだけしか知らなかったのですが

以下のサイトを見たら、結構いろいろコマンドがあるっぽいことが判明。
http://www.phppro.jp/phpmanual/php/ref.exec.html

前回構築したビルトインのサイトに1hテキトーなphpを作ってみた。


echo "<div>";
echo "<h2>コマンド</h2>";
$com = "dir";
print_r($com);

echo "</div><hr />";
echo "<div>";
echo "<h2>passthru</h2>";
$output = passthru($com);
print_r($output);

echo "</div><hr />";
echo "<div>";
echo "<h2>exec</h2>";
$output = exec($com);
print_r($output);


echo "</div><hr />";
echo "<div>";
echo "<h2>shell_exec</h2>";
$output = shell_exec($com);
print_r($output);

echo "</div><hr />";

こんなの。
出方を比べてみる。




コマンド

dir

passthru

ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は C49E-10EE です C:\php\www のディレクトリ 2012/03/29 15:04





. 2012/03/29 15:04.. 2012/03/29 15:54 524 cmd.php 2012/03/29 15:04 18 index.php 2 個のファイル 542 バイト 2 個のディレクトリ 5,554,049,024 バイトの空き領域

exec

2 個のディレクトリ 5,554,049,024 バイトの空き領域

shell_exec

ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は C49E-10EE です C:\php\www のディレクトリ 2012/03/29 15:04





. 2012/03/29 15:04.. 2012/03/29 15:54 524 cmd.php 2012/03/29 15:04 18 index.php 2 個のファイル 542 バイト 2 個のディレクトリ 5,554,049,024 バイトの空き領域

こんな感じになりましたとさ。
とりあえず以上


[PHP]PHP5.4をインストールしてみたよ(Windows server 2008 R2)


Windows sever 2008 R2(64bit)にインストールしてみたよ。
ここで最新のzipをダウンロードすべし。今回は5.4!


ダウンロードしたら、テキトーなフォルダーに突っ込もう。
フツーは、c:\phpとか?

そしたら、php.iniを作るよ。
php.ini-developmentphp.iniにリネームして使いますです。

したらば中身をこんな感じに

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "c:\php\ext"


環境変数にも追加しておきましょう
コンピューター (右クリ)-> プロパティー > システムの詳細設定
のPathに、c:\php;を追加。おk。


5.4には、ビルトインのウェブサーバーがついてるっぽくて、


コマンドプロンプトで以下の様に打つと
c:\php>php.exe -S 127.0.0.1:9876
PHP 5.4.0 Development Server started at Thu Mar 29 15:02:46 2012
Listening on 127.0.0.1:9876
Document root is c:\php
Press Ctrl-C to quit.

ってなって、ウェブサーバーが起動します。

ドキュメントルートを変えたかったら、 -tオプションで指定
c:\php>php.exe -S 127.0.0.1:9876 -t www ←相対でも絶対でもおk
PHP 5.4.0 Development Server started at Thu Mar 29 15:02:46 2012
Listening on 127.0.0.1:9876
Document root is c:\php\www
Press Ctrl-C to quit.

これだけで使えちゃう。超便利。

IISに入れる場合どうすんだろう。ちょっと調べてみよう。


参考にしたサイト:
有難うございます~。