LoginSignup
4
2

More than 5 years have passed since last update.

Vagrant+ansibleでLAMP環境構築(4)

Last updated at Posted at 2016-03-06

ここまで

Vagrant で CentOS7 を起動し、ansible-playbook によって、LAMP 環境をインストールした、、、つもり

ansible-playbook の実行には成功したが、以下の問題点がある

  1. PHP のバージョンが古かった
    → これは単純に、OS の標準バージョンをインストールしたからなので、PHP7 をインストールするように手順を修正すれば解決するはず
  2. php-mysql をインストールしたはずなのに、インストールできてない?(phpinfo で pdo_mysql が表示されていない)
    → 多分だけど、php-mysql をインストールした後に MariaDB を削除したために依存性の影響で一緒に削除されている・・・?

今回は1つ目の PHP7 に対応する
2つとも解決したので内容をまとめる

PHP7 対応

playbook を修正する

ここらへんを参考に、playbook を修正してみる

playbook.yml(抜粋)
    - 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 destroyvagrant 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 を作成して、ブラウザから確認してみる

2016-03-06 23.42.56.png

PHP7 インストールは解決!!

MySQL5.7 対応

ここまでの時点で phpinfo の内容を確認すると、正しく pdo_mysql が入っているので、この後に mariadb-libs を削除しているのがやはり問題と思われる

そのため、インストール順序を入れ替えて再度実行してみる

playbook修正

playbook.yml
- 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 destroyvagrant 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 環境の構築は一旦これで完了とする

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2