[OCI] Computeインスタンス上にphpMyAdminをインストールして、自宅からブラウザ経由でMySQL DBシステムにアクセスしてみた
はじめに
OCIのMySQL DBシステムは、プライベート・エンドポイントのみを持ち、グローバルIPアドレスを持たないため、パブリック・サブネット上にある仮想マシン経由でアクセスする必要があります。
そこで、パブリック・サブネット上に作成したComputeインスタンスにphpMyAdminをインストールし、自宅からブラウザ経由でMySQL DBシステムにアクセスする環境を構築してみました。
注意:今回の構成ではSSL通信の設定はしておりませんので、機密データを扱う場合には、SSL通信の設定を行う、VPN経由でアクセスするなどを検討してください。
0.事前準備
こちらの記事を参考にして、VCNを構成します。
[OCI] OCIのネットワークを構成する際に手戻りの少ない手順を考えてみる(初心者向け)
MySQL DBシステムは、こちらの記事のようにVCN内のプライベート・サブネット(Subnet2)に作成し、同じVCN内のパブリック・サブネット(Subnet1)にphpMyAdminを動作させるComputeインスタンス(Oracle Linux 7.8)を作成します。
[OCI] Computeインスタンス上にNode.jsのWebアプリケーション環境を構成して、MySQL Database ServiceのDBシステムにアクセスしてみた
また、Computeインスタンスに適用するネットワーク・セキュリティ・グループに、インターネット側からのTCP 80番ポートへのアクセスを許可するセキュリティ・ルールを追加しておきます。
不正アクセスを防ぐため、特定のグローバルIPアドレスからのアクセスを許可することをお勧めします。
1.タイムゾーンとロケールの設定
sudo timedatectl set-timezone Asia/Tokyo
sudo localectl set-locale LANG=ja_JP.utf8
2.MySQL Clientのインストール
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install -y mysql-community-client
3.PHP、Apacheのインストール
sudo yum install -y oracle-php-release-el7
sudo yum install -y php php-mysqlnd php-json php-gd php-mbstring php-xml php-intl
4.Composerのインストール
sudo timedatectl set-timezone Asia/Tokyo
sudo localectl set-locale LANG=ja_JP.utf8
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install -y mysql-community-client
3.PHP、Apacheのインストール
sudo yum install -y oracle-php-release-el7
sudo yum install -y php php-mysqlnd php-json php-gd php-mbstring php-xml php-intl
4.Composerのインストール
sudo yum install -y oracle-php-release-el7
sudo yum install -y php php-mysqlnd php-json php-gd php-mbstring php-xml php-intl
こちらのページの手順に従って、composerをインストールします。
https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c31c1e292ad7be5f49291169c0ac8f683499edddcfd4e42232982d0fd193004208a58ff6f353fde0012d35fdd72bc394') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --filename composer
php -r "unlink('composer-setup.php');"
5.twigのインストール
php composer require "twig/twig:^2.0"
6. ApacheとPHPの連携設定
sudo vi /etc/httpd/conf/httpd.conf
php composer require "twig/twig:^2.0"
sudo vi /etc/httpd/conf/httpd.conf
以下の内容をファイルの末尾に追加して保存します。
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
7.firewalldの設定(HTTP/TCP80を許可)
sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public
8.SELinuxの設定変更
sudo setenforce 0
9.SELinuxの設定ファイルの変更
sudo vi /etc/selinux/config
SELINUX=enforcing
の部分を
SELINUX=permissive
に変更します
10.phpMyAdminのダウンロードと解凍
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip
unzip phpMyAdmin-5.0.4-all-languages.zip
11.解凍したディレクトリを/usr/share/phpmyadminに移動
sudo mv phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin
12.phoMyAdmin用のtmpディレクトリを作成し、所有者を変更
sudo mkdir -p /usr/share/phpmyadmin/tmp/
sudo chown -R apache:apache /usr/share/phpmyadmin/tmp/
13.phpMyAdminの設定ファイルを作成します。
sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public
sudo setenforce 0
9.SELinuxの設定ファイルの変更
sudo vi /etc/selinux/config
SELINUX=enforcing
の部分を
SELINUX=permissive
に変更します
10.phpMyAdminのダウンロードと解凍
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip
unzip phpMyAdmin-5.0.4-all-languages.zip
11.解凍したディレクトリを/usr/share/phpmyadminに移動
sudo mv phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin
12.phoMyAdmin用のtmpディレクトリを作成し、所有者を変更
sudo mkdir -p /usr/share/phpmyadmin/tmp/
sudo chown -R apache:apache /usr/share/phpmyadmin/tmp/
13.phpMyAdminの設定ファイルを作成します。
sudo vi /etc/selinux/config
SELINUX=enforcing
の部分を
SELINUX=permissive
に変更します
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip
unzip phpMyAdmin-5.0.4-all-languages.zip
11.解凍したディレクトリを/usr/share/phpmyadminに移動
sudo mv phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin
12.phoMyAdmin用のtmpディレクトリを作成し、所有者を変更
sudo mkdir -p /usr/share/phpmyadmin/tmp/
sudo chown -R apache:apache /usr/share/phpmyadmin/tmp/
13.phpMyAdminの設定ファイルを作成します。
sudo mv phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin
sudo mkdir -p /usr/share/phpmyadmin/tmp/
sudo chown -R apache:apache /usr/share/phpmyadmin/tmp/
13.phpMyAdminの設定ファイルを作成します。
config.sample.inc.phpをコピーして、phpMyAdminの設定ファイル config.inc.php を作成します。
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
14.作成したphpMyAdminの設定ファイルを編集します。
sudo vi /usr/share/phpmyadmin/config.inc.php
sudo vi /usr/share/phpmyadmin/config.inc.php
この部分を変更します。
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
接続するMySQL DBシステムのエンドポイントに合わせて、以下のように変更します。
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'mysql1.subnet2.vcn1.oraclevcn.com';
$cfg['Servers'][$i]['user'] = 'admin';
$cfg['Servers'][$i]['password'] = 'Demo#1Demo#1';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
15.phpMyAdmin用のApacheの設定ファイルを作成します。
sudo vi /etc/httpd/conf.d/phpmyadmin.conf
sudo vi /etc/httpd/conf.d/phpmyadmin.conf
以下の内容を入力して、ファイルを保存します。
"XXX.XXX.XXX.XXX"の部分は、phpMyAdminにアクセスできるグローバルIPアドレスを指定します。
私はプロバイダから自宅のルータに付与されているIPアドレスを指定しました。
# Apache configuration for phpMyAdmin
Alias /phpMyAdmin /usr/share/phpmyadmin/
Alias /phpmyadmin /usr/share/phpmyadmin/
<Directory /usr/share/phpmyadmin/>
AddDefaultCharset UTF-8
#許可するグローバルIPアドレスを指定
Require ip xxx.xxx.xxx.xxx
</Directory>
16.Apacheの起動
systemctlコマンドで、Apacheを起動します。
sudo systemctl start httpd.service
17.Apacheの自動起動設定
systemctlコマンドで、OS起動時にApacheが自動的に起動するように設定します。
sudo systemctl enable httpd.service
18.ブラウザでphpMyAdminにアクセス
以上でphpMyAdminのインストールと設定が完了したので、ブラウザ経由でアクセスしてみます。
phpMyAdminをインストールしたComputeインスタンスのグローバルIPアドレスの後ろに"/phpmyadmin/"を
付けてアクセスします。
http://<ComputeインスタンスのグローバルIPアドレス>/phpmyadmin/
無事、phpMyAdminのログインページが表示されましたので、MySQL DBシステムの管理者ユーザ(今回はadmin)でログインしてみます。
無事ログインできました。
多言語対応版をインストールしたので、言語設定(上の画面のLanguageの部分)を変えれば、日本語表示になります。
これで、ターミナルを立ち上げなくても、ブラウザがあれば自宅からMySQL DBシステムにアクセスできるようになりました。
まとめ
今回は最新版のphpMyAdmin 5.0.4をComputeインスタンス上のOracle Linux 7.8にインストールし、MySQL DBシステムにアクセスしてみました。
かなり昔にphpMyAdminを使っていましたが、新しいバージョンも見た目はあまり変わりませんね。
細かいところはまだ触っていないのでわかりませんが、久しぶりに色々触ってみたいと思います。
Author And Source
この問題について([OCI] Computeインスタンス上にphpMyAdminをインストールして、自宅からブラウザ経由でMySQL DBシステムにアクセスしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/500InternalServerError/items/261eabd7375a278fea64著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .