Twitter Facebook github

Amazon Linuxで nginx + php7 環境構築

以前書いた「nginx + php7 + Lumen な開発環境をVagrantでつくる」をAmazon Linuxに持って行くときの補填記事です。

AmazonLinuxはCentOS 6系ライクだから、EC2に持って行くことを前提とするならVagrantの開発環境も6系で作った方が良かった気がしている。。

ベースは上の記事内で紹介している通りだから、ここではAmazon Linuxで構築するときのコマンドを差分として備忘録に。

nginxはそのままインストール

違いとしては、Amazonのリポジトリがデフォルトで提供してくれているから、nginxのリポジトリをインストールする必要がなくなった。ちょっぴり楽に。

phpはちょっとハマる

(追記 2017/01/29)
下記は PHP 7.0.x ですが、追記時点で PHP 7.1 系がリリースされています。
7.1系のインストールだけ別の記事にしましたので、ご参考ください。
Amazon Linux に php7.1 をインストール

6系のremiリポジトリを入れてenablerepoするだけでしょ?って思っていたけど、何度やっても認識してくれなくて・・・

曲者なのが amzn-main のリポジトリを明示的に --disablerepo しないと、優先度の問題で remi-php70 が参照できないことと、自動で httpd の依存性解決を行ってくれないから、先にインストールしておく必要があること。

ちなみに php70 なら --enablerepo=remiだけですんなり入る。でもインストール先が標準のphpと異なる点が要注意。

PHPのパッケージ

phpのパッケージも、依存解決してくれないから先に自分でインストールしないといけないのもある。

それぞれ、
libltdl.so.7 でエラーになったときは libtool-ltdl が、
libvpx.so.1, libtiff.so.3 でエラーになったときは gd-last が、
libenchant.so.1 でエラーのときは enchant のインストールが必要。

サービスの起動と自動起動の設定

Amazon Linux や CentOS 6 を使っていればすごく基礎的だけれど、 systemctl の代わりに service と chkconfig で制御する。

そのほか

  • Lumenのインストールに必要な zip と unzip パッケージはデフォルトでインストールされていて、特にインストールする必要はない
  • nginxとphp-fpmの設定ファイルで指定したユーザーとグループは nginx を設定する
  • nginx の sendfile 設定はVirtualBoxのバグに起因する設定なので、本番ではお好みで

remi-php70 のリポジトリについて

公式のブログによると、「このレポジトリは開発用のバージョンも提供するから開発用に使ってね〜」って仰っている。なるほど。
かといって remi-safe の方はインストール先が奥まったところになるし、remi-php70 でもバージョン指定で入れておけば本番で使っても問題ないと思います。
どこか他に良いリポジトリを知っている方がいらっしゃれば教えてください。

所感

関係ないけど、履歴書って手書きはおろか、紙じゃなくてもよくないですか? LinkedIn がデファクトスタンダードみたいになって欲しいなあ。

コメントを残す

メールアドレスが公開されることはありません。