Amazon Linux 2へnginxとphp7.2、opcacheのインストール

Ubuntu + KVMにAmazon Linux 2をインストールしてみました。
KVMでAmazon Linux 2の仮想環境を構築

この環境に、nginx + php 7.2をインストールします。
opcacheもインストールしてphpプログラムのキャッシュを試してみます。


nginxのインストール



Amazon Linux 2のパッケージ管理はyumを使用しています。
基本的にパッケージのインストールはyumで行うのですが、一部のパッケージはAmazon Linux 2用にカスタムされており、
専用のコマンドでインストールを行います。

「amazon-linux-extras」で用意されている専用パッケージの一覧が表示されます。


$ amazon-linux-extras
0 ansible2                 available    [ =2.4.2 =2.4.6 ]
2 httpd_modules            available    [ =1.0 ]
3 memcached1.5             available    [ =1.5.1 ]
4 nginx1.12                available    [ =1.12.2 ]
5 postgresql9.6            available    [ =9.6.6 =9.6.8 ]
6 postgresql10             available    [ =10 ]
8 redis4.0                 available    [ =4.0.5 =4.0.10 ]
9 R3.4                     available    [ =3.4.3 ]
10 rust1                    available    \
        [ =1.22.1 =1.26.0 =1.26.1 =1.27.2 =1.31.0 ]
11 vim                     available    [ =8.0 ]
13 ruby2.4                 available    [ =2.4.2 =2.4.4 ]
15 php7.2                 available    \
        [ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 ]
16 php7.1                 available    [ =7.1.22 =7.1.25 ]
17 lamp-mariadb10.2-php7.2 available    \
        [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5
         =10.2.10_7.2.8 =10.2.10_7.2.11 =10.2.10_7.2.13 ]
18 libreoffice             available    [ =5.0.6.2_15 =5.3.6.1 ]
19 gimp                     available    [ =2.8.22 ]
20 docker=latest            enabled     \
        [ =17.12.1 =18.03.1 =18.06.1 ]
21 mate-desktop1.x         available    [ =1.19.0 =1.20.0 ]
22 GraphicsMagick1.3        available    [ =1.3.29 ]
23 tomcat8.5                available    [ =8.5.31 =8.5.32 ]
24 epel                     available    [ =7.11 ]
25 testing                 available    [ =1.0 ]
26 ecs                     available    [ =stable ]
27 corretto8                available    [ =1.8.0_192 =1.8.0_202 ]
28 firecracker             available    [ =0.11 ]
29 golang1.11             available    [ =1.11.3 ]
30 squid4                 available    [ =4 ]




nginxをインストールするには以下のコマンドを実行します。


$ sudo amazon-linux-extras install nginx1.12



インストールが終わったらnginxを起動


$ sudo systemctl start nginx.service



ブラウザでhttp://[サーバーIP]/を表示すると、webページが表示されるはずです。

932_01.png

以下のコマンドで、OS起動時にnginxも起動するよう設定しておきます。


$ sudo systemctl enable nginx.service






php 7.2とopcacheのインストール



続いてphp7.2とopcacheのインストールを行います。
php7.2はamazon-linux-extras、opcacheはyumコマンドでインストールしました。


$ sudo amazon-linux-extras install php7.2
$ sudo yum install php-opcache



インストールが終わったらphp-fpmの設定を行います。
今回、php-fpmはunixソケットではなくtcpで待ち受けるよう構成しました。


$ sudo vi /etc/php-fpm.d/www.conf



listenの箇所を修正。


;listen = /run/php-fpm/www.sock
listen = 127.0.0.1:9000




続いてnginxのphpに関する設定を変更します。


$ sudo vi /etc/nginx/conf.d/php-fpm.conf



変更したphp-fpmのlistenと合わせます。


upstream php-fpm {
        #server unix:/run/php-fpm/www.sock;
        server 127.0.0.1:9000;
}






phpの動作確認



設定を反映するため、nginxをリロードします。


$ sudo systemctl reload nginx.service



php-fpmを起動。


$ sudo systemctl start php-fpm.service



確認用にphpinfoを表示するプログラムを作成。


$ sudo vi /usr/share/nginx/html/info.php



内容は以下の通り。


<?php phpinfo();



ブラウザでhttp://[サーバーIP]/info.phpを表示すると、phpinfoの内容が確認できました。

932_02.png

動作確認が取れたら、php-fpmを自動起動するよう変更しておきます。


$ sudo systemctl enable php-fpm.service





opcacheの動作確認



opcacheが動作しているか確認する。

以下のプログラムをダウンロードして利用しました。
https://gist.githubusercontent.com/ck-on/4959032/raw/ad6362bff017f3c59c96ab395e3308ed52650cab/ocp.php


$ sudo wget -O /usr/share/nginx/html/ocp.php https://gist.githubusercontent.com/ck-on/4959032/raw/ad6362bff017f3c59c96ab395e3308ed52650cab/ocp.php



ブラウザでhttp://[サーバーIP]/ocp.phpを表示し、以下のようにキャッシュ情報が表示されればopcacheは有効となっています。

932_03.png



次は何か適当なphpフレームワークを動かしてみようと思います。


【参考サイト】

Amazon Linux 2にExtrasレポジトリからNginxをインストールする

AWSのEC2で行うAmazon Linux2(MySQL5.7)環境構築

https://blog.apar.jp/web/9185/

関連記事

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ