Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
25
Help us understand the problem. What is going on with this article?
@nbapps

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が表示されました!

25
Help us understand the problem. What is going on with this article?
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
nbapps
iOS/Androidアプリ開発を中心に、Flutter、Laravel、node.jsなどもやっています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
25
Help us understand the problem. What is going on with this article?