ApacheでPHP環境を構築する完全ガイド – 必要条件から設定方法まで

PHPをApacheで動作させる環境構築は、Webアプリケーション開発における基本的なスキルです。LAMP(Linux, Apache, MySQL, PHP)環境は、多くのWebサーバーで利用されており、柔軟性と拡張性に優れています。

本記事では、Apacheを利用してPHP実行環境を構築する方法を詳しく解説します。必要なソフトウェアやインストール方法、設定ファイルの編集から、PHPが正しく動作するかを確認する方法まで、実際の操作を交えて説明します。

LinuxとWindowsの両方の環境に対応したインストール手順を紹介し、開発環境のセットアップがスムーズに進むようサポートします。さらに、セキュリティ強化やパフォーマンスチューニングの方法も解説することで、安全で高速なWebサーバーを構築できるようになります。

この記事を参考にしながら、ApacheとPHPの環境を構築し、スムーズなWebアプリケーション開発を目指しましょう。

目次

PHPとApacheの概要


Apacheは世界中で広く使われているオープンソースのWebサーバーソフトウェアであり、安定性と拡張性に優れています。多くのWebサイトで利用されており、静的コンテンツの配信はもちろん、動的なWebページの処理にも対応しています。

一方、PHPはサーバーサイドスクリプト言語として広く普及しており、動的なWebページを作成するために使われます。WordPressやDrupalなど、多くのCMS(コンテンツ管理システム)でもPHPが採用されています。

ApacheとPHPの組み合わせにより、リクエストに応じて動的なコンテンツを生成し、Webブラウザに返すことが可能になります。これは、データベースと連携してユーザーごとに異なる情報を表示するWebアプリケーションの開発に不可欠です。

ApacheとPHPの連携の仕組み


Apacheはリクエストを受け取ると、静的ファイル(HTMLやCSS)であればそのままクライアントに返しますが、PHPファイルがリクエストされた場合はPHPモジュールに処理を渡します。PHPはスクリプトを実行し、その結果をHTML形式でApacheに返し、クライアントに配信します。

この連携を実現するためには、ApacheがPHPを認識し、PHPファイルを適切に処理できるよう設定を行う必要があります。次のセクションでは、必要なソフトウェアとシステム要件について詳しく説明します。

必要なソフトウェアとシステム要件

PHP実行環境をApacheで構築するためには、いくつかのソフトウェアとシステム要件を満たす必要があります。以下に、主要な構成要素と最低限必要なシステム構成について説明します。

必要なソフトウェア

  1. Apache Webサーバー
  • 最新の安定版をインストールすることを推奨します。一般的には2.4系が使われています。
  • パッケージマネージャを使うと簡単にインストールできます(例: aptyumなど)。
  1. PHP(サーバーサイドスクリプト言語)
  • PHPのバージョンはWebアプリケーションの要件に応じて選択します。推奨はPHP 8.xです。
  • 必要に応じて追加のPHP拡張モジュール(例: mysqli, gd, mbstringなど)もインストールします。
  1. データベースサーバー(オプション)
  • 動的なWebアプリケーションではデータベースが必要になる場合があります。MySQLやMariaDBなどのデータベースサーバーを使用します。

システム要件

  • OS:
  • Linux(Ubuntu, CentOS, Debianなど)またはWindows
  • CPU:
  • 1GHz以上のプロセッサ(複数コア推奨)
  • RAM:
  • 最低512MB以上(推奨は1GB以上)
  • ディスク容量:
  • 最低2GBの空き容量

ネットワーク要件

  • インターネット接続(インストール時に必要)
  • ローカル環境での開発の場合はループバックアドレス(127.0.0.1)が利用可能であること

次のセクションでは、具体的なApacheとPHPのインストール手順について解説します。

ApacheとPHPのインストール手順(Linux編)

Linux環境でApacheとPHPをインストールする手順を解説します。ここでは、Ubuntuを例に進めますが、CentOSやDebianでもほぼ同様の手順で実行可能です。

Apacheのインストール

  1. パッケージリストを更新
   sudo apt update
  1. Apacheのインストール
   sudo apt install apache2


インストール後、自動的にApacheが起動します。以下のコマンドでステータスを確認します。

   sudo systemctl status apache2


出力例:

   ● apache2.service - The Apache HTTP Server
      Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
      Active: active (running)
  1. ファイアウォール設定(必要に応じて)
   sudo ufw allow 'Apache Full'
   sudo ufw reload

PHPのインストール

  1. PHPと必要なモジュールのインストール
   sudo apt install php libapache2-mod-php php-mysql
  1. PHPのバージョン確認
   php -v


出力例:

   PHP 8.1.2 (cli) (built: Mar 14 2023 09:47:52) ( NTS )
   Copyright (c) The PHP Group

動作確認

  1. ApacheのドキュメントルートにPHPファイルを作成
   sudo nano /var/www/html/info.php


以下のコードを記述し、保存します。

   <?php
   phpinfo();
   ?>
  1. ブラウザで確認
    ブラウザを開き、以下のURLにアクセスします。
   http://<サーバーのIPアドレス>/info.php


PHPの情報画面が表示されればインストール成功です。

次はWindows環境でのインストール手順を解説します。

ApacheとPHPのインストール手順(Windows編)

Windows環境でApacheとPHPをインストールし、動作させる手順を解説します。XAMPPのようなオールインワンパッケージも便利ですが、ここでは手動でApacheとPHPをセットアップする方法を紹介します。

Apacheのインストール

  1. Apacheのダウンロード
    Apache Loungeから最新のApacheをダウンロードします。
  2. Apacheの解凍と配置
    ダウンロードしたZIPファイルを解凍し、C:\Apache24などの任意のディレクトリに配置します。
  3. 環境変数の設定
  • システムのプロパティ > 環境変数を開きます。
  • PathC:\Apache24\binを追加します。
  1. Apacheのインストールと起動
    コマンドプロンプトを管理者権限で開き、以下を実行します。
   cd C:\Apache24\bin
   httpd.exe -k install
   httpd.exe -k start


動作確認:ブラウザでhttp://localhostにアクセスし、「It works!」が表示されれば成功です。

PHPのインストール

  1. PHPのダウンロード
    PHP公式サイトからスレッドセーフ版のPHPをダウンロードします。
  2. PHPの配置
    解凍し、C:\phpなどの任意の場所に配置します。
  3. php.iniの作成
    php.ini-developmentphp.iniにリネームし、必要に応じて編集します。
    以下の行を有効化します(先頭の;を削除):
   extension_dir = "ext"
   extension=mysqli
   extension=gd
   extension=mbstring

ApacheとPHPの連携設定

  1. Apache設定ファイル(httpd.conf)の編集
    C:\Apache24\conf\httpd.confを開き、以下を追加します。
   LoadModule php_module "C:/php/php8apache2_4.dll"
   AddHandler application/x-httpd-php .php
   PHPIniDir "C:/php"
  1. Apache再起動
   httpd.exe -k restart

動作確認

  1. C:\Apache24\htdocs\info.phpを作成し、以下を記述します。
   <?php
   phpinfo();
   ?>
  1. ブラウザでhttp://localhost/info.phpにアクセスし、PHPの情報画面が表示されれば成功です。

次はApacheの設定ファイルを編集してPHPモジュールを有効化する方法を解説します。

Apache設定ファイルの編集とPHPモジュールの有効化

ApacheでPHPを正しく動作させるには、設定ファイル(httpd.conf)やPHPの設定ファイル(php.ini)を適切に編集し、ApacheがPHPスクリプトを処理できるようにします。

Apache設定ファイルの編集(httpd.conf)

  1. 設定ファイルの場所
  • Linux: /etc/apache2/apache2.confまたは/etc/httpd/conf/httpd.conf
  • Windows: C:\Apache24\conf\httpd.conf
  1. PHPモジュールの読み込み
    ファイルを開き、以下の行を追加します(Windowsの場合)。
   LoadModule php_module "C:/php/php8apache2_4.dll"
   AddHandler application/x-httpd-php .php
   PHPIniDir "C:/php"


Linuxの場合は、以下を追加します。

   LoadModule php_module /usr/lib/apache2/modules/libphp.so
   <FilesMatch \.php$>
       SetHandler application/x-httpd-php
   </FilesMatch>
  • libphp.soのパスはPHPのバージョンに応じて変更します。
  1. インデックスファイルにPHPを追加
    以下の行を見つけ、index.phpを追加します。
   <IfModule dir_module>
       DirectoryIndex index.php index.html index.htm
   </IfModule>
  1. ドキュメントルートの確認
    Webサーバーがファイルを探すディレクトリを確認します。通常は以下の場所です。
   DocumentRoot "/var/www/html"
   <Directory "/var/www/html">

PHP設定ファイルの編集(php.ini)

  1. php.iniの場所
  • Linux: /etc/php/8.1/apache2/php.ini
  • Windows: C:\php\php.ini
  1. 必要な拡張モジュールを有効化
    php.iniを開き、以下の拡張モジュールを有効化します。
   extension=mysqli
   extension=gd
   extension=mbstring

Apacheの再起動


編集が完了したら、Apacheを再起動して設定を反映させます。

  • Linux:
   sudo systemctl restart apache2
  • Windows:
   httpd.exe -k restart

動作確認

  1. index.phpを作成してドキュメントルートに配置します。
   <?php
   echo "ApacheとPHPの連携が成功しました!";
   ?>
  1. ブラウザでhttp://localhost/index.phpにアクセスし、メッセージが表示されれば設定完了です。

次はバーチャルホストの設定方法について解説します。

バーチャルホストの設定方法

バーチャルホストを設定することで、1台のApacheサーバーで複数のWebサイトを運用することが可能になります。ドメインごとに異なるディレクトリや設定を割り当てることができ、開発環境や商用サーバーで広く利用されています。

バーチャルホストの仕組み


Apacheでは、ドメイン名やIPアドレスに応じてリクエストを異なるディレクトリに振り分けることができます。
例えば、site1.com/var/www/site1に、site2.com/var/www/site2にルーティングするように設定します。

バーチャルホストの設定手順(Linux編)

  1. ドキュメントルートを作成
   sudo mkdir -p /var/www/site1.com/public_html
   sudo mkdir -p /var/www/site2.com/public_html


サンプルのHTMLファイルを配置します。

   echo "<h1>Welcome to Site 1</h1>" | sudo tee /var/www/site1.com/public_html/index.html
   echo "<h1>Welcome to Site 2</h1>" | sudo tee /var/www/site2.com/public_html/index.html
  1. Apacheの設定ファイルを作成
   sudo nano /etc/apache2/sites-available/site1.com.conf


以下の内容を記述します。

   <VirtualHost *:80>
       ServerAdmin admin@site1.com
       ServerName site1.com
       ServerAlias www.site1.com
       DocumentRoot /var/www/site1.com/public_html
       ErrorLog ${APACHE_LOG_DIR}/site1_error.log
       CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
   </VirtualHost>


同様に、site2.com用のファイルも作成します。

  1. バーチャルホストを有効化
   sudo a2ensite site1.com.conf
   sudo a2ensite site2.com.conf


設定を反映させるため、Apacheを再起動します。

   sudo systemctl reload apache2
  1. hostsファイルの編集(ローカルテスト用)
    クライアント側で/etc/hosts(WindowsはC:\Windows\System32\drivers\etc\hosts)を編集し、以下を追加します。
   127.0.0.1 site1.com
   127.0.0.1 site2.com
  1. ブラウザで動作確認
    ブラウザでhttp://site1.comにアクセスし、「Welcome to Site 1」が表示されれば成功です。

バーチャルホストの設定手順(Windows編)

  1. ドキュメントルートを作成
   mkdir C:\Apache24\htdocs\site1.com
   mkdir C:\Apache24\htdocs\site2.com


サンプルのHTMLファイルを作成します。

   echo <h1>Welcome to Site 1</h1> > C:\Apache24\htdocs\site1.com\index.html
   echo <h1>Welcome to Site 2</h1> > C:\Apache24\htdocs\site2.com\index.html
  1. Apache設定ファイル(httpd.conf)にバーチャルホストを追加
   <VirtualHost *:80>
       ServerName site1.com
       DocumentRoot "C:/Apache24/htdocs/site1.com"
   </VirtualHost>

   <VirtualHost *:80>
       ServerName site2.com
       DocumentRoot "C:/Apache24/htdocs/site2.com"
   </VirtualHost>
  1. hostsファイルの編集
    C:\Windows\System32\drivers\etc\hostsに以下を追加します。
   127.0.0.1 site1.com
   127.0.0.1 site2.com
  1. Apacheを再起動
   httpd.exe -k restart
  1. 動作確認
    ブラウザでhttp://site1.comhttp://site2.comにアクセスし、それぞれのページが表示されることを確認します。

次はPHPファイルの動作確認とデバッグ方法について解説します。

PHPファイルの動作確認とデバッグ方法

ApacheとPHPのインストールおよび設定が完了したら、PHPファイルが正しく動作するかを確認し、エラーが発生した場合のデバッグ方法を学びます。

PHPの動作確認

  1. テスト用PHPファイルの作成
    ドキュメントルート(Linuxでは/var/www/html、WindowsではC:\Apache24\htdocs)にPHPファイルを作成します。
   sudo nano /var/www/html/info.php


Windowsの場合:

   echo ^<?php phpinfo(); ^?> > C:\Apache24\htdocs\info.php
  1. PHPコードの記述
   <?php
   phpinfo();
   ?>


このコードは、PHPのバージョンや設定状況を確認するための標準的な方法です。

  1. ブラウザでアクセス
   http://localhost/info.php


表示例
PHP情報画面
画面にPHPの設定情報が表示されれば、ApacheとPHPの連携は正常です。

エラーが表示されない場合の確認ポイント

  1. Apacheが稼働しているか確認
   sudo systemctl status apache2


または

   httpd.exe -k status
  • サービスが停止している場合は再起動します。
    bash sudo systemctl restart apache2
  1. PHPモジュールが有効か確認
   php -v


PHPが認識されていない場合、インストールやhttpd.confのモジュール設定に問題がある可能性があります。

  1. Apacheのエラーログを確認
  • Linux: /var/log/apache2/error.log
  • Windows: C:\Apache24\logs\error.log
   sudo tail -f /var/log/apache2/error.log


エラー内容を確認し、該当する設定を修正します。

デバッグ方法

  1. エラーメッセージの表示を有効化
    php.iniを編集し、以下の設定を確認します。
   display_errors = On
   error_reporting = E_ALL


変更後はApacheを再起動します。

   sudo systemctl restart apache2
  1. カスタムエラーページの作成
    エラーページを作成し、ユーザーフレンドリーなエラー表示を行います。
   <?php
   set_error_handler(function ($severity, $message, $file, $line) {
       echo "<h2>エラー発生</h2>";
       echo "<p>$message</p>";
   });
   echo $undefined_variable;
   ?>

デバッグツールの活用

  1. Xdebugの導入(開発環境向け)
   sudo apt install php-xdebug


php.iniに以下を追加します。

   zend_extension=xdebug
   xdebug.mode=debug
   xdebug.start_with_request=yes


ブラウザで詳細なスタックトレースが確認可能になります。

次はセキュリティ設定とパフォーマンスチューニングについて解説します。

セキュリティ設定とパフォーマンスチューニング

ApacheとPHPの環境は、適切にセキュリティ対策を施し、パフォーマンスを最適化することで、安全で高速なWebサーバーを構築できます。本セクションでは、主要なセキュリティ設定とパフォーマンス改善の方法について解説します。

セキュリティ設定

1. Apacheのセキュリティ設定

1. バージョン情報の非表示
Apacheはデフォルトでサーバーのバージョン情報を公開します。攻撃者に不必要な情報を与えないよう、以下の設定を行います。
/etc/apache2/apache2.confまたはhttpd.confに追加:

ServerTokens Prod
ServerSignature Off

2. 不要なモジュールの無効化
使用しないApacheモジュールは無効にします。

sudo a2dismod autoindex
sudo a2dismod status
sudo systemctl restart apache2

3. ディレクトリリスティングの無効化
ドキュメントルート以下のファイルやディレクトリが一覧表示されないようにします。

<Directory /var/www/html>
    Options -Indexes
</Directory>

4. .htaccessによるアクセス制限
/var/www/html/.htaccessに以下を記述し、特定のIPアドレス以外のアクセスを制限します。

Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24

2. PHPのセキュリティ設定

1. 不要な関数の無効化
リモートコード実行を防ぐために、危険な関数を無効化します。
php.iniで以下を追加:

disable_functions = exec,passthru,shell_exec,system,eval

2. エラーの非表示
本番環境ではエラーを表示せず、ログに記録する設定が推奨されます。

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

3. ファイルアップロードの制限
PHPでファイルアップロードを許可する場合、サイズや種類を制限します。

upload_max_filesize = 10M
post_max_size = 12M

パフォーマンスチューニング

1. Apacheのパフォーマンス最適化

1. KeepAliveの有効化
KeepAliveを有効にして、同一接続で複数のリクエストを処理します。

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

2. MPMの設定(イベントモードの使用)
イベントMPMを使用してリクエストのスレッド管理を効率化します。

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

3. キャッシュの利用
ブラウザキャッシュを有効にして、静的ファイルの配信を高速化します。

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType text/javascript "access plus 1 week"
    ExpiresByType image/jpeg "access plus 1 month"
</IfModule>

2. PHPのパフォーマンス最適化

1. OPcacheの導入
PHPのコードをキャッシュして、毎回スクリプトをコンパイルしないようにします。

sudo apt install php-opcache


php.iniに以下を追加:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

2. セッションの最適化
セッション保存先をメモリに変更し、高速化を図ります。

session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

次は、本記事のまとめを行います。

まとめ

本記事では、ApacheでPHPの実行環境を構築する方法について、必要なソフトウェアの準備からインストール、設定、セキュリティ対策、パフォーマンスチューニングまでを詳しく解説しました。

ApacheとPHPの環境構築はWebアプリケーション開発の基本であり、適切な設定を行うことで、安全かつ高速にWebサイトを運用することが可能になります。
特に、バーチャルホストの活用PHPのセキュリティ設定パフォーマンス改善は、本番環境での安定稼働に欠かせません。

本記事を参考に、実際にApacheとPHPを連携させたサーバー環境を構築し、自身のプロジェクトに役立ててください。

コメント

コメントする

目次