PHPの開発環境について

採用はこちら

PHPの開発環境とは、PHPでWebサイトやWebアプリケーションを作成し、プログラムを実行・確認・修正するために必要なソフトウェアや設定をまとめた環境のことです。

PHPはサーバーサイドで動作するプログラミング言語であるため、HTMLファイルのようにブラウザでファイルを直接開くだけでは、基本的にPHPコードを実行できません。

PHPを動かすためには、PHPの実行環境を用意する必要があります。

WebサイトとしてPHPを動かす場合には、ApacheやNginxなどのWebサーバーと組み合わせて使用するのが一般的です。

また、Webアプリケーションの内容によっては、MySQLやMariaDBなどのデータベースも使用します。

PHPの開発環境を正しく理解すると、PHPだけでなく、WordPressやLaravelなどの仕組みも理解しやすくなります。

目次

PHPが動作する基本的な仕組み

PHPの開発環境を理解するためには、最初にPHPがどこで実行されるのかを知っておくことが重要です。

PHPはブラウザではなくサーバー側で実行される

PHPは、基本的にサーバー側で実行されます。

たとえば、次のようなPHPファイルがあるとします。

<?php
echo "Hello, PHP!";
?>

このPHPファイルをPHPが実行すると、処理結果として次の文字列が生成されます。

Hello, PHP!

WebサイトとしてPHPを使用する場合、大まかな処理の流れは次のようになります。

ブラウザ
   ↓
Webサーバー
   ↓
PHP実行環境
   ↓
PHPコードを実行
   ↓
HTMLなどを生成
   ↓
Webサーバー
   ↓
ブラウザ

ブラウザがPHPコードを直接実行しているわけではありません。

サーバー側でPHPが処理され、その結果として生成されたHTMLなどがブラウザに送信されます。

PHPはコマンドラインからも実行できる

PHPを動かすために、必ずApacheやNginxなどのWebサーバーが必要になるわけではありません。

PHPをインストールしていれば、コマンドラインから直接PHPファイルを実行することもできます。

たとえば、sample.phpというファイルを作成した場合は、次のように実行できます。

php sample.php

PHPの文法を学習するだけであれば、この方法でも十分です。

WebブラウザからPHPを動かしたい場合には、Webサーバーを利用します。

PHPの開発環境を構成する主な要素

PHPの開発環境は、PHP本体だけで構成されているわけではありません。

目的に応じて、複数のソフトウェアを組み合わせて使用します。

PHP

PHPは、PHPコードを解釈して実行するための中心的な実行環境です。

PHPファイルに書かれた処理を実行し、文字列やHTML、JSONなどの結果を生成します。

たとえば、次のようなコードがあります。

<?php

$name = "Taro";

echo "こんにちは、" . $name . "さん";

?>

実行すると、次のような結果になります。

こんにちは、Taroさん

PHPを学習する場合は、まずPHPそのものを実行できる状態にする必要があります。

Webサーバー

WebサイトとしてPHPを動かす場合には、Webサーバーが使用されます。

代表的なWebサーバーには、次のようなものがあります。

  • Apache
  • Nginx

Webサーバーは、ブラウザから送られてきたリクエストを受け取り、必要な処理を行ってレスポンスを返します。

PHPファイルへのアクセスであれば、設定された方式に従ってPHPを実行し、その処理結果をブラウザへ返します。

ApacheとPHPを組み合わせる方法だけでなく、NginxとPHP-FPMを組み合わせる方法などもあります。

そのため、「WebサーバーがPHPと連携してWebページを生成する」と理解しておくと分かりやすいでしょう。

データベース

PHPを使ったWebサイトやWebアプリケーションでは、データベースを使用することが多くあります。

代表的なデータベース管理システムには、次のようなものがあります。

  • MySQL
  • MariaDB
  • PostgreSQL
  • SQLite

PHPでMySQLやMariaDBがよく使われていますが、PHPが利用できるデータベースはこれらだけではありません。

データベースには、たとえば次のような情報を保存できます。

  • ユーザー情報
  • 商品情報
  • 記事
  • コメント
  • 注文情報
  • サイト設定
  • ログイン情報

PHPがデータベースから情報を取得し、その内容をHTMLとして生成することで、動的なWebページを作成できます。

データベース管理ツール

データベースを管理するために、専用の管理ツールを利用することもあります。

代表的なものとして、phpMyAdminがあります。

phpMyAdminを使用すると、ブラウザ上からMySQLやMariaDBを操作できます。

たとえば、次のような作業が可能です。

  • データベースの作成
  • テーブルの作成
  • データの追加
  • データの編集
  • データの削除
  • SQLの実行
  • データのインポート
  • データのエクスポート

PHP初心者やWordPressの学習では、phpMyAdminを利用する場面も少なくありません。

コードエディターやIDE

PHPコードを書くためには、コードエディターやIDEも使用します。

代表的なものとしては、Visual Studio Codeがあります。

ほかにも、PhpStormやVim、Neovimなどさまざまな選択肢があります。

コードエディターやIDEでは、次のような機能を利用できます。

  • シンタックスハイライト
  • コード補完
  • エラー検出
  • 検索・置換
  • ターミナル
  • Git連携
  • デバッグ支援

コードエディターはPHPの実行環境そのものではありませんが、開発作業を効率化する重要なツールです。

ローカル環境と本番環境の違い

PHP開発では、主にローカル環境と本番環境を使い分けます。

実務では、ステージング環境を用意する場合もあります。

ローカル環境

ローカル環境とは、自分のパソコン上に作成する開発環境です。

たとえばWindowsパソコンにPHPやWebサーバーをインストールし、自分のパソコン上でPHPを動かします。

ローカル環境では、インターネット上に公開せずに開発や動作確認ができます。

主に次のような用途で使用されます。

  • PHPの学習
  • Webサイトの開発
  • プログラムの修正
  • WordPressテーマの開発
  • WordPressプラグインの開発
  • Laravelなどの開発
  • 動作確認
  • デバッグ

Webサーバーを動かしている場合には、ブラウザから次のようなURLへアクセスすることがあります。

http://localhost/

localhostは、基本的に自分自身のコンピューターを表します。

ステージング環境

ステージング環境とは、本番公開する前に最終確認を行うための環境です。

本番環境に近い構成を用意し、実際の公開前に問題がないか確認します。

たとえば、次のような確認に使用されます。

  • 表示崩れ
  • PHPエラー
  • データベース接続
  • フォーム送信
  • 決済処理
  • 外部APIとの連携
  • PHPバージョンによる違い

ローカル環境では問題がなくても、本番環境に近い環境では問題が発生する場合があります。

そのため、規模の大きなWebサイトや業務システムでは、ステージング環境が重要になります。

本番環境

本番環境とは、実際のユーザーがアクセスするWebサイトやWebアプリケーションの実行環境です。

レンタルサーバーやクラウドサーバーなどが利用されます。

たとえば、本番サイトでは次のようなURLへアクセスします。

https://example.com/

本番環境では、単にPHPが動作すればよいわけではありません。

次のような要素も重要になります。

  • セキュリティ
  • パフォーマンス
  • バックアップ
  • 障害対策
  • ログ管理
  • アクセス制御
  • PHPバージョン管理

基本的には、ローカル環境で開発・テストを行い、必要に応じてステージング環境で確認してから本番環境へ反映します。

PHPの開発環境を作る主な方法

PHPの開発環境には複数の構築方法があります。

目的やスキルレベルに応じて選ぶことが重要です。

PHPを直接インストールする

もっともシンプルな方法の一つが、PHPをパソコンへ直接インストールする方法です。

PHPをインストールすると、次のようにコマンドラインからPHPを実行できます。

php sample.php

PHPの文法や基本的なプログラムを学ぶだけであれば、この方法でも十分です。

PHPの組み込みWebサーバーを利用する

PHPには、開発・テスト向けの組み込みWebサーバーがあります。

PHPファイルが保存されているディレクトリへ移動して、次のように実行できます。

php -S localhost:8000

その後、ブラウザから次のURLへアクセスします。

http://localhost:8000

Apacheなどを別途用意しなくても、簡単にブラウザ上でPHPの動作を確認できます。

ただし、PHPの組み込みWebサーバーは開発やテスト向けです。

本番公開用のWebサーバーとして使用することを目的としたものではありません。

XAMPPを利用したPHP開発環境

PHP初心者がローカル開発環境を構築するときによく利用される選択肢の一つが、XAMPPです。

XAMPPとは

XAMPPは、Web開発に必要となる複数のソフトウェアをまとめて導入できるパッケージです。

主に次のようなソフトウェアが含まれます。

  • Apache
  • MariaDB
  • PHP
  • Perl

XAMPP環境では、phpMyAdminなども利用できます。

PHP、Webサーバー、データベースなどを個別にインストールするよりも、比較的簡単にローカル開発環境を構築できます。

XAMPPとPHPは同じものではない

初心者が混同しやすいポイントですが、PHPとXAMPPは別のものです。

PHPは、PHPコードを実行するためのプログラミング言語および実行環境です。

一方、XAMPPはPHPを含む複数のソフトウェアをまとめた開発環境パッケージです。

関係を簡単に整理すると、次のようになります。

PHP
=PHPコードを実行するための言語・実行環境

XAMPP
=ApacheやMariaDB、PHPなどをまとめたパッケージ

「PHPを使うための方法の一つとしてXAMPPを利用する」と考えると分かりやすいでしょう。

XAMPPでPHPを動かす基本的な流れ

Windows版XAMPPでは、一般的にhtdocsディレクトリ内へPHPファイルを配置します。

たとえば、次のような場所にファイルを作成します。

C:\xampp\htdocs\sample\index.php

index.phpを次のようにします。

<?php

echo "PHPが動きました";

?>

XAMPPでApacheを起動し、ブラウザから次のURLへアクセスします。

http://localhost/sample/

PHPが正常に動作していれば、ブラウザに次のように表示されます。

PHPが動きました

Apacheやデータベースを含めたWeb開発環境を手軽に試したい場合には、XAMPPは便利な選択肢です。

Dockerを利用したPHP開発環境

実務的なPHP開発では、Dockerを利用して開発環境を構築することもあります。

Dockerとは

Dockerは、コンテナと呼ばれる仕組みを利用してアプリケーションの実行環境を構築・管理するためのプラットフォームです。

PHP専用のツールではありません。

PHP開発では、たとえば次のような構成を作れます。

PHPコンテナ
+
Webサーバーコンテナ
+
MySQLコンテナ

必要に応じてRedisなどを追加することもあります。

Dockerを利用するメリット

Dockerを利用するメリットの一つは、開発環境の構成を共有しやすいことです。

たとえば、開発者ごとにPHPやMySQLのバージョンが異なると、同じプログラムでも挙動が変わる可能性があります。

Dockerを利用すると、使用するPHPやデータベースなどの構成を定義しやすくなります。

そのため、チーム開発や実務では非常に役立ちます。

ただし、PHPそのものに加えてDockerの知識も必要になるため、PHPを初めて学ぶ場合には難しく感じることもあります。

WordPressのローカル開発環境

WordPressもPHPで動作しているため、WordPressをローカル環境で動かすにはPHPを実行できる環境が必要です。

WordPressに必要となる主な要素

WordPressのローカル環境では、主に次のような要素を使用します。

Webサーバー
+
PHP
+
MySQLまたはMariaDB
+
WordPress

XAMPPを利用してWordPress環境を構築することもできます。

WordPress専用のローカル開発ツールを利用する方法もあります。

WordPressだけを効率的に学習したい場合には、専用ツールが便利な場合があります。

一方、PHPやApache、データベースの関係まで理解したい場合には、XAMPPなどを使って手動で環境を構築することも学習になります。

PHP開発で重要なComposer

実務的なPHP開発では、Composerも重要なツールです。

Composerとは

Composerは、PHPプロジェクトの依存関係を管理するためのツールです。

PHPで使用する外部ライブラリやパッケージを効率的に管理できます。

JavaScript開発におけるnpmに近い役割を持つと考えると、初心者にも理解しやすいでしょう。

ただし、Composerとnpmの仕組みが完全に同じという意味ではありません。

composer installとは

Composerを利用するプロジェクトでは、次のようなコマンドを使用します。

composer install

プロジェクトに必要な依存パッケージをインストールできます。

LaravelなどのPHPフレームワークを使用する場合には、Composerを利用する機会が非常に多くなります。

PHP開発で重要なGit

PHP開発では、Gitも頻繁に使用されます。

Gitとは

Gitは、ソースコードの変更履歴を管理するためのバージョン管理システムです。

PHP専用ではなく、Web開発全般で利用されています。

Gitを利用すると、次のようなことができます。

  • ソースコードの変更履歴を保存する
  • 過去の状態を確認する
  • 過去の状態へ戻す
  • ブランチを作成する
  • 複数人で開発する
  • GitHubなどと連携する

PHPを実務で使用するのであれば、Gitの基本操作も覚えておくとよいでしょう。

PHPの設定ファイルphp.ini

PHPの動作を設定するうえで重要なのが、php.iniです。

php.iniとは

php.iniは、PHPのさまざまな動作を設定するための設定ファイルです。

たとえば、次のような設定があります。

memory_limit = 128M

これは、PHPで利用できるメモリ容量に関係する設定です。

また、次のような設定もあります。

upload_max_filesize = 20M

アップロード可能なファイルサイズに関係します。

WordPressを使用している場合にも、アップロード容量や実行時間などを調整するためにPHP設定を変更することがあります。

php.iniの場所は環境によって異なる

注意したいのは、php.iniがすべての環境で同じ場所に存在するわけではないことです。

OSやPHPのインストール方法、PHPの実行方式などによって場所が異なる場合があります。

CLI環境では、次のようなコマンドで設定ファイルを確認できます。

php --ini

設定を変更するときには、実際にどのphp.iniが読み込まれているのかを確認することが重要です。

PHP拡張機能とは

PHPでは、必要に応じてさまざまな拡張機能を利用できます。

PHP拡張機能の役割

PHP拡張機能を利用すると、PHP本体だけでは利用できないさまざまな機能を追加できます。

たとえば、次のような用途があります。

  • データベース接続
  • 画像処理
  • 文字列処理
  • 暗号化
  • XML処理
  • ZIPファイル処理

利用するPHPフレームワークやCMSによって、必要な拡張機能が異なる場合があります。

そのため、Webアプリケーションを本番環境へ移行するときには、PHPのバージョンだけでなく、必要な拡張機能が利用できるかも確認する必要があります。

PHPのバージョンをそろえることも重要

PHPには複数のバージョンがあります。

開発環境と本番環境でPHPのバージョンが大きく異なると、思わぬ問題が発生する可能性があります。

PHPバージョンが違うと問題が起こることがある

たとえば、開発環境では新しいPHPの機能を使用しているのに、本番環境のPHPが古い場合、そのプログラムが動作しない可能性があります。

反対に、古いPHPで使用できた機能が、新しいPHPでは非推奨または削除されている場合もあります。

そのため、可能な範囲で開発環境と本番環境のPHPバージョンをそろえることが重要です。

開発環境と本番環境はできるだけ近づける

PHP開発では、PHPのバージョンだけでなく、環境全体の差を小さくすることも重要です。

環境差によって問題が発生する場合がある

開発環境と本番環境では、次のような違いが発生する可能性があります。

  • OS
  • PHPのバージョン
  • PHP拡張機能
  • Webサーバー
  • データベース
  • PHP設定
  • タイムゾーン
  • ファイル権限
  • 環境変数
  • 文字コード

ローカル環境では正常に動いていたのに、本番環境では動作しないという問題は珍しくありません。

DockerなどがPHP開発で利用される理由の一つも、開発環境の再現性を高めやすいためです。

PHP開発ではエラー表示とデバッグ設定も重要

PHPを学習・開発していると、構文ミスやプログラム上の問題によってエラーが発生します。

開発環境ではエラーを確認できる状態にする

開発環境では、PHPのエラー内容を確認しやすい状態にしておくことが重要です。

エラー内容を確認できれば、どこに問題があるのかを特定しやすくなります。

初心者の場合は特に、エラーメッセージを読む習慣を身につけることがPHP上達につながります。

本番環境では詳細エラーを画面に表示しない

本番環境では、PHPの詳細なエラー情報をブラウザへそのまま表示しないことが重要です。

エラーメッセージには、ファイルパスやプログラム内部の情報などが含まれる場合があります。

そのため、セキュリティ上のリスクにつながる可能性があります。

基本的には、次のように使い分けます。

開発環境
↓
詳細なエラーを確認する

本番環境
↓
詳細エラーを画面には表示しない
↓
必要な情報はログに記録する

開発環境と本番環境では、エラー処理の方針を分けることが重要です。

PHP初心者におすすめの開発環境

PHPの開発環境にはさまざまな選択肢があります。

最適な環境は、何を学習したいのかによって変わります。

PHPの文法を学びたい場合

PHPの変数、条件分岐、繰り返し、関数などの基本文法を学びたい場合には、シンプルな構成で十分です。

たとえば、次のような環境が考えられます。

Visual Studio Codeなど
+
PHP

PHPファイルを作成し、次のように実行します。

php sample.php

まずPHPそのものを理解したい場合には、分かりやすい方法です。

ブラウザ上でPHPを動かしたい場合

簡単なWebページとしてPHPを動かしたいのであれば、PHPの組み込みWebサーバーを利用できます。

Visual Studio Codeなど
+
PHP
+
PHP組み込みWebサーバー

次のコマンドで起動できます。

php -S localhost:8000

Apacheなどの設定を最初から覚える必要がないため、PHPそのものの学習に集中しやすいでしょう。

WindowsでWeb開発環境を手軽に作りたい場合

Apacheやデータベースを含めたWeb開発を学びたい場合には、XAMPPが選択肢になります。

Visual Studio Codeなど
+
XAMPP

XAMPPを利用すると、PHP、Apache、MariaDBなどをまとめて準備できます。

WordPressの学習にも利用できます。

WordPressを学びたい場合

WordPressを学習したい場合には、次のような環境が必要になります。

PHP
+
Webサーバー
+
MySQLまたはMariaDB
+
WordPress

XAMPPを利用する方法や、WordPress向けのローカル開発ツールを利用する方法があります。

実務的なPHP開発を学びたい場合

Laravelなどを利用した実務レベルのPHP開発を目指す場合には、次のようなツールも理解しておくとよいでしょう。

PHP
+
Composer
+
Git
+
Docker
+
データベース
+
コードエディターまたはIDE

最初からすべてを覚える必要はありません。

PHPの基本を理解したうえで、Composer、Git、データベース、Dockerと段階的に学習すると理解しやすくなります。

PHP開発環境で使用するツールの違い

PHP初心者の場合、PHP、XAMPP、Apache、MySQLなどの違いが分からなくなることがあります。

それぞれの役割を整理すると、次のようになります。

名称主な役割
PHPPHPコードを実行する
ApacheWebサーバーとしてリクエストを処理する
NginxWebサーバーやリバースプロキシなどとして利用する
MySQLデータを保存・管理するデータベース管理システム
MariaDBMySQLと高い互換性を持つデータベース管理システム
phpMyAdminMySQLやMariaDBをブラウザから管理する
XAMPPApache、MariaDB、PHPなどをまとめた開発環境パッケージ
ComposerPHPプロジェクトの依存関係を管理する
Gitソースコードの変更履歴を管理する
Dockerコンテナを利用して開発・実行環境を構築する
Visual Studio CodePHPなどのコードを書くためのエディター

それぞれの役割を理解しておけば、PHP開発環境の全体像がかなり分かりやすくなります。

PHP開発環境の基本的な処理の流れ

PHPを使ったWebサイトでは、ブラウザ、Webサーバー、PHP、必要に応じてデータベースが連携します。

データベースを使う場合の処理

たとえば、ユーザーが次のURLへアクセスしたとします。

http://localhost/index.php

概念的な処理の流れは次のようになります。

1. ブラウザからWebサーバーへリクエスト
        ↓
2. WebサーバーがPHPの処理を開始
        ↓
3. PHPコードを実行
        ↓
4. 必要に応じてデータベースへアクセス
        ↓
5. PHPがHTMLなどを生成
        ↓
6. Webサーバーがブラウザへ結果を返す
        ↓
7. ブラウザがHTMLを表示

データベースは必須ではありません。

データベースを必要としないPHPプログラムも作成できます。

PHPコードはブラウザへそのまま送られない

たとえば、PHPファイルに次のように書かれているとします。

<?php

$title = "PHP入門";

?>

<h1><?php echo $title; ?></h1>

PHPが正常に実行されれば、ブラウザへ送られる内容は概念的には次のようになります。

<h1>PHP入門</h1>

PHPコードそのものではなく、PHPが処理した結果がブラウザへ送られるという点が重要です。

PHP開発環境を学ぶおすすめの順番

PHP初心者の場合、最初からDockerや複雑なサーバー構成まで覚えようとすると、難しく感じやすくなります。

段階的に学ぶと理解しやすくなります。

1.PHPの基本文法を学ぶ

最初にPHPそのものを学習します。

主に次の内容を理解します。

  • 変数
  • 配列
  • 演算子
  • 条件分岐
  • 繰り返し処理
  • 関数
  • クラス
  • ファイル操作

まずはコマンドラインやPHP組み込みWebサーバーを利用して学習するとよいでしょう。

2.WebサーバーとPHPの関係を理解する

次に、ブラウザ、Webサーバー、PHPの関係を理解します。

「ブラウザがPHPを直接動かしているわけではない」という点を理解することが重要です。

3.ローカル開発環境を構築する

XAMPPなどを使って、PHP、Apache、データベースを含むローカル環境を構築します。

実際に動かしてみることで、それぞれの役割を理解しやすくなります。

4.データベースを学ぶ

MySQLやMariaDBなどを学習し、PHPからデータを保存・取得する方法を理解します。

Webアプリケーションを作成するうえで重要な知識です。

5.Composerを学ぶ

外部ライブラリやPHPフレームワークを使用するために、Composerの基本操作を学習します。

6.Gitを学ぶ

ソースコードの変更履歴を管理できるようにします。

GitHubなども合わせて利用すると、実務的な開発方法を理解しやすくなります。

7.Dockerを学ぶ

PHPやデータベースの基礎を理解したあとでDockerを学習すると、Dockerを使う理由も理解しやすくなります。

チーム開発や本格的なWeb開発を目指す場合には役立つ知識です。

まとめ

PHPの開発環境とは、PHPプログラムを作成・実行・テストするために必要なソフトウェアや設定を組み合わせた環境です。

中心となるのはPHPですが、Web開発では目的に応じてWebサーバーやデータベース、コードエディターなども使用します。

代表的な構成を整理すると、次のようになります。

ブラウザ
   ↓
Webサーバー
   ↓
PHP実行環境
   ↕
必要に応じてデータベース

開発作業では、これにVisual Studio Codeなどのコードエディターや、Composer、Git、Dockerなどが加わります。

PHPの基本文法を学ぶだけであれば、PHP単体やPHP組み込みWebサーバーから始めても問題ありません。

Apacheやデータベースを含めたWeb開発を学びたい場合には、XAMPPも便利な選択肢です。

さらに実務的な開発を目指す場合には、Composer、Git、Dockerなどへ学習範囲を広げるとよいでしょう。

PHPの開発環境は、最初からすべてを覚える必要はありません。

「PHPそのもの」「Webサーバー」「データベース」「開発支援ツール」の役割を一つずつ理解していくことが、PHP開発を効率よく習得するためのポイントです。

以上、PHPの開発環境についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次