AWSでZabbixを構築したときにハマったこと(EC2 + Zabbix3.0 + nginx + php-fpm)

# 教訓
何も考えずにインストールするとハマる。

# phpのバージョンが違った
sudo yum install php とした場合、PHPのバージョンは5.3です。
Zabbix3.0がサポートするphpのバージョンは5.4以上です。

パッケージの依存関係の解決で詰まることが多いので、すべて削除して入れ直すことをお勧めします。

``` console:
インストールされているphpのパッケージを確認する
$ yum list installed | grep php
パッケージの削除
$ yum remove (パッケージ名)
```

# パッケージがあるのにmissingと言われた

``` php:エラー
PHP bcmath extension missing (PHP configuration parameter --enable-bcmath).
PHP xmlwriter extension missing.
PHP xmlreader extension missing.
```

![スクリーンショット 2017-02-14 18.06.29.png](https://qiita-image-store.s3.amazonaws.com/0/71267/56eaf555-dd80-4a59-da39-57278e00444b.png)



インストールされているパッケージを調べても存在する・・・・:sweat_smile:

``` console:
$ yum list installed | grep php
php-cli.x86_64                       5.6.30-1.el6.remi             @remi-php56
php-common.x86_64                    5.6.30-1.el6.remi             @remi-php56
php-devel.x86_64                     5.6.30-1.el6.remi             @remi-php56
php-fpm.x86_64                       5.6.30-1.el6.remi             @remi-php56
php-gd.x86_64                        5.6.30-1.el6.remi             @remi-php56
php-mbstring.x86_64                  5.6.30-1.el6.remi             @remi-php56
php-mcrypt.x86_64                    5.6.30-1.el6.remi             @remi-php56
php-mysqlnd.x86_64                   5.6.30-1.el6.remi             @remi-php56
php-opcache.x86_64                   5.6.30-1.el6.remi             @remi-php56
php-pdo.x86_64                       5.6.30-1.el6.remi             @remi-php56
php-pecl-igbinary.x86_64             2.0.1-1.el6.remi.5.6          @remi-php56
php-pecl-jsonc.x86_64                1.3.10-2.el6.remi.5.6         @remi-php56
php-pecl-jsonc-devel.x86_64          1.3.10-2.el6.remi.5.6         @remi-php56
php-pecl-redis.x86_64                3.1.1-1.el6.remi.5.6          @remi-php56
php-pecl-xdebug.x86_64               2.5.0-1.el6.remi.5.6          @remi-php56
php-pecl-zip.x86_64                  1.13.5-1.el6.remi.5.6         @remi-php56
php56.x86_64                         5.6.29-1.131.amzn1            @amzn-updates
php56-bcmath.x86_64                  5.6.29-1.131.amzn1            @amzn-updates
php56-cli.x86_64                     5.6.29-1.131.amzn1            @amzn-updates
php56-common.x86_64                  5.6.29-1.131.amzn1            @amzn-updates
php56-gd.x86_64                      5.6.29-1.131.amzn1            @amzn-updates
php56-jsonc.x86_64                   1.3.6-1.19.amzn1              @amzn-main
php56-mbstring.x86_64                5.6.29-1.131.amzn1            @amzn-updates
php56-process.x86_64                 5.6.29-1.131.amzn1            @amzn-updates
php56-xml.x86_64                     5.6.29-1.131.amzn1            @amzn-updates
```

しかし、よくみてみると・・・
Remiリポジトリからインストールしたもの、amazonのリポジトリからインストールしたものが混在している状態です。
これが悪かったようで、うまくパッケージが読み込めていなかった模様。
ググってでてきた情報をもとに何も考えずにインストールした結果です:innocent:

php関連のパッケージをすべてremoveして、amazonのリポジトリからインストールしなおしました。

``` console:
本当に必要だったパッケージ群
$ yum install mysql-server httpd24 php56 php56-gd php56-mbstring php56-mysqlnd php56-bcmath php56-bcmath php56-gmp
```

``` console:
$ yum list installed | grep php
php56.x86_64                         5.6.29-1.131.amzn1            @amzn-updates
php56-bcmath.x86_64                  5.6.29-1.131.amzn1            @amzn-updates
php56-cli.x86_64                     5.6.29-1.131.amzn1            @amzn-updates
php56-common.x86_64                  5.6.29-1.131.amzn1            @amzn-updates
php56-fpm.x86_64                     5.6.29-1.131.amzn1            @amzn-updates
php56-gd.x86_64                      5.6.29-1.131.amzn1            @amzn-updates
php56-gmp.x86_64                     5.6.29-1.131.amzn1            @amzn-updates
php56-jsonc.x86_64                   1.3.6-1.19.amzn1              @amzn-main
php56-mbstring.x86_64                5.6.29-1.131.amzn1            @amzn-updates
php56-mysqlnd.x86_64                 5.6.29-1.131.amzn1            @amzn-updates
php56-pdo.x86_64                     5.6.29-1.131.amzn1            @amzn-updates
php56-process.x86_64                 5.6.29-1.131.amzn1            @amzn-updates
php56-xml.x86_64                     5.6.29-1.131.amzn1            @amzn-updates

```
パッケージ一覧がすっきり。
これで解決。

# php.iniの設定が必要

[Zabbixサーバによる統合監視(2) 〜Zabbixサーバ(2.2)を設定する〜](http://blog.jicoman.info/2014/05/zabbix_server-setting/ "Zabbixサーバによる統合監視(2) 〜Zabbixサーバ(2.2)を設定する〜")

# php-fpm.sockのパーミッションがおかしくて「502 Bad Gateway」になる

[nginxでphpのパッケージを追加したら’502 Bad Gateway’になってしまったときの対処法](http://kawatama.net/web/1352 "nginxでphpのパッケージを追加したら’502 Bad Gateway’になってしまったときの対処法")

# psetup.phpのリダイレクトから抜け出せない

[Zabbix 3.0の初期設定画面(Welcome)画面から「Check of pre-requisites」画面に進まない](http://www.zabbix.jp/node/3627 "Zabbix 3.0の初期設定画面(Welcome)画面から「Check of pre-requisites」画面に進まない")

# 最後に
無事にZabbixの画面が表示されるようになりました！
ClowdWatchと連携してサーバー監視する準備が整いました、むしろここからが本番ですよね！

Zabbixをはじめてインストールしたのですが、結構時間かかってしまいました。
おかげでインフラのことが少しずつですが、わかってきたので良かったかな・・・。
何回も繰り返しやらないとなかなか身につかないですよね、頑張ります。