【連載第4回】Webサーバーとデータベースの「橋渡し役」PHPをインストールする
未経験からWebアプリ開発を目指す「AlmaLinux 9とLAMP環境で作る!Webアプリ開発完全ロードマップ(全12回)」の第4回です。
ここまでで、Webサーバー(Apache)とデータベース(MariaDB)の構築が完了しました。
しかし、これらはまだ「ただ存在しているだけ」で、お互いに連携していません。
今回は、この2つを繋ぎ、データベースからデータを取り出してWebページとして表示するためのプログラミング言語「PHP(ピー・エイチ・ピー)」を導入します。
PHPって、WordPressとかでも使われている言語ですよね?
なんか難しそうですけど、僕にも書けるようになりますか?
大丈夫よ。PHPは「Web開発のために生まれた言語」だから、初心者でも直感的に書きやすいのが特徴なの。
今回はコードを書く前の準備として、最新の「PHP 8系」をインストールして、画像なども扱えるように設定していくわよ。
本講座のカリキュラム(全12回)
現在地は第4回です。
- サーバー準備編:なぜVPSが必要?AlmaLinux 9の初期設定とSSH接続
- Webサーバー編:Apache(httpd)のインストールとファイアウォール設定
- データベース編:MariaDB(MySQL)のインストールとセキュリティ設定
- 【今回】プログラミング言語編:PHP 8.xの導入と設定ファイルのチューニング
- 権限・パーミッション編:LinuxでWebサイトを公開するための「所有者」の概念
- 接続テスト編:PHPからデータベース(DB)に接続してみよう
- アプリ開発①:HTML/CSSで掲示板の「見た目」を作る
- アプリ開発②:投稿機能(Create)の実装とデータの保存
- アプリ開発③:一覧表示機能(Read)と画像表示の仕組み
- アプリ開発④:編集・削除機能(Update/Delete)の実装
- セキュリティ編:XSSやSQLインジェクション対策の基礎
- 公開編:独自ドメイン設定と無料SSL(Let’s Encrypt)でHTTPS化
PHPとは?Webサイトにおける役割
Apache、MariaDB、PHPの関係は、よく「レストラン」に例えられます。
- Apache(ウェイター): お客さん(ブラウザ)からの注文を聞き、料理を運ぶ。
- MariaDB(食材倉庫): 肉や野菜(データ)を大量に保管している。
- PHP(料理人): 倉庫から食材を取り出し、調理(加工)してウェイターに渡す。
PHPがいることで、アクセスする人によって表示を変えたり(会員ページなど)、新しいデータを保存したりといった「動的なサイト」が作れるようになります。
手順1:PHP本体と便利な拡張機能をインストール
AlmaLinux 9では、標準で新しいバージョンである「PHP 8.0系」または「8.1系」が利用可能です。
今回は、本体だけでなく、データベース接続や日本語処理に必要な「拡張機能(モジュール)」もまとめてインストールします。
以下のコマンドを1行でコピーして実行してください。
dnf install php php-mysqlnd php-mbstring php-gd php-xml php-fpm -y
インストールするものの解説:
php: PHP本体。php-mysqlnd: MariaDB(MySQL)と通信するためのドライバ。これがないとDBに繋がりません。php-mbstring: 日本語(マルチバイト文字)を正しく扱うための機能。php-gd: 画像のサイズ変更や加工を行うためのライブラリ。
バージョンの確認
インストールが終わったら、正しく入ったか確認してみましょう。
php -v
PHP 8.x.x (cli) ... のように表示されれば成功です。
手順2:設定ファイル(php.ini)のチューニング
初期状態のPHPは、海外仕様になっていたり、アップロードできるファイルサイズが小さかったりします。/etc/php.ini という設定ファイルを編集して、使いやすくカスタマイズしましょう。
今回は初心者でも失敗しないよう、「sed(セド)」というコマンドを使って、コマンド一発で書き換えを行います。
1. タイムゾーンを日本時間にする
初期設定では時刻がズレてしまうため、「Asia/Tokyo」に変更します。
sed -i 's/;date.timezone =/date.timezone = Asia\/Tokyo/g' /etc/php.ini
2. エラーログを表示させる(開発用)
プログラムのエラーが出た時に、画面に理由が表示されるようにします。(本番運用時はOffにします)
sed -i 's/display_errors = Off/display_errors = On/g' /etc/php.ini
3. アップロードサイズの上限を増やす
初期状態では2MB(スマホの写真1枚分くらい)までしかアップロードできません。
これを30MBまで許可するように変更します。
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php.ini sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php.ini
本来は「viエディタ」でファイルを開いて編集するんだけど、記述ミスを防ぐために今回はコマンドで自動置換したわ。
これでスマホの高画質な写真もアップロードできるようになるわよ。
手順3:Webサーバーを再起動して反映
PHPの設定を変更したら、それをWebサーバー(Apache)に認識させるために、再起動が必要です。
この手順を忘れると、設定がいつまでも反映されません。
systemctl restart httpd
手順4:動作確認用ページを作ってみる
最後に、本当にPHPが動いているかテストしてみましょう。/var/www/html/ の中に、info.php というファイルを作成します。
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
ブラウザを開き、以下のURLにアクセスしてみてください。
http://[あなたのVPSのIPアドレス]/info.php
紫色の表組みで、PHPのロゴやバージョン情報がズラリと表示されれば大成功です!
注意:
このページ(phpinfo)は、サーバーの詳しい設定情報が他人に見えてしまうため、確認が終わったら以下のコマンドで削除しておくのがセキュリティ上のマナーです。
rm /var/www/html/info.php
次回予告:Linuxの「権限(パーミッション)」を理解する
これで、LAMP環境(Linux, Apache, MariaDB, PHP)のすべての役者が揃いました!
ですが、まだ開発を始めることはできません。
なぜなら、今はすべてのファイルを「root(最強の管理者)」で作ってしまっているため、WebサーバーやPHPがファイルを書き込もうとしても「お前には権限がない!」と弾かれてしまうからです。
次回は、Linux初心者が最もつまずく「所有者とパーミッション(権限)」について解説し、安全にファイルをアップロードできる環境を整えます。
ここまで来れば、環境構築の峠は越えたようなものよ。
次回の権限設定さえクリアすれば、いよいよ掲示板を作り始められるわ。
まだサーバーを用意していない人は、今のうちに追いついてきてね!
▼この講座で使用している推奨VPS


コメント