2024 年度 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 を表示してみよ. さらに,再読み込みボタンを押すと表示が変化すること,を確かめて下さい.
