PHP8.1をインストールしてUbuntu22.04にローカル開発環境をセットアップする方法

提供:Dev Guides
移動先:案内検索

このチュートリアルの以前のバージョンはalenaholliganによって書かれました。

序章

PHPは、動的でインタラクティブなWebページを作成することで知られる人気のあるサーバースクリプト言語です。 選択した言語で立ち上げて実行することは、プログラミングを学ぶための最初のステップです。

このチュートリアルでは、UbuntuにPHP 8.1をインストールし、コマンドラインからローカルプログラミング環境をセットアップする方法について説明します。 また、依存関係マネージャー Composer をインストールし、スクリプトを実行してインストールをテストします。

前提条件

このチュートリアルを完了するには、Ubuntu 22.04がインストールされ、そのマシンへの管理アクセスとインターネット接続を備えたローカルマシンまたは仮想マシンが必要です。 このオペレーティングシステムは、Ubuntuリリースページからダウンロードできます。

ステップ1—PHP8.1のセットアップ

コマンドラインでインストールとセットアップを完了します。これは、コンピューターと対話するための非グラフィカルな方法です。 つまり、ボタンをクリックする代わりに、テキストを入力し、テキストを介してコンピューターからフィードバックを受け取ることになります。

シェルまたはターミナルとも呼ばれるコマンドラインは、コンピューターで毎日実行するタスクの多くを変更および自動化するのに役立ち、ソフトウェア開発者にとって不可欠なツールです。 あなたがより強力なことをすることを可能にすることができる学ぶべき多くのターミナルコマンドがあります。 記事Linuxターミナルの紹介を使用すると、ターミナルの方向性をよりよく理解できます。

Ubuntuでは、画面の左上隅にあるUbuntuアイコンをクリックし、検索バーにterminalと入力すると、ターミナルアプリケーションを見つけることができます。 ターミナルアプリケーションアイコンをクリックして開きます。 または、キーボードのCTRLALT、およびTキーを同時に押すと、ターミナルアプリケーションが自動的に開きます。

注: Ubuntu 22.04のリポジトリには、PHP8.1が付属しています。 これは、指定されたバージョンなしでPHPをインストールしようとすると、8.1を使用することを意味します。

Ubuntu 22.04サーバーで異なるバージョンのPHPを使用する場合は、phpenvプロジェクトを使用して異なるバージョンをインストールおよび管理できます。


次のコマンドを実行して利用可能なパッケージのリストを更新してから、PHP8.1をインストールします。

sudo apt update
sudo apt install --no-install-recommends php8.1

--no-install-recommendsフラグは、ApacheWebサーバーなどの他のパッケージがインストールされていないことを確認します。

次のコマンドを使用して、PHPのバージョン情報を確認します。

php -v

次のような出力が表示されます。

OutputPHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

PHP自体に加えて、いくつかの追加のPHPモジュールをインストールすることをお勧めします。 このコマンドを使用して、追加のモジュールをインストールし、PACKAGE_NAMEをインストールするパッケージに置き換えることができます。

sudo apt-get install php8.1-PACKAGE_NAME

一度に複数のパッケージをインストールすることもできます。 インストールする可能性が最も高い最も一般的なモジュールのいくつかの提案を次に示します。

sudo apt-get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath

このコマンドは、次のモジュールをインストールします。

  • php8.1-cli-コマンドインタープリター。シェルからのPHPスクリプトのテストや、一般的なシェルスクリプトタスクの実行に役立ちます。
  • php8.1-common-PHPのドキュメント、例、および一般的なモジュール
  • php8.1-mysql-MySQLデータベースを操作するため
  • php8.1-zip-圧縮ファイルを操作するため
  • php8.1-gd-画像の操作用
  • php8.1-mbstring-非ASCII文字列の管理に使用されます
  • php8.1-curl-PHPでHTTPリクエストを作成できます
  • php8.1-xml-XMLデータを操作するため
  • php8.1-bcmath-精密フロートを操作するときに使用されます

Apacheに関連するPHP構成は、/etc/php/8.1/apache2/php.iniに格納されます。 次のコマンドを使用して、ロードされているすべてのPHPモジュールを一覧表示できます。

php -m

PHPをインストールし、実行しているバージョンを確認しました。 また、必要なPHPモジュールをインストールし、ロードしたモジュールを一覧表示することができました。

今すぐPHPの使用を開始できますが、さまざまなライブラリを使用してPHPアプリケーションをすばやく構築することをお勧めします。 PHP環境をテストする前に、まずプロジェクトの依存関係マネージャーを設定します。

ステップ2—依存関係管理用のComposerのセットアップ(オプション)

ライブラリは、すべてを自分で作成しなくても、一般的な問題を解決するのに役立つコードのコレクションです。 使用可能なライブラリーは多数あるため、依存関係マネージャーを使用すると、PHPの作成に慣れてきたときに、複数のライブラリーを管理するのに役立ちます。

Composer は、PHPでの依存関係管理のためのツールです。 プロジェクトが依存するライブラリを宣言し、これらのパッケージのインストールと更新を管理できます。

同様ですが、Composerはyumまたはaptと同じ意味でのパッケージマネージャーではありません。 「パッケージ」またはライブラリを扱いますが、プロジェクトごとに管理し、ディレクトリにインストールします(例: プロジェクト内のvendor)。 デフォルトでは、グローバルには何もインストールされません。 したがって、これは依存関係マネージャーです。 ただし、globalコマンドを使用して便利なグローバルプロジェクトをサポートします。

このアイデアは新しいものではなく、ComposerはNodeのnpmとRubyのbundlerに強く影響を受けています。

仮定する:

  • 複数のライブラリに依存するプロジェクトがあります。
  • それらのライブラリのいくつかは他のライブラリに依存しています。

作曲:

  • 依存するライブラリを宣言できます。
  • どのバージョンのパッケージをインストールできるか、またインストールする必要があるかを調べ、プロジェクトにダウンロードしてインストールします。
  • 1つのコマンドですべての依存関係を更新できます。
  • 依存関係の宣言の詳細については、「基本的な使用法」の章を参照してください。

Composerをインストールするには、最初に次のcurlコマンドを使用してインストーラーをダウンロードします。

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

次に、ダウンロードしたインストーラーが、 Composer Public Keys /Signaturesページにある最新のインストーラーのSHA-384ハッシュと一致することを確認します。 検証手順を容易にするために、次のコマンドを使用して、Composerページからプログラムで最新のハッシュを取得し、それをシェル変数に格納できます。

HASH=`curl -sS https://composer.github.io/installer.sig`

得られた値を確認するには、次のコマンドを実行します。

echo $HASH
Output55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae

次に、Composer ダウンロードページで提供されている次のPHPコードを実行して、インストールスクリプトが安全に実行できることを確認します。

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

次の出力が表示されます。

出力

Installer verified

出力にInstaller corruptと表示されている場合は、インストールスクリプトを再度ダウンロードして、正しいハッシュを使用していることを再確認する必要があります。 次に、検証プロセスを繰り返します。 確認済みのインストーラーがあれば、続行できます。

composerをグローバルにインストールするには、次のコマンドを使用して、Composerを/usr/local/binの下にcomposerという名前のシステム全体のコマンドとしてダウンロードしてインストールします。

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

次のような出力が表示されます。

OutputAll settings correct for using Composer
Downloading...

Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

インストールをテストするには、次を実行します。

composer

次のような出力が表示されます。

Output   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.5 2022-04-13 16:43:00

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display help for the given command. When no command is given display help for the list command
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi|--no-ansi           Force (or disable --no-ansi) ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
      --no-scripts               Skips the execution of all scripts defined in composer.json file.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .

これにより、Composerがシステムに正常にインストールされ、システム全体で使用可能であることが確認されます。

注:サーバーでホストするプロジェクトごとに個別のComposer実行可能ファイルを使用する場合は、プロジェクトごとにローカルにインストールできます。 この方法は、システムユーザーがシステム全体にソフトウェアをインストールする権限を持っていない場合にも役立ちます。

これを行うには、引数なしでコマンドphp /tmp/composer-setup.phpを使用します。 このコマンドは、現在のディレクトリにcomposer.pharファイルを生成します。このファイルは、php composer.pharを使用して実行できます。


ステップ3—PHPプロジェクトでのComposerの使用

最後のステップとして、オプションでcomposer initを使用してプロジェクトを初期化できます。 これにより、プロジェクトの依存関係を管理するcomposer.jsonファイルが作成されます。 プロジェクトを初期化すると、作成者やライセンスなどのプロジェクトの詳細を定義し、Composerの自動ロード機能を使用することもできます。 ここで依存関係を定義することも、後で追加することもできます。

まず、ディレクトリを作成し、それに変更してプロジェクトファイルを含めます。

cd ~
mkdir example-project
cd example-project

次に、プロジェクトを初期化します。

composer init

このコマンドを実行すると、セットアップウィザードが起動します。 ウィザードに入力した詳細は後で更新できるため、デフォルトのままにして、ENTERを押すだけです。 依存関係をインストールする準備ができていない場合は、noを選択できます。 各プロンプトで詳細を入力します。

Output
                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [sammy/example-project]:  sammy/project1
Description []:
Author [n to skip]: Sammy <[email protected]>
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: 

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

Add PSR-4 autoload mapping? Maps namespace "Sammy\Project1" to the entered relative path. [src/, n to skip]: n

{
    "name": "sammy/project1",
    "type": "project",
    "authors": [
        {
            "name": "Sammy",
            "email": "[email protected]"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? yes

生成を確認する前に、ウィザードが作成するcomposer.jsonファイルのサンプルが表示されます。 すべて良さそうな場合は、デフォルトのyesを確認できます。 最初からやり直す必要がある場合は、noを選択してください。

初めて依存関係を定義するときに、Composerはvendorフォルダーを作成します。 すべての依存関係は、このvendorフォルダーにインストールされます。 Composerは、composer.lockファイルも作成します。 このファイルは、プロジェクトで使用される各依存関係とサブ依存関係の正確なバージョンを指定します。 これにより、プログラムが実行されているすべてのマシンが、各パッケージのまったく同じバージョンを使用することが保証されます。

注: vendorフォルダーは、バージョン管理システム(VCS)にコミットしないでください。 vendorフォルダーには、他のベンダーからインストールしたパッケージのみが含まれます。 これらの個々のベンダーは、独自のバージョン管理システムで独自のコードを維持します。 作成したコードのみを追跡する必要があります。 vendorフォルダーをコミットする代わりに、composer.jsonおよびcomposer.lockファイルをコミットするだけで済みます。 特定のファイルを無視する方法について詳しくは、 Gitの使用方法:リファレンスガイドをご覧ください。


PHPがインストールされ、Composerを使用してプロジェクトの依存関係を管理する方法ができたので、環境をテストする準備が整いました。

ステップ3—PHP環境のテスト

システムがPHP用に正しく構成されていることをテストするために、基本的なPHPスクリプトを作成して実行できます。 このスクリプトをhello.phpと呼びます。

nano hello.php

これにより、空のファイルが開きます。 有効なPHPコードである次のテキストをファイル内に配置します。

hello.php

<?php
echo 'Hello World!';
?>

テキストを追加したら、ファイルを保存して閉じます。 これを行うには、CTRLキーを押しながらxキーを押します。 次に、yを選択し、ENTERを押します。

これで、PHPがスクリプトを正しく処理することを確認するためにテストできます。 phpと入力して、ファイルを処理するようにPHPに指示し、その後にファイルの名前を続けます。

php hello.php

PHPが適切に処理されている場合は、引用符で囲まれた文字のみが表示されます。

OutputHello World!

PHPはスクリプトを正常に処理しました。つまり、PHP環境が正常にインストールされ、プログラミングの旅を続ける準備ができています。

結論

この時点で、UbuntuシステムにPHP 8.1プログラミング環境がセットアップされ、コーディングプロジェクトを開始できます。

コーディングを開始する前に、統合開発環境(IDE)をセットアップすることをお勧めします。 選択できるIDEは多数ありますが、 VS Code は、グラフィカルインターフェイス、構文の強調表示、デバッグなどの多くの強力な機能を提供するため、人気のある選択肢です。

ローカルマシンでソフトウェア開発の準備ができたら、 PHPで文字列を操作する方法に従って、PHPでのコーディングについてさらに学習することができます。