Help us understand the problem. What is going on with this article?

AWS EC2 Amazon Linux 2016.09 + nginx + PHP7.0でサーバー構築

More than 3 years have passed since last update.

概要

EC2でAmazonLinuxのインスタンスを新規作成した状態から、/var/www/html以下に置いたindex.phpを表示させるまでの流れです。
今回、OSはAmazon Linux 2016.09を使っていますが、それ以前のバージョンだとPHP7がリポジトリにないため手順が異なるようです。

構成

yumをアップデート

SSHログイン後、セキュリティ警告が出ていて、yum updateを促されたのでupdateしておきます。

$ sudo yum update

PHP7をインストール

今までは、外部リポジトリから取得する必要があったようですが、
Amazon Linux 2016.09 からリポジトリに追加されたようで、簡単です。

$ sudo yum install php70

PHPの必要ライブラリを追加

MySQL、マルチバイト文字対応、XML、mcrypt、php-fpm(後述)を追加します。
必要に応じて追加してください。最低限、php-fpmさえあればindex.phpは表示できると思います。

$ sudo yum install php70-mysqlnd php70-mbstring php70-mcrypt php70-pdo php70-xml php70-fpm

nginxのインストール

$ sudo yum install nginx

nginxの設定を変更

ルートを/var/www/htmlに指定し、phpを処理できるように設定します。

/etc/nginx/nginx.conf
        root         /var/www/html;
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

php-fpmの設定を変更

/etc/php-fpm.d/www.conf
・・・

user = nginx
group = nginx

・・・

突然出てきたphp-fpmってなんだ?と思い、調べてみました。

参考
Qiita - nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する

ApacheではApache自身に組み込まれたPHPモジュールがPHPを実行するのに対して、nginxはphp-fpmにPHPを実行してもらっている。Apacheでは毎回プロセスを生成するため遅いが、nginx + php-fpmでは初回に生成したプロセスを再利用するため高速に実行できる。という解釈をしました。

php-fpmとnginxをスタート

$ sudo service start
$ sudo service php-fpm start

(サービスがなければ、/etc/inf.d/内のサービス名を確認)

動作確認

ルートにindex.phpファイルを作成して、お決まりのphpinfo()を表示させます。

$ sudo vi /var/www/html/index.php
/var/www/html/index.php
<?php
phpinfo();
?>

インスタンスのドメインにアクセスしたところ、
正しくphpinfoが表示されました!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした