PHPにおけるCLI(コマンドラインインターフェース)の使用方法について、詳細で包括的な記事を以下に記載します。CLIは、プログラムの実行やタスクの管理をコマンドラインから行うための強力なツールです。PHPでは、CLIを使用して、ブラウザを介さずに直接スクリプトを実行することができます。この記事では、PHPでCLIを使用する方法、CLIスクリプトの作成、実行方法、および便利なCLIツールについて解説します。
1. PHP CLIの基本
CLI(コマンドラインインターフェース)は、ユーザーがコマンドを入力してシステムと対話できるインターフェースです。PHPは通常、ウェブサーバー(例:ApacheやNGINX)経由で実行されますが、CLIモードではコマンドラインから直接PHPスクリプトを実行できます。

1.1 CLIモードとは
CLIモードでは、PHPスクリプトをブラウザではなく、ターミナル(またはコマンドプロンプト)から実行します。これにより、ウェブサーバーを介さずにバックグラウンドで処理を行ったり、システム管理タスクを自動化したりできます。CLIモードは、主に以下のようなタスクに役立ちます。
- 定期的なバッチ処理
- データベースのバックアップや復元
- コマンドラインツールの作成
- サーバーのメンテナンススクリプト
2. PHP CLIのインストール
ほとんどのPHPインストールにはCLIが含まれていますが、もし含まれていない場合は、PHP CLIをインストールする必要があります。以下は、一般的なOSでのPHP CLIのインストール方法です。
2.1 Ubuntuでのインストール
Ubuntuでは、次のコマンドでPHP CLIをインストールできます。
bashsudo apt-get update sudo apt-get install php-cli
2.2 MacOSでのインストール
MacOSでは、Homebrewを使用してPHP CLIをインストールできます。
bashbrew install php
2.3 Windowsでのインストール
Windowsでは、公式PHPのウェブサイトからPHPのインストールパッケージをダウンロードし、解凍後にPHPの実行ファイル(php.exe)がCLIとして使用できます。環境変数にPHPのパスを追加することで、どのディレクトリからでもPHPを実行できます。
3. PHP CLIスクリプトの作成
PHP CLIスクリプトは、通常のPHPスクリプトとほとんど同じですが、HTTPリクエストやレスポンスがないため、インタラクティブな入力や標準出力を使用することが一般的です。
以下は、CLI用の簡単なPHPスクリプトの例です。
php
// hello.php
echo "こんにちは、PHP CLI!\n";
?>
このスクリプトは、ターミナルまたはコマンドプロンプトで実行すると、「こんにちは、PHP CLI!」というメッセージが表示されます。
実行方法:
bashphp hello.php
4. コマンドライン引数の受け取り
CLIスクリプトでは、コマンドライン引数を受け取ることができます。これにより、スクリプトを動的に制御することができます。引数は、$argv
という配列に格納され、$argc
で引数の数を確認できます。
以下は、コマンドライン引数を受け取る例です。
php
// greet.php
if ($argc > 1) {
$name = $argv[1];
echo "こんにちは、$name さん!\n";
} else {
echo "名前を指定してください。\n";
}
?>
実行方法:
bashphp greet.php 太郎
結果:
こんにちは、太郎 さん!
引数が提供されない場合、次のメッセージが表示されます:
名前を指定してください。
5. コマンドラインからの入力を受け取る
CLIスクリプトでは、ユーザーからの入力を受け取ることもできます。これには、fgets()
やreadline()
関数を使用します。以下は、標準入力からユーザー名を受け取る例です。
php
// ask_name.php
echo "お名前を入力してください: ";
$name = trim(fgets(STDIN)); // ユーザーからの入力を受け取る
echo "こんにちは、$name さん!\n";
?>
実行方法:
bashphp ask_name.php
結果:
makefileお名前を入力してください: 太郎
こんにちは、太郎 さん!
6. PHP CLIでのファイル操作
CLIスクリプトを使用して、ファイルを操作することもできます。ファイルの読み込み、書き込み、削除などの基本的な操作は、通常のPHPのファイル操作関数を使用できます。
6.1 ファイル読み込み
php
// read_file.php
$filename = "sample.txt";
if (file_exists($filename)) {
$content = file_get_contents($filename);
echo "ファイルの内容:\n";
echo $content;
} else {
echo "ファイルが存在しません。\n";
}
?>
6.2 ファイル書き込み
php
// write_file.php
$file = "output.txt";
$content = "これはテストの内容です。\n";
file_put_contents($file, $content);
echo "$file に書き込みました。\n";
?>
7. PHP CLIを使用したスケジュール実行
CLIスクリプトは、cronジョブ(LinuxやMacOS)やタスクスケジューラ(Windows)を使用して定期的に実行することができます。これにより、定期的なバックアップ、データ更新、メンテナンス作業などを自動化できます。
7.1 Linux/MacOSでのcronジョブ設定
crontab
を使用して、PHPスクリプトを定期的に実行できます。以下は、毎日午前3時にbackup.php
を実行する設定例です。
bashcrontab -e
以下の行を追加:
ruby0 3 * * * /usr/bin/php /path/to/backup.php
7.2 Windowsでのタスクスケジューラ設定
Windowsのタスクスケジューラを使用して、指定した時間にPHPスクリプトを実行できます。タスクスケジューラで新しいタスクを作成し、実行するプログラムとしてPHPの実行ファイル(php.exe
)を指定し、引数としてスクリプトファイルのパスを指定します。
8. PHP CLIツールの利用
PHPにはCLI用の便利なツールも多数あります。例えば、Composer
は、PHPパッケージの管理ツールであり、CLIで実行できます。また、Symfony Console
やLaravel Artisan
は、CLIで使える強力なフレームワーク提供のツールです。これらのツールを使用することで、CLIスクリプトの作成や管理がより簡単になります。
8.1 Symfony Console
Symfony Consoleは、コマンドラインインターフェースの開発を簡単にするためのPHPライブラリです。CLIコマンドを簡単に作成でき、引数やオプションを扱うのに便利です。
bashcomposer require symfony/console
その後、コマンドクラスを作成して実行できます。
9. まとめ
PHP CLIを使用することで、ブラウザを使わずに直接PHPスクリプトを実行し、システム管理や自動化タスクを簡単に処理できます。CLIスクリプトは、引数やユーザー入力を受け取ることができ、ファイル操作やスケジュール実行にも対応しています。これにより、日々の業務や定期的な処理を効率的に管理することが可能になります。
PHP CLIを使いこなすことで、バックエンドでの処理を強化し、業務の効率化を図ることができるため、開発者にとっては非常に強力なツールとなります。