UbuntuにPHPインタプリタをインストール
目次
PHPは主にサーバーサイドで動作し、Webアプリ開発に使われていますが、PHPの文法を勉強するためだけにサーバーを作るのは面倒です。 なのでローカルで動作するPHPインタプリタをインストールしてみました。
使用OSは"Ubuntu 20.04.2"です。
PHP CLIをインストールする
コマンドラインで使用するPHPは、“PHP CLI"と言うらしいです。 aptコマンドで検索してみます。
$ apt --names-only search 'php[0-9.]*-cli'
ソート中... 完了
全文検索... 完了
php-cli/focal,focal 2:7.4+75 all
command-line interpreter for the PHP scripting language (default)
php7.4-cli/focal-updates,focal-security 7.4.3-4ubuntu2.4 amd64
command-line interpreter for the PHP scripting language
デフォルトのaptリポジトリには2つありました。 デフォルトの"php-cli"をインストールしてみます。
$ sudo apt install php-cli
インストールされたバージョンを確認します。
$ php -v
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
PHPのインタラクティブモードを実行する
php -a
でコマンドラインからPHPコードを直接入力して実行することができます。
「Ctrl + D」で終了します。
$ php -a
Interactive mode enabled
php > echo 30+6;
36
php > function series($num) {
php { if ($num > 1) {
php { return $num + series($num - 1);
php { }
php { return 1;
php { }
php > echo "1から10までの整数の合計 = " . series(10) . "\n";
1から10までの整数の合計 = 55
php >
$
PHPのプログラムファイルを実行する
PHPソースファイル"hello.php"を作成します。
<?php
function print_hello($counter) {
while ($counter > 0) {
echo $counter . " hello!" . PHP_EOL;
$counter--;
}
}
echo "自然数を入力ー > ";
$num = trim(fgets(STDIN));
print_hello($num);
php
コマンドにファイル名を指定します。
$ php hello.php
自然数を入力ー > 5
5 hello!
4 hello!
3 hello!
2 hello!
1 hello!
$
phpのオプション
-h
オプションで表示します。
$ php -h
Usage: php [options] [-f] <file> [--] [args...]
php [options] -r <code> [--] [args...]
php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
php [options] -S <addr>:<port> [-t docroot] [router]
php [options] -- [args...]
php [options] -a
-a Run interactively
-c <path>|<file> Look for php.ini file in this directory
-n No configuration (ini) files will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse and execute <file>.
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r <code> Run PHP <code> without using script tags <?..?>
-B <begin_code> Run PHP <begin_code> before processing input lines
-R <code> Run PHP <code> for every input line
-F <file> Parse and execute <file> for every input line
-E <end_code> Run PHP <end_code> after processing all input lines
-H Hide any passed arguments from external tools.
-S <addr>:<port> Run with built-in web server.
-t <docroot> Specify document root <docroot> for built-in web server.
-s Output HTML syntax highlighted source.
-v Version number
-w Output source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
--ini Show configuration file names
--rf <name> Show information about function <name>.
--rc <name> Show information about class <name>.
--re <name> Show information about extension <name>.
--rz <name> Show information about Zend extension <name>.
--ri <name> Show configuration for extension <name>.