AWSの仮想マシンでLAMP環境構築

LAMP環境構築とは?

ってことで、AWS仮想マシンを作成したときに【OS】としては、『Amazon Linux AMI』が用意されていて、【Webサーバー】としては『Apachehttpd)』をインストールしていたので、残りのものを仮想マシンにインストールしていけばOKね。 

 

AWS仮想マシンに接続

まずは、AWS仮想マシンが起動しているのを確認します。AWSの管理画面にログインしたら、『サービス』>『コンピューティング』>『EC2』を選択し、『インスタンス』を選択。

f:id:ts0818:20170725181233j:plain

インスタンスの状態』が『running』になっていればOK。

ConEmuを起動し、Msys2のbashを起動し、AWS仮想マシンssh接続。

ssh -i 【認証のための拡張子がpemのファイル(AWSからダウンロードしたファイル)までのパス】 ec2-user@【接続したい仮想マシンのパブリックIPアドレス】

で接続します。

f:id:ts0818:20170725181234j:plain

 

仮想マシンの時刻を設定

 

スーパーユーザー(管理者権限)に切り替えます。 

sudo su

dateコマンドで仮想マシンに設定されている時刻を表示。

date

f:id:ts0818:20170725181235j:plain

UTCと表示され、ロンドン時間が基準となってしまっているようです。

ln -sf /usr/share/zoneinfo/Japan /etc/localtime
date

f:id:ts0818:20170725181236j:plain

JSTとなればOKです。

 

PHPのインストー

phpyumコマンドでインストールしていきます。 

 

yum install -y php

f:id:ts0818:20170725181237j:plain

インストールできました。

f:id:ts0818:20170725181238j:plain

バージョンは、PHP 5.3.29 となっています。バージョンが古い気がしますが...。

f:id:ts0818:20170725181239j:plain

 

PHPの設定ファイルを編集

まずは、PHP設定ファイルのバックアップを作成します。

cp /etc/php.ini /etc/php.bak

f:id:ts0818:20170725181241j:plain

続いて、php.iniファイルを編集

vi /etc/php.ini

f:id:ts0818:20170725181243j:plain

 行番号をセットしていきます。Escキーを押してから、

:set number

f:id:ts0818:20170725181242j:plain

行番号がセットされました。

f:id:ts0818:20170725181244j:plain

520行に飛びたいので、Escキーを押してから、

:520

f:id:ts0818:20170725181245j:plain

で、iを押して、INSERTモードになったら、『error_reporting = E_ALL & ~E_DEPRECATED』の部分を、 

error_reporting = E_ALL & ~E_DEPRECATED

f:id:ts0818:20170725181249j:plain

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

f:id:ts0818:20170725181251j:plain

 

に変更。PHPの余分なエラーを表示しないようにできるようです。

 

次に、537行目へ飛びたいので、Escキーを押してから、

:537

iを押して、INSERTモードになったら、『display_errors Off』の部分を

display_errors Off

f:id:ts0818:20170725181246j:plain

display_errors On

f:id:ts0818:20170725181247j:plain

に変更。PHPのエラーがブラウザに表示されるようになります。設定ファイルの変更が終わったので、Escキーを押して、

:wq

でファイルの保存。Apachehttpd)を再起動し、設定ファイルの変更を反映させます。

service httpd restart

f:id:ts0818:20170725181252j:plain

ドキュメントルートに、新しくphpファイルを作成し、phpが動いてるか確認。

vi /var/www/html/index.html

f:id:ts0818:20170725181254j:plain

iを押して、INSERTモードになったら、

<php
echo "Hello AWS, Hello PHP";
?>    

f:id:ts0818:20170725181253j:plain

Escキーを押して、 

:wq

で保存。ブラウザで、『http://パブリックIPアドレス/index.php』にアクセス。

f:id:ts0818:20170725181255j:plain

phpが機能しています。 

MySQLのインストー

続いて、MySQLのインストール。 

yum install -y mysql-server

f:id:ts0818:20170725181256j:plain

MySQLインストールできました。

f:id:ts0818:20170725181257j:plain

バージョンは、MySQL 5.5.56ってことかな?

f:id:ts0818:20170725181258j:plain

続いて、phpからMySQLに接続するために必要なmysqldをインストール。XAMPPだとデフォルトでPDO接続できたような...。


mysqld(MySQL Native Driver)

MySQL Native Driver は、MySQL Client Library (libmysqlclient) の後継です。 MySQL Native Driver は、PHP 5.3.0 以降の公式ソースにその一部として組み込まれています。

MySQL データベース用の拡張モジュールである MySQL や mysqli そして PDO MYSQL は、 すべて MySQL サーバーと通信します。 かつては、これらの拡張モジュールがサーバーと通信するときには MySQL Client Library が提供するサービスを使っていました。 これらの拡張モジュールをコンパイルするときに MySQL Client Library を組み込み、そのクライアント・サーバープロトコルを使っていたのです。

今や MySQL Native Driver がその代替として登場したので、 MySQL データベース用の拡張モジュールをコンパイルするときに MySQL Native Driver を使えば MySQL Client Library なしでもコンパイルできるようになったのです。

MySQL Native Driver は、C 言語で書かれた PHP 用拡張モジュールです。

PHP: 導入 - Manual 

yum install -y php-mysqlnd

f:id:ts0818:20170725181259j:plain

 インストールできました。

f:id:ts0818:20170725181300j:plain

 

MySQL接続

MySQLを起動します。

service mysqld start

f:id:ts0818:20170725181303j:plain

 起動されました。

f:id:ts0818:20170725181302j:plain

 

MySQLの設定

MySQLの設定をしていきます。

mysql_secure_installation

f:id:ts0818:20170725181304j:plain

root(MySQLのデフォルトユーザー)のパスワードを聞かれるので、空Enter。

f:id:ts0818:20170725181305j:plain

その後、新しいパスワードを設定するか、聞かれるので、新しいパスワードを入力します。(MySQLの接続で使うので覚えておきます。)

f:id:ts0818:20170725181306j:plain

いままでのユーザーを削除するか?的な感じだと思いますが、『y』でEnter。

f:id:ts0818:20170725181307j:plain

あとは、『y』でEnter。

f:id:ts0818:20170725181308j:plain

あとは、『y』でEnter。

f:id:ts0818:20170725181309j:plain

 設定完了。 

f:id:ts0818:20170725181311j:plain

 

MySQL文字コード設定

/etc/my.cnfファイルを編集します。

vi /etc/my.cnf

f:id:ts0818:20170725181312j:plain

Escキーを押し、

:set number

f:id:ts0818:20170725181313j:plain

iを押してINSERTモードになったら、『 [mysqld_safe] 』の前に、

f:id:ts0818:20170725181314j:plain

character-set-server = utf8

f:id:ts0818:20170725181315j:plain

 を追加します。Escキーを押して、

:wq

f:id:ts0818:20170725181316j:plain

で保存。MySQLを再起動。

sevice mysqld restart

f:id:ts0818:20170725181317j:plain

 OKと表示されればOKです。

f:id:ts0818:20170725181318j:plain

 

phpMyAdminのインストー

 

f:id:ts0818:20170725181320j:plain

 

f:id:ts0818:20170725181321j:plain

 

f:id:ts0818:20170725181322j:plain

 

f:id:ts0818:20170725181323j:plain

 

phpMyAdminの設定

自分のパソコンからしかアクセスできないようにするため、グローバルIPアドレスを使います。

確認くん』というサイトにアクセスします。 

f:id:ts0818:20170725181326j:plain

『あなたのIPアドレスIPv4)』というものを使います。

 phpMyAdminの設定ファイルを編集します。

vi /etc/httpd/conf.d/phpMyAdmin.conf

f:id:ts0818:20170725181324j:plain

設定ファイルが開いたら、 

f:id:ts0818:20170725181325j:plain

viの置換機能で、グローバルIPアドレスに変更します。

:%s/127.0.0.1/グローバルアドレス/g

f:id:ts0818:20170725181329j:plain

置換されたら、Escキーを押して、

:wq

f:id:ts0818:20170725181328j:plain

で保存。設定を反映させるため、Webサーバーを再起動。

service httpd restart

f:id:ts0818:20170725181330j:plain

ブラウザで、『http://パブリックIPアドレス/phpmyadmin』にアクセス。

f:id:ts0818:20170725181331j:plain

パスワードに、phpMyAdminをインストールしたときに設定したものを入力。

f:id:ts0818:20170725181332j:plain

アクセスできました。

一応、MySQLApachehttpd)をstopし、仮想マシンも停止して、今日のところは終了。

f:id:ts0818:20170725181333j:plain

AWSの管理画面で、仮想マシンの停止。

f:id:ts0818:20170725181334j:plain

データが失われるって文言が気になるけど、『停止する』をクリック。

f:id:ts0818:20170725181335j:plain

インスタンスの状態』が『stopped』になってればOK。 

f:id:ts0818:20170725181336j:plain