php7をVagrant環境にインストールし開発効率化[nginxの設定も]

f:id:media-gatch:20181216172759j:plain

どうもー・ω・ガッチ(@gatchsite)です。

php7をvagrant環境(CentOS7)にインストールして、wordpressの開発環境を作っています。 vagrantの使い方に慣れておくと環境構築がスムーズになるのでおすすめです。

今回は、php7のインストール方法WEBサイト構築、wordpress導入に必要なモジュールについてもまとめています。

プログラム勉強したいのに、その前の環境構築で挫折してしまう、、、 なんて自体をよく起こしていましたので、そんな方に読んでもらえたらと思います。

記事の内容はこちら

php7のインストール

phpのインストールは、3つの段階に別れています。 リポジトリの追加、本体のインストール、モジュールのインストールです。

リポジトリは、様々なプログラムを集めたサーバーというイメージです。 そこに登録されているプログラムは誰でもダウンロードして使うことができます。

epelリポジトリと、remiリポジトリの追加

phpは、2つのリポジトリを追加する必要があります。
ちなみに、WEBサーバーのnginxは、1つのリポジトリ追加でOKです。nginxのインストールが気になる方はこちらを。

Vagrantでnginx起動してもブラウザから見れない時の対処法

追加するには、以下のコマンドをターミナル(コンソール)で実行します。

epelリポジトリの追加

$ sudo yum -y install epel-release

remiリポジトリの追加

$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

php7.3のインストール

本体のインストールは、以下のコマンドで実行します。

$ sudo yum -y install --enablerepo=remi,remi-php73 php

--enablerepoでインストール先のリポジトリを指定しています。 phpでは、remiリポジトリを使用します。最新版をインストールしたかったので、remi-php73と具体的なバージョンのリポジトリも指定しています。

phpで使用するモジュールのインストール

phpは様々なモジュールがあり、インストールすることで便利な機能をすぐに使えるようにできます。

その中で必須であると思われるものを3つほどインストールしておくと便利かと思います。

$ sudo yum -y install --enablerepo=remi,remi-php73 php-mysql php-mbstring php-gd

php7の設定

設定は特に必要ありません。
インストールして、ブラウザからphpを実行できるまでをまとめていますので、特にいじる必要はありません。

サイトを運営していく中で、表示速度の改善やセキュリティなどの点で設定をチューニングする必要は出てくるかと思いますので、設定はする場合は、以下のファイルを変更することでできますのでそれを覚えてもらえれば良いかなと。

$ vi /etc/php.ini

php-fpmのインストール

WEBサーバーがapacheの場合は必要ありませんので、飛ばしてください。 nginxで開発環境を構築している、WEBサーバーがnginxという方は、php-fpmをインストールする必要があります。

インストールは以下のコマンドです。

$ sudo yum -y install --enablerepo=remi-php73 php-fpm

php-fpmとは

nginxで動かすために必要なるモジュールです。
正確には、公式サイトをご確認ください。

php公式サイト

イメージとしては、nginxとphpをつなぐ役割をしてくれるプログラムです。 apacheの場合も実は同じようはものがあるのですが、apacheがデフォルトでそのモジュールを読み込んでいるためにphpで使えるようです。

FastCGIとは

公式サイトにFastCGIという言葉がありますが、以下のサイトがわかりやすかったので気になる方は読んでみてください。

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

php-fpmの設定変更

php-fpmをインストールしたら、nginxで使用できるように設定を変更します。 やることは、使用ユーザーの変更、nginxとの接続方法の変更です。

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

www.confを以下のように変更します。

- user = apache
- group = apache
+ user = nginx
+ group = nginx
+ listen = /var/run/php-fpm/php-fpm.sock
+ listen.owner = nginx
+ listen.group = nginx

nginxの設定変更

nginxの設定もphpwが動作するように変更します。 xxxの部分は、自分でわかりやすい名前でOKです。 ※/etc/nginx/ocnf.d/以下のconfファイルはnginxが全て設定ファイルだと認識して読み込んでくれます。

$ sudo vi /etc/nginx/ocnf.d/xxx.conf

xx.confファイル

location / {
   root   /vagrant/wordpress;
   index  index.html index.htm;
   fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
}

phpinfoでインストール確認

最後にphpinfo関数を使って確認をしてみましょう。

上記のnginxの設定では、/vagrant/wordpress/がWEBサイトとして公開されているので、 その下にindex.phpを作成します。

$ vi /vagrant/wordpress/index.php

index.phpに以下を記述します。

<?php
echo phpinfo();
?>

ブラウザから、公開しているサイトのURLを開いてみると、phpの情報が表示されます。

vagrantの設定を特にいじっていない場合は、以下のアドレスになるかと思います。

http://192.168.33.10/

vagrantの設定などについては、以下を参照ください。

vagrantとvirtualboxでmacOSに仮想環境を構築
Vagrantでnginx起動してもブラウザから見れない時の対処法

まとめ

php7をVagrant環境にインストールする方法をまとめました。 phpを使えるようになると、よりWEB制作の幅が広がるかと思いますので、 ぜひやってみてもらえたら嬉しいです。

今後は、mysqlのインストールや、wordpressの職位設定などもまとめていく予定です。