(58)【連載1-2】VirtualBox上のUbuntuをWEBサーバーに

投稿者: | 2017年10月2日

この記事は最終更新から 556日 が経過しています。

連載2回目、前回の 「(57)【連載1】CentOS7にVirtualBoxを入れる」 の続きです。

この連載で最終的にやりたいこと

CentOS7を入れた物理サーバーに VirtualBoxをインストールし、
 VirtualBoxの仮想マシン上で Ubuntuの仮想サーバーを動かし、
  Ubuntuの仮想サーバー上で WEBサーバーを動かし、
   eclipse + xdebug, PhpStorm + xdebugでリモートデバッグしたい。

今回やりたいこと

CentOS7を入れた物理サーバーに VirtualBoxをインストールし、Ubuntuの仮想サーバーを動かした。
今回はこの Ubuntuを WEBサーバーとして使い、PHPスクリプトを動かしてMySQLを制御したい。

(1) 必要なプログラムをインストール

1) 定番のHTTPサーバーである Apache2を入れる。

sudo apt install apache2

sudo systemctl enable apache2
sudo systemctl restart apache2
sudo systemctl status apache2

前回の投稿で FireWallを導入したので、Port#80(for http)を開けておく。

sudo ufw allow http
sudo ufw status

2) PHP7.0を入れる。 ※aptに7.1がなかった。

sudo apt install php7.0
sudo apt install php7.0-mysql php7.0-gd php7.0-mbstring php7.0-pear php7.0-common
sudo apt install libapache2-mod-php7.0 php7.0-curl php7.0-mcrypt php7.0-cgi

sudo a2enconf php7.0-cgi
sudo systemctl reload apache2

3) MySQLを入れる。

sudo apt install mysql-server

MySQLは 5.7.19 が入った。

user@:~$ mysql --version
mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper

(2) とりあえず動くか見てみる

1. WEBブラウザでアクセスしてみる。

Windowsパソコンで http://192.168.1.4 にアクセスしてみる。
※192.168.1.4は前回投稿で当該VMに割り当てた固定IPアドレス

ここまではよろしいようで。

2. phpinfoを見てみる。

phpinfoを表示するだけの PHPスクリプトファイルを作り、WEBブラウザでこれを表示してみる。

vi /var/www/html/info.php
<?php
  phpinfo();
?>

Windowsパソコンで http://192.168.1.4/info.php にアクセスしてみる。

こちらも大丈夫なようで。

3. PHPスクリプト内でMySQL DBを操作してみる。

1) まずはインストール後何もしていないMySQL DBにデータベースを作成する。

ログインする。

user@:~$ mysql -uroot -pxxxxx

Testという名前のデータベースを作成する。

create database Test;
use Test;

Testデータベースに Tttという名前のテーブルを作成する。カラムはINT AAAと TEXT BBBの 2個とする。

create table Ttt (`AAA` INT, `BBB` TEXT);

テーブルにレコードを1個挿入する。値は AAA=123, BBB=’ABC’

insert into Ttt values('123','ABC');

こんなテーブルができた。

mysql> show tables;
+----------------+
| Tables_in_Test |
+----------------+
| Ttt            |
+----------------+
1 row in set (0.00 sec)

mysql> desc Ttt;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| AAA   | int(11) | YES  |     | NULL    |       |
| BBB   | text    | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> select * from Ttt;
+------+------+
| AAA  | BBB  |
+------+------+
|  123 | ABC  |
+------+------+
1 row in set (0.00 sec)

このテーブルのレコードを読み出すPHPスクリプト view.php を書く。

vi /var/www/html/view.php
<?php
    // DBに接続
    $cdb = new mysqli('127.0.0.1', 'root', 'xxxxx', 'Test');

    // Testテーブルのレコードを取得
    $res = $cdb->query('SELECT * FROM `Ttt`;');

    // 取得したレコードを表示
    $row = $res->fetch_assoc();
    var_dump($row);
?>

Windowsパソコンで http://192.168.1.4/view.php にアクセスしてみる。

確かに値が取得できた。こちらも大丈夫なようだ。

★最終的にできたこと

・CentOS7物理サーバー上のUbuntu17仮想サーバーにWEBサーバーを設置できた。
・このWEBサーバー上では PHP + SQL でWEBアプリを作成できる。

目的を達成できたのでここまででOKとする。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です