ゼロからphp7環境構築 - 2.Appサーバー設定


前回: ゼロからphp7環境構築 - 1.DBサーバー設定
次回: ゼロからphp7環境構築 - 3.サンプルアプリ作成(laravel5)

概要

今回はappサーバーの設定を行います
0.事前準備 で作成した環境を使用します。httpd,php7,mariaDBをインストールし、1.DBサーバー設定 で作成したDBに接続してみます

もくじ

  • vagrant up
  • httpd インストール・設定
  • php7 インストール・設定
  • composer インストール
  • DB接続テスト
  • DB接続テスト2(phpからの接続)
  • box作成・追加

vagrant up

cd C:\HashiCorp\Vagrant\work\testProject\appserver
vagrant up

192.168.33.11 (vagrant / vagrant) へssh接続

httpd インストール

sudo yum -y install httpd
httpd -v

設定変更

sudo vim /etc/httpd/conf/httpd.conf

■66行目、67行目
User apache
Group apache

User vagrant
Group vagrant

起動と自動起動設定

sudo systemctl start httpd
sudo systemctl enable httpd

apachのwelcome画面表示

http://192.168.33.11/ へアクセス

Testing 123.. の画面が表示されることを確認

php7インストール

sudo yum -y install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum -y install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-mysqlnd php-xml
php -v

DocumentRoot変更

sudo vim /etc/httpd/conf/httpd.conf

■103行目
AllowOverride none

AllowOverride All

■119行目
DocumentRoot "/var/www/html"

DocumentRoot "/home/vagrant"

■124行目
Directory "/var/www"

Directory "/home/vagrant"

■125行目
AllowOverride none

AllowOverride All

■131行目
Directory "/var/www/html"

Directory "/home/vagrant"

■151行目
AllowOverride none

AllowOverride All

■164行目
DirectoryIndex index.html

DirectoryIndex index.php index.html

再起動

sudo systemctl restart httpd.service

phpinfo表示

cd
vim index.php

<?php phpinfo(); ?>

http://192.168.33.11/ へアクセス
phpinfo の画面が表示されることを確認

composerインストール

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -V

Composer version 1.2.2 2016-11-03 17:43:15

DB接続テスト

前回作成したDBサーバーに、Appサーバーから接続するための設定を行います

vagrant up(DBサーバー)

cd C:\HashiCorp\Vagrant\work\testProject\dbserver
vagrant up

192.168.33.21 (vagrant / vagrant) へssh接続

ユーザーごとのアクセス権限の確認

mysql -u root
MariaDB [(none)]> select user,host from mysql.user;

+------+-----------------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+------+-----------------------+

アクセス権限の追加

MariaDB [(none)]> grant all privileges on sample.* to root@"192.168.33.11" identified by 'vagrant' with grant option;

Query OK, 0 rows affected (0.00 sec)

確認

MariaDB [(none)]> select user,host from mysql.user;

+------+-----------------------+
| root | 127.0.0.1 |
| root | 192.168.33.11 | ← 追加された
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+------+-----------------------+

Appサーバーで接続確認

192.168.33.11 に接続しているターミナルに移動

mysql -h 192.168.33.21 -uroot -p
-bash: mysql: command not found

mariaDBを入れてなかった。。。
前回記事を参考にmariaDBをインストール(省略)
mariaDBの起動と自動起動設定は不要

再チャレンジ(passWordは vagrant )
接続、参照、レコード追加ができました。

[vagrant@localhost ~]$ mysql -h 192.168.33.21 -uroot -p
Enter password:

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+

MariaDB [(none)]> use test;

MariaDB [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| sample         |
+----------------+

MariaDB [test]> select * from sample;
+----+---------------+
| id | name          |
+----+---------------+
|  1 | Yamada Taro   |
|  2 | Tanaka Hanako |
+----+---------------+
2 rows in set (0.00 sec)

MariaDB [test]> insert into sample (name) values ('Nagata Yuki');
Query OK, 1 row affected (0.03 sec)

MariaDB [test]> select * from sample;
+----+---------------+
| id | name          |
+----+---------------+
|  1 | Yamada Taro   |
|  2 | Tanaka Hanako |
|  3 | Nagata Yuki   |
+----+---------------+
3 rows in set (0.00 sec)

参考: MySQLに外部ホストから接続できるように設定する

DB接続テスト2(phpからの接続)

vim index.php

編集内容

<?php
//phpinfo();

$dsn='mysql:dbname=test;host=192.168.33.21';
$user='root';
$pass='vagrant';
try{
  $db=new PDO($dsn,$user,$pass);
  $sql = "select * from sample";
  foreach($db->query($sql) as $row){
    echo($row['id'] . ":" . $row['name'] . "<br>");
  }
}catch(PDOException $e){
    die("die");
}
$db=null;

下記の表示がされていればOK

1:Yamada Taro
2:Tanaka Hanako
3:Nagata Yuki

box作成・追加

pc側で

cd C:\HashiCorp\Vagrant\work\testProject\appserver
rm package.box
vagrant halt
vagrant package
vagrant box add --name centos72-httpd-php-maria package.box
vagrant box list

centos72-httpd-php-maria が追加されていることを確認


前回: ゼロからphp7環境構築 - 1.DBサーバー設定
次回: ゼロからphp7環境構築 - 3.サンプルアプリ作成(laravel5)