投稿日:

CentOS7 + MariaDB + Nginx + PHP7 + GCP (+WordPress) の環境構築メモ


利用していたホスティングサービスが2月末にサービス終了するということで、急遽お引越しをしなければならなくなりました。どうせなら、最新環境にしてやろうということで、インフラ苦手ながら Google Cloud Platform に標題の環境構築をしてみたメモ書きです。

多くは参考サイトの記述ですが、一部に参考ページになかったポイントとかあったりしたので、ここにもまとめます。

今回は次のような環境を構築します。

  • CentOS 7.2.1511 (GCPのイメージにあったもの)
  • PHP 7.0.2
  • nginx 1.8.1
  • MariaDB Server 5.5.44

準備

GCP環境

Google Cloud Platform の Compute Engine で「CentOS 7.2.1511」を導入して開始しました。

プレーンな CentOS 環境みたいですね。インスタンス作成時に http/https アクセスを許可しておいたので、本稿でポートを開ける的な話はありません。

SELINUX 無効化

すみません。これでいきなり何か飛んできそうですが、とりあえず環境構築のハードルを下げるために……(・_・;

必要なツールをインストール

まず必要そうなツールをインストールしました。

 

PHP

必要なライブラリを準備

まず、PHP が必要としそうなライブラリをインストールしていきます。

libmcrypt を yum で入れていないのは何でだっただろ?って記事書きながら思ったのですが、参考サイトのままで何も考えてなかったのかも…。

pcre は yum で入れようとすると既に最新版が入っていると言われるのですが、php の configre でのパス指定がうまくいかない(必要なリソースが見つからないと言われる)ので、個別導入しました。このあたりも本当はもっとうまくやれるはず。

それと、pcre の./configure で –enable-utf8 –enable-unicode-properties のオプションを忘れないこと。僕が参考にした記事ではどれにも入ってなかったんですが、この指定が無いと php の preg_* 系関数でマルチバイトに関するエラーを吐いてしまいました。

PHP本体のインストール

configure のオプションは悩みますね。色々しらべて下記の通りとしました。とりあえず WordPress はちゃんと動いています。インストールパスもこれで適切だと思う。

パス指定は環境に合わせて。pcre は(もちろん)入れた場所を指定。参考にした記事では、もっと浅い階層になっていて検索するルートかな?と思ったりしてたんですが、なかなか見つけてくれずに試行錯誤した結果、普通に入れた場所を指定したら通りました。

とはいえ、–with-jpeg-dir=/usr 以降の「/usr」の指定は参考にした記事そのまま。どなたか意味を教えてください…。

 

php-fpm

Nginx と FastCGI でやりとりするための php-fpm のサービスを準備します。
php-fpm 自体は、PHP のインストール時に一緒に導入されています。

設定

2つの設定ファイルをデフォルトファイルからコピーして、とりあえずそれぞれ以下のように修正します。

2つ目。

起動スクリプトを準備

正直、このくだりの意味(必要性?)がわかっていなくて、参考ページそのままです。

サービスに追加

起動

これでこの子はおとなしく 9000 ポートで待ち受けしてくれるようになるみたいです(ポートの指定は、上でもちょっと弄った設定ファイルの /usr/local/php7/etc/php-fpm.d/www.conf にあります)。

Nginx

インストール

まずはリポジトリの追加(後で別記事で普通に yum で入っていたような例も見かけたので、これしなくても入ったのかも)。

そしてインストール。

 

設定

Nginx 初体験の僕はドキドキでした。とりあえずはデフォルト設定を変更するパターンでポイントだけ。

以下は、WordPress のために設定したものです。

この中の 10-15 行目が php-fpm との連携のポイントですね。拡張しが .php のものを 127.0.0.1:9000 に通しています。php-fpm は 9000 番ポートを待ち受けている感じですね。

ちなみに、22-24 行目が、WordPress のためのリライト設定です。

起動

これで http で参照できるはず。
指定したドキュメントルートに、index.php とか置いて、phpinfo() でもやってみたください。

 

MariaDB

MySQL 互換の新しいデータベースらしいですね。この件で初めて知りました(←不勉強)。なんかこれからのメインストリームな気がしたので、導入することにしました。

インストール

ちなみにコマンドまで MySQL 互換。

自動起動設定

サービスの起動

設定

とりあえずrootパスワード設定。

それから、とりあえずWordPress用にテーブルを作ってみました。

 

WordPress

おまけで。

  • お引越しは簡単。基本いつもどおり。PHP7 / MariaDB ともに環境由来の問題は今のところ無し。
  • メール送信のために、GCPの環境では postfix の設定が必要でした。
  • Nginx も初めてだったので、rewrite 設定にアタフタした。ネットで見つかる記事や、なんと Codex の公式記事も NG(configエラーさえ起してくれた)。でも焦らず。Nginx の公式にバッチリの回答がありました。こちらを参考に修正して無事クリア。
    https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/

 

参考ページ

参考にさせていただいたページ。感謝です!

コメントを残す