目次
LAMP環境の動作確認
LAMP環境のサーバーの準備が整ったら、
いよいよ最後はデータベースと連携した簡単なアプリケーションを作成して、
これまで用意してきた、Apache、MySQL、PHPがきちんと連携しているか動作確認していきます。
今回はデータベースから都道府県の一覧を取得して画面上に表示するだけのシンプルなWebページを作成して検証していきます。
環境:「Conoha VPS」メモリ 512MB/CPU 1Coreプラン、CentOS 7.6.1810 (Core)、 Apache/2.4.6、 MySQL 8.0.19、 PHP 7.4.2
素材のダウンロード
本記事のphpファイルとsqlファイルを以下よりダウンロード出来ます。
Download
SSHクライアントからサーバー接続して下記の手順を実行していきます。
データベース作成とデータの準備
MySQLへデータベースを作成し、動作検証に必要なデータを用意していきます。
ユーザー作成
今回作成するアプリで使用するデータベースの専用※ユーザーを作成します。
※MySQLセットアップ時と同様の補足ですが、サーバー本体の接続ユーザーとは異なります
1. MySQLへrootアカウントで接続
(セットアップ時に決めたパスワードを入力)
$ mysql -u root -p
2 . ユーザー作成
ユーザ名、lampuserとします。
mysql> CREATE USER lampuser@localhost IDENTIFIED BY '※パスワード';
※パスワード: 英大文字、英小文字・数字・記号を含む8文字以上
データベース作成
1. 検証用のデータベース 「lamp_test」 を作成
mysql> CREATE DATABASE lamp_test CHARACTER SET UTF8;
2. データベースの操作権限をlampuserへ与える
mysql> GRANT ALL ON lamp_test.* TO lampuser@localhost;
ユーザーとデータベースを確認する
1. rootユーザーでの接続を一度切り (exit + Enter)、作成したユーザー lampuserでMySQLへ接続し直す
$ mysql -u lampuser -p
2. 作成したデータベースが存在していることを確認する
(操作権限のあるデータベースを表示するコマンド)
mysql> show databases;
lamp_testが存在していればOK。(接続を切っておく)
テーブル作成とデータのインポート
テーブル作成とデータのインポートを実行するためのSQLファイルを
データベースから読み込んで実行します。
SQLファイル 「prefecture_data.sql」
1. ダウンロード したSQLファイルをFTPクライアント等を使用してサーバへアップロードします。
保存する先はユーザーのホーム直下でOK
$ pwd /home/ユーザ $ ls id_rsa.pub prefecture_data.sql
2. データベースからSQLファイルを読み込む
(データベース作成時に決めたパスワードを入力して実行)
$ mysql -u lampuser -D lamp_test -p < prefecture_data.sql
3. テーブル作成とデータのインポートの完了を確認
(接続)
$ mysql -u lampuser -D lamp_test -p
(テーブルからデータの一覧を表示)
mysql> SELECT * FROM prefectures;
都道府県データの一覧が表示されればデータの準備が完了です。
ソースファイルのアップロードとアクセス確認
動作検証用のPHPファイル(index.php)をドキュメントルートというサーバーの公開ディレクトリにアップロードしてブラウザからアクセス確認を行います。
ソースファイル「index.php」
ファイルの内容ですが、データベース接続の設定箇所を実際の環境に合わせて書き換えてください。
<?php define('DSN', 'mysql:host=localhost;dbname=lamp_test;charset=utf8'); define('DB_USERNAME', 'lampuser'); define('DB_PASSWORD', 'DBユーザのパスワード'); try { $_db = new PDO(DSN, DB_USERNAME, DB_PASSWORD); $_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ echo $e->getMessage(); exit; } $stmt = $_db->query("SELECT * FROM prefectures ORDER BY id ASC"); $prefectures = $stmt->fetchAll(PDO::FETCH_ASSOC); function escape($s){ return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>lamp-test</title> </head> <body> <ul> <?php foreach($prefectures as $prefecture): ?> <?php echo "<li>".escape($prefecture['name'])."</li>" ?> <?php endforeach ?> </ul> </body> </html>
ドキュメントルートの設定とファイルのアップロード
ドキュメントルートディレクトリはApacheの設定ファイル
/etc/httpd/conf/httpd.conf で定義されており、
デフォルトの場所は /var/www/html/ となっています。
1. ドキュメントルートディレクトリをWebサーバー(Apache)が実行出来るよう、
ディレクトリの所有者と所有グループをapacheに変更します。
$ sudo chown -R apache:apache /var/www/html/
2. 所有グループへも書き込みの権限を与える
$ sudo chmod -R 775 /var/www/html/
3. 以下のコマンドで権限と所有者を確認
$ ls -ld /var/www/html/
(変更前)drwxr-xr-x 2 root root
(変更後)drwxrwxr-x 2 apache apache
ドキュメントルートへソースファイルを作成出来るよう、
サーバー接続ユーザーをApacheのグループに所属させます。
※ gpasswdコマンドで既存のグループ情報を変えないで追加する
$ sudo gpasswd -a ユーザー名 apache
権限とグループの変更が出来たらFTPクライアント等で
ドキュメントルート/var/www/html/ 直下へソースファイルをアップロードします。
Apacheの再起動とアクセス確認
PHPよりも先にApacheをインストールしたので、Apacheを再起動させておく必要があります。
$ sudo systemctl restart httpd.service
ブラウザからアクセスしてページの表示と、データベースとの連携を確認する。
http://サーバーのIPアドレス/
こんな感じに表示されたらOK
期待通りの表示を行うことが出来たら、基本的なLAMP環境のサーバー構築が無事完了です!
関連記事