開発環境・コマンドライン

PHP コマンドの使い方について解説

PHP コマンドは、PHPスクリプトをコマンドライン上で実行するためのツールです。

Webサーバーに依存せず、スクリプトのテストや自動化、バッチ処理など、さまざまな用途に活用できます。

CLI(Command Line Interface)を利用して柔軟な開発や運用が可能です。

基本操作とオプションの利用

PHPスクリプトのCLI実行方法

シンプルな実行例(php script.php)

PHPファイルを単体で実行する場合、シンプルにコマンドラインから実行できます。

以下は、script.phpで「Hello, World!」と表示する例です。

<?php
// Hello World スクリプト
echo "Hello, World!";
?>

上記のファイルを保存し、ターミナルで以下のコマンドを実行してください。

php script.php

実行結果は以下のようになります。

Hello, World!

引数を利用した実行事例

コマンドラインから引数を渡してスクリプトの動作を変更することも可能です。

以下は、最初の引数を表示する例です。

<?php
// コマンドライン引数を表示するスクリプト
if (isset($argv[1])) {
    echo "Received argument: " . $argv[1];
} else {
    echo "No arguments provided";
}
?>

例えば、以下のように実行すると引数が反映されます。

php script.php TestArgument

実行結果は以下のようになります。

Received argument: TestArgument

主要なコマンドラインオプション

バージョン情報確認(php -v)

php -v コマンドは、PHPのバージョン情報やビルド情報を表示します。

実行例は以下の通りです。

php -v

その実行結果は通常、以下のように表示されます。

PHP 8.1.0 (cli) (built: Nov  5 2021 12:34:56) ( NTS )
Copyright (c) The PHP Group

モジュール一覧確認(php -m)

php -m コマンドを利用すると、現在ロードされているモジュールの一覧を確認することができます。

以下のコマンドを実行してください。

php -m

実行結果例は以下のようになります。

[PHP Modules]
bcmath
Core
date
dom
fileinfo
filter
hash
json
libxml
mbstring
mysqli
openssl
pcre
PDO
session
SimpleXML
xml
xmlreader
xmlwriter
zip

コード直接実行(php -r)

php -r オプションを使うと、ファイルを作成せずに直接PHPコードを実行できます。

例えば、以下のように実行します。

php -r "echo 'Hello PHP CLI';"
Hello PHP CLI

内蔵サーバー起動(php -S)

PHPはローカル環境で簡易サーバーを起動するための組み込みサーバー機能を提供しています。

以下のコマンドで、指定したホストとポートでサーバーを起動できます。

php -S localhost:8000

ターミナルには起動情報が表示され、ブラウザで http://localhost:8000 にアクセスすることで動作を確認できます。

実行時設定のカスタマイズ

php.iniの指定方法

実行時にカスタム設定ファイルを読み込む場合、-c オプションを使用して独自の php.ini を指定することが可能です。

例えば、以下のように実行します。

php -c /path/to/custom/php.ini script.php

この方法により、特定の設定環境下でスクリプトを実行することができます。

環境変数との連携方法

PHP CLIは環境変数を利用して、実行環境を柔軟に変更することが可能です。

シェル上で環境変数を設定してからPHPスクリプトを実行する例を示します。

まず、環境変数を設定します。

export APP_ENV=development

次に、スクリプト内で環境変数を取得する例です。

<?php
// 環境変数 APP_ENV の値を表示するスクリプト
$env = getenv("APP_ENV");
echo "Application Environment: " . $env;
?>

実行結果は以下のようになります。

Application Environment: development

デバッグとエラーハンドリング

エラーメッセージとログ出力の確認

エラーメッセージの読み方

エラーメッセージは、エラーが発生したファイル名、行番号、エラーの種類が含まれています。

例えば、以下の形式で表示されます。

Warning: Undefined variable $var in /path/to/script.php on line 10

エラー表示を確認することで、問題の発生箇所や内容を迅速に把握することが可能です。

ログファイルの設定と確認

PHPではエラーログの出力先を指定して、実行時のエラー情報を記録することができます。

以下のサンプルは、ini_set関数を用いたエラーログの設定と、エラーの発生を確認する例です。

<?php
// エラーログ出力を有効にする設定
ini_set('log_errors', 'On');
// エラーログの出力先を指定する
ini_set('error_log', '/path/to/php_error.log');
// テスト用のエラーを発生させる
trigger_error("Test error message", E_USER_NOTICE);
?>

上記のスクリプトを実行すると、エラーメッセージが指定のログファイルに出力されます。

ログファイル内のメッセージ例は以下のようになります。

[09-Aug-2023 15:20:45 UTC] PHP Notice:  Test error message in /path/to/script.php on line 6

デバッグオプションの活用

詳細エラーレベルの設定方法

実行時にエラーレベルを調整することで、表示するエラーの詳細度を変更できます。

-d オプションを利用して、PHPの設定値を上書きする例を以下に示します。

php -d error_reporting=E_ALL script.php

このコマンドを使用することで、すべてのエラーや警告が表示され、デバッグ作業が行いやすくなります。

応用利用例

バッチ処理や自動化への活用

タスクスケジューラとの連携

PHP CLIは定期実行処理にも利用でき、サーバーのタスクスケジューラ(cronやWindows Task Schedulerなど)と連携することで自動化が実現可能です。

以下は、cronでPHPスクリプトを毎分実行する例です。

* * * * * /usr/bin/php /path/to/script.php

この設定により、指定したスクリプトが1分ごとに自動実行され、定期更新やレポート作成などに役立ちます。

自動実行スクリプトの運用例

自動実行スクリプトでは、引数や環境変数を活用して、実行するタスクの内容を柔軟に変更することができます。

たとえば、処理対象のデータベース名や実行モードを引数で渡し、動作を切り替える実装が考えられます。

以下は、実行モードによって動作を分岐するサンプルです。

<?php
// 自動実行スクリプトの例
if (isset($argv[1]) && $argv[1] === "update") {
    // 更新処理を行う部分
    echo "Database update process initiated.";
} else {
    // 通常の処理を行う部分
    echo "Default process executed.";
}
?>

引数を変更することで、運用状況に合わせた動作の切り替えが可能となります。

内蔵サーバー利用事例

php -Sを用いた軽量サーバー起動の実践例

PHPの内蔵サーバーは、ローカル環境でのテストや簡単なデモに最適です。

プロジェクトのルートディレクトリで以下のコマンドを実行するだけで、即座に動作確認ができます。

php -S localhost:8000

ターミナルには起動情報が表示され、表示例は以下の通りです。

PHP 8.1.0 Development Server started at Wed Aug 09 15:25:30 2023
Listening on http://localhost:8000
Document root is /path/to/project
Press Ctrl-C to quit.

ブラウザで http://localhost:8000 にアクセスすることで、プロジェクト内のPHPファイルの動作を確認することができます。

まとめ

本記事では、PHPコマンドの基本操作、主要オプション、デバッグ方法、さらにはバッチ処理や内蔵サーバーの利用例について詳しく解説しました。

記事全体を通して、CLIでのPHPの実行方法や設定変更、エラーハンドリングが体系的に整理され、実践的なサンプルコードを用いて分かりやすく解説されている点が特徴です。

ぜひ、実際にコマンドを試してみて、より高度なPHP活用を目指してください。

関連記事

Back to top button
目次へ