ここまで
Vagrant で CentOS7 を起動し、ansible-playbook によって、LAMP 環境をインストールした、、、つもり
ansible-playbook の実行には成功したが、以下の問題点がある
- PHP のバージョンが古かった
→ これは単純に、OS の標準バージョンをインストールしたからなので、PHP7 をインストールするように手順を修正すれば解決するはず - php-mysql をインストールしたはずなのに、インストールできてない?(phpinfo で pdo_mysql が表示されていない)
→ 多分だけど、php-mysql をインストールした後に MariaDB を削除したために依存性の影響で一緒に削除されている・・・?
今回は1つ目の PHP7 に対応する
2つとも解決したので内容をまとめる
PHP7 対応
playbook を修正する
ここらへんを参考に、playbook を修正してみる
- name: epel リポジトリ追加
yum: name=https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- name: remi リポジトリ追加
yum: name=https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- name: PHP インストール
yum: name={{item}}
with_items:
- php70w
- php70w-mbstring
- php70w-mysql
notify:
- restart httpd
- name: PHPをタイムゾーンの設定
replace: >
dest=/etc/php.ini
regexp="^;date\.timezone ="
replace="date.timezone = Asia/Tokyo"
playbook 実行
MySQL 部分をコメントアウトした状態で、再度 playbook を実行する
が、その前に vagrant のイメージをクリーンな状態に戻すため、
vagrant destroy
→vagrant up
する
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [10.0.0.5]
TASK [OS 最新化] ******************************************************************
changed: [10.0.0.5]
TASK [DeveloperTool インストール] ****************************************************
changed: [10.0.0.5]
TASK [vim インストール] **************************************************************
changed: [10.0.0.5]
TASK [Apache インストール] ***********************************************************
changed: [10.0.0.5]
TASK [Apache 起動] ***************************************************************
changed: [10.0.0.5]
TASK [.htaccessを有効にする] *********************************************************
changed: [10.0.0.5]
TASK [epel リポジトリ追加] ************************************************************
changed: [10.0.0.5]
TASK [remi リポジトリ追加] ************************************************************
changed: [10.0.0.5]
TASK [PHP インストール] **************************************************************
changed: [10.0.0.5] => (item=[u'php70w', u'php70w-mbstring', u'php70w-mysql'])
TASK [PHPをタイムゾーンの設定] ***********************************************************
changed: [10.0.0.5]
RUNNING HANDLER [restart httpd] ************************************************
changed: [10.0.0.5]
PLAY RECAP *********************************************************************
10.0.0.5 : ok=12 changed=11 unreachable=0 failed=0
正常に処理が完了したので、再度 info.php を作成して、ブラウザから確認してみる
PHP7 インストールは解決!!
MySQL5.7 対応
ここまでの時点で phpinfo の内容を確認すると、正しく pdo_mysql が入っているので、この後に mariadb-libs を削除しているのがやはり問題と思われる
そのため、インストール順序を入れ替えて再度実行してみる
playbook修正
- hosts: DevServer1
become: yes
tasks:
#
# システム
#
- name: OS 最新化
yum: name=* state=latest
- name: DeveloperTool インストール
yum: name="@Development tools"
- name: vim インストール
yum: name=vim
#
# MySQL 5.7
#
- name: MariaDB 削除
yum: name=mariadb-libs state=removed
- name: MySQL5.7 リポジトリ追加
yum: name=http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm state=present
- name: MySQL5.7 インストール
yum: name=mysql-community-server
- name: MySQL5.7 起動
service: name=mysqld state=started enabled=yes
#
# Apache
#
- name: Apache インストール
yum: name=httpd
- name: Apache 起動
service: name=httpd state=started enabled=yes
- name: .htaccessを有効にする
replace:
dest=/etc/httpd/conf/httpd.conf
regexp='AllowOverride None'
replace='AllowOverride All'
notify:
- restart httpd
#
# PHP
#
- name: epel リポジトリ追加
yum: name=https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm state=present
- name: remi リポジトリ追加
yum: name=https://mirror.webtatic.com/yum/el7/webtatic-release.rpm state=present
- name: PHP インストール
yum: name={{item}}
with_items:
- php70w
- php70w-mbstring
- php70w-mysql
notify:
- restart httpd
- name: PHPをタイムゾーンの設定
replace: >
dest=/etc/php.ini
regexp="^;date\.timezone ="
replace="date.timezone = Asia/Tokyo"
handlers:
- name: restart httpd
service: name=httpd state=restarted
playbook 実行
再度vagrant destroy
→vagrant up
し、playbook を実行する
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [10.0.0.5]
TASK [OS 最新化] ******************************************************************
changed: [10.0.0.5]
TASK [DeveloperTool インストール] ****************************************************
changed: [10.0.0.5]
TASK [vim インストール] **************************************************************
changed: [10.0.0.5]
TASK [MariaDB 削除] **************************************************************
changed: [10.0.0.5]
TASK [MySQL5.7 リポジトリ追加] ********************************************************
changed: [10.0.0.5]
TASK [MySQL5.7 インストール] *********************************************************
changed: [10.0.0.5]
TASK [MySQL5.7 起動] *************************************************************
changed: [10.0.0.5]
TASK [Apache インストール] ***********************************************************
changed: [10.0.0.5]
TASK [Apache 起動] ***************************************************************
changed: [10.0.0.5]
TASK [.htaccessを有効にする] *********************************************************
changed: [10.0.0.5]
TASK [epel リポジトリ追加] ************************************************************
changed: [10.0.0.5]
TASK [remi リポジトリ追加] ************************************************************
changed: [10.0.0.5]
TASK [PHP インストール] **************************************************************
changed: [10.0.0.5] => (item=[u'php70w', u'php70w-mbstring', u'php70w-mysql'])
TASK [PHPをタイムゾーンの設定] ***********************************************************
changed: [10.0.0.5]
RUNNING HANDLER [restart httpd] ************************************************
changed: [10.0.0.5]
PLAY RECAP *********************************************************************
10.0.0.5 : ok=16 changed=15 unreachable=0 failed=0
正常に動作し、phpinfo でも pro_mysql が表示された
試しに MySQL に適当な DB、テーブルを作成し、そこに対して SELECT するサンプルソースを実装し、ブラウザから実行してみたらデータが表示されたので、LAMP 環境の構築は一旦これで完了とする