2025 年度 DB 技術 : PHP + RDBMS 環境構築編

環境構築

PHP のインストール

PHP を Debian パッケージを利用してインストールする. PHP 関連のパッケージは大量に存在するが, 基本的な動作であれば php, php-mysql, libapache2-mod-php パッケージを指定すれば良い. libapache2-mod-php は apache2 用の PHP モジュールで,今回 Web サーバとして apache2 を使うのでインストールしている.

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install php libapache2-mod-php php-mysql

PHP の設定

PHP をインストール後に mods-enabled ディレクトリ以下を確認すると, PHP を使うためのファイルが存在することがわかる. このことは /var/www/html 以下で PHP を使える状態にあることを意味する.

$ sudo -s

初期状態では PHP への資源割り当てが小さいので拡大しておく. さらに,タイムゾーンを日本時間に変えておく.

# cd /etc/php/8.2/apache2
# cp php.ini php.ini.bk

# vi php.ini

   以下の行を修正しておくのを推奨する.デフォルトでは利用できる資源の制限が強すぎるので.
   行によってはデフォルトではコメントアウト (先頭が ;) されているので,それを削除すること.
   max_execution_time = 0
   max_input_time = -1
   max_input_vars = 10000
   memory_limit = 1280M
   post_max_size = 800M
   upload_max_filesize = 200M
   max_file_uploads = 200
   date.timezone = Asia/Tokyo              <-- コメントアウトを外すこと

userdir (~/public_html/) において php を使うためには, mods-enabled/php8.2.conf の設定を変更する必要がある. コメントに書かれているように, php_admin_flag engine を On にする. また,PHP スクリプトを HTML に埋め込めるように FilesMatch ディレクティブを設定する.

# cd /etc/apache2/

# ls mods-enabled/*php*

  mods-enabled/php8.2.conf  mods-enabled/php8.2.load

# vi mods-enabled/php8.2.conf

  ...(前略)...

  # Running PHP scripts in user directories is disabled by default
  # 
  # To re-enable PHP in user directories comment the following lines
  # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
  # prevents .htaccess files from disabling it.
  <IfModule mod_userdir.c>
      <Directory /home/*/public_html>
  #        php_admin_flag engine Off   (コメントアウトする)
           php_admin_flag engine On
      </Directory>
  </IfModule>

  <FilesMatch ".+\.ht(?:m|ml)$">
     SetHandler application/x-httpd-php
  </FilesMatch>

設定を変更したら, apache2 を再起動する.

# /etc/init.d/apache2 restart

  [ ok ] Restarting apache2 (via systemctl): apache2.service.

# exit 

$

PHP の動作確認

以下のような 時刻を表示するための php ファイルを Web サーバのドキュメントルートに置いてみて動作確認を行う. なお, <? の前や, ?> の前に「空白文字を入れない」こと!

$ cd ~/public_html

$ vi hello.php

  <?php
  echo date("Y-m-d H:i:s");
  ?>

作成が終わったら, 自分の PC のブラウザで http://10.10.XX.YY/~hogehoge/ (IP は自分のものに変え, hogehoge は自分のユーザ名に置き換えること) に アクセスし, hello.php を表示してみよ. さらに,再読み込みボタンを押すと表示が変化すること,を確かめて下さい.