記事内にはプロモーションが含まれています

【PHP】コマンドラインからスクリプトを実行する方法

【PHP】コマンドラインからスクリプトを実行する方法 PHP

Webサイトを作るための言語というイメージが強いPHPですが、実はコマンドライン(黒い画面)から実行するスクリプト言語としても非常に優秀です。

バッチ処理やCronによる定期実行、あるいはちょっとしたデータ加工ツールを作るとき、ブラウザを開かずにサッと実行できるのは大きな強みです。

「PHPファイルをターミナルから実行したい」
「コマンドライン引数を受け取って処理を変えたい」
「Windowsでphpコマンドが使えない」

そんな方のために、この記事ではPHPをコマンドラインから実行する基本手順から、実務で役立つ引数の扱い方、トラブルシューティングまでを最新情報に基づいて解説します。

【本記事の信頼性】
プロフィール
執筆者:マヒロ
  • 執筆者は元エンジニア
  • SES⇒大手の社内SE⇒独立
  • 現在はプログラミングスクールを運営
  • モットーは「利他の精神」
💻 本記事の検証環境(2026年2月確認)
  • OS:Windows 11 / macOS Sequoia
  • IDE:Visual Studio / VS Code / IntelliJ IDEA
  • その他:Chrome DevTools / 各言語最新安定版

※本メディアでは、上記環境にてコードの動作と情報の正確性を検証済みです。

PHPファイルをコマンドラインで実行する基本手順

PHPスクリプトをWebサーバー経由ではなく、パソコンのターミナルやコマンドプロンプトから直接実行する方法です。

1. ターミナル(コマンドプロンプト)を開く

まずは黒い画面を開きます。

  • Windows: スタートメニューから「cmd」または「PowerShell」を検索して起動します。
  • Mac: アプリケーション > ユーティリティ > ターミナルを起動します。

2. PHPが使えるか確認する

PHPがインストールされ、パスが通っているかを確認します。以下のコマンドを入力してEnterキーを押してください。

php -v

バージョン情報が表示されればOKです。
もし「コマンドが見つかりません」といったエラーが出る場合は、後述する「phpコマンドが使えない時の対処法」を参照してください。

3. PHPファイルを実行する

実行したいPHPファイルがある場所まで cd コマンドで移動し、以下のコマンドで実行します。

# 基本の実行コマンド
php ファイル名.php

例えば、hello.php というファイルに <?php echo "Hello World!"; ?> と書いて保存し、実行してみましょう。

php hello.php

画面に Hello World! と表示されれば成功です。

コマンドライン引数を渡して処理を動的にする

コマンドライン実行の醍醐味は、実行時に「引数(パラメータ)」を渡せることです。

これにより、同じプログラムでも「処理する対象」や「モード」を変えることができます。

引数の受け取り方($argv)

PHPでは、コマンドライン引数は自動的に $argv という配列に格納されます。

  • $argv[0]: 実行したスクリプトファイル名(例: test.php)
  • $argv[1]: 1つ目の引数
  • $argv[2]: 2つ目の引数

test.php

<?php
// 引数の数を確認
if ($argc < 2) {
    echo "引数を指定してください。\n";
    exit;
}

// 引数を表示
echo "こんにちは、" . $argv[1] . "さん!\n";
?>

実行コマンド

php test.php 田中

実行結果

こんにちは、田中さん!

実務で使う場合の注意点

$argv はすべて「文字列」として受け取られます。
数値として計算したい場合は、適宜キャスト(型変換)を行ってください。

また、複雑なオプション(例: -u user -p pass)を扱いたい場合は、標準関数の getopt() を使うと便利です。

<?php
// -u と -p のオプションを受け取る
$options = getopt("u:p:");
var_dump($options);
?>

便利な対話モード(インタラクティブシェル)の使い方

「ちょっとこの関数の挙動を確認したい」という時に、わざわざファイルを作って保存して実行するのは面倒です。

そんな時は、PHPの対話モード(Interactive Shell)を使いましょう。

対話モードの起動

php -a

このコマンドを実行すると、プロンプトが php > に変わります。
ここで直接PHPのコードを入力して実行できます。

使用例

php > echo date('Y-m-d');
2026-05-20
php > $x = 10;
php > echo $x * 5;
50
php > exit

終了するには exit と入力するか、Ctrl + D(Windowsは Ctrl + Z)を押します。
簡単な計算や関数のテストに非常に便利です。

「phpコマンドが使えない」時の原因と対処法(Windows/Mac)

php と入力しても反応がない」
「コマンドが見つからないと言われる」

これは、PHPがインストールされていないか、インストール場所への「パス(Path)」が通っていないことが原因です。

Windowsの場合

  1. PHPのインストール: 公式サイトやXAMPPなどからPHPをインストールします。
  2. 環境変数の設定:
    • システムのプロパティ > 環境変数 を開きます。
    • 「Path」という変数を選択し「編集」をクリックします。
    • PHPのフォルダのパス(例: C:\xampp\phpC:\php)を新規追加します。
  3. 再起動: コマンドプロンプトを再起動して php -v を試します。

Macの場合

Macは標準でPHPが入っていない場合が増えています(macOSのバージョンによる)。
Homebrewを使ってインストールするのが一般的です。

brew install php

インストール後、ターミナルを再起動すれば php コマンドが使えるようになります。

【応用】PHPプログラムの中からコマンドラインを実行する

逆に、PHPのプログラムの中から、OSのコマンド(ls, dir, pythonスクリプトなど)を実行したい場合もあります。
これを実現するのが「プログラム実行関数」です。

代表的な関数とその違い

関数名 特徴 戻り値
exec() コマンドを実行し、最後の1行だけを返す。全出力は第2引数に配列として格納可能。 結果の最後の行
shell_exec() コマンドを実行し、すべての出力を文字列として返す。バッククォート ` でも同じ。 出力全体(文字列)
system() コマンドを実行し、結果を即座に画面に出力する。 結果の最後の行
passthru() バイナリデータなどをそのまま出力する場合に使用。 なし

exec関数の使用例

<?php
// ls コマンド(Windowsなら dir)を実行
$output = [];
$return_var = 0;

exec('ls -l', $output, $return_var);

// 結果を表示
echo "終了ステータス: " . $return_var . "\n";
print_r($output);
?>

セキュリティの注意点
外部からの入力($_GET など)をそのまま exec などの関数に渡すと、意図しないコマンドを実行される脆弱性(OSコマンドインジェクション)につながります。
ユーザー入力をコマンドに含める場合は、必ず escapeshellarg() 関数でエスケープ処理を行ってください。

PHPのスキルを活かして年収を上げる方法

以上、PHPでコマンドラインからスクリプトを実行する方法について解説してきました。

なお、PHPのスキルがある場合には、「転職して年収をアップさせる」「副業で稼ぐ」といった方法を検討するのがおすすめです。

PHPエンジニアの需要は非常に高く求人数・案件数も多いため、転職によって数十万円の年収アップはザラで、100万円以上年収が上がることも珍しくありません。

なお、転職によって年収を上げたい場合は、エンジニア専門の転職エージェントサービスを利用するのが最適です。
今すぐ転職する気がなくとも、とりあえず転職エージェントに無料登録しておくだけで、スカウトが届いたり、思わぬ好待遇の求人情報が送られてきたりするというメリットがあります。
併せて、副業案件を獲得できるエージェントにも登録しておくと、空いている時間を活かして稼げるようなPHPの案件を探しやすくなります。

転職エージェントも副業エージェントも、登録・利用は完全無料なので、どんな求人や副業案件があるのか気になる方は、気軽に利用してみるとよいでしょう。
エンジニアのキャリア・スキルアップ相談窓口
当ブログの読者に選ばれている、実績豊富な転職エージェントを厳選しました。
【転職】年収・環境を改善したい
年収アップにこだわりたい方 (平均アップ額138万円の実績)
未経験・経験者問わず幅広く探したい方
業界に精通した担当者に相談したい方
ゲーム業界への転職を志望する方
エンジニア未経験からキャリアを築く方
【独立】フリーランスとして稼ぎたい
国内最大級のフリーランス案件数から比較したい方
週1〜3日など柔軟な働き方を希望する方
【学習】スキルに不安のある方向け(格安スクール「デイトラ」)