1. TOPTOP
  2. インフラ

CentOS7,PHP7,MySQL5.6でWordPressサイトを構築 その9(PHP7のインストールと初期設定)

|

thumbnail

前回の記事(新しいタブで開く)では、バーチャルソフトの設定に付いてご紹介しました。今回はアプリケーションソフトウェアで、プログラミング言語ののひとつであるPHP7のインストールと初期設定の方法についてご紹介します。

PHPのインストール

まず、SSH接続でリモートサーバーに接続して、作業用ユーザーからroot権限をもつユーザに昇格した上で以下のコマンドを実行します。

さくらのVPS(httpd-2.4.6-45.el7.centos.x86_64)においてPHP7をインストールするためには、外部のリポジトリ(インターネット上の倉庫のようなところ)が必要となります。そのリポジトリがepelremiです。PHP7をインストールするためにはremiが必要ですが、そのremiを使うためにはあらかじめepelリポジトリをインストールしておく必要があります。

epelの確認

# yum list epel-release 
...
インストール済みパッケージ
epel-release.noarch 7-10

epelが入っているかどうか確認をするコマンドです。自分が契約しているさくらのVPSではすでにインストール済みでした。もし環境が異なり、epelがインストールされていない場合は、こちらの記事(新しいタブで開く)などを参考にして自分でインストールしてみましょう。

remiのインストール

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
...
更新中 / インストール中...
1:remi-release-7.3-2.el7.remi      ################################# [100%]
# yum update

epelがインストールされていることが分かりましたので、次はremiをインストールします。インストール終了後、外部から新しいパッケージを取り入れましたので、サーバーのアップデートを行います。

PHPのインストールと初期設定

PHPのインストール

# yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd php-mysqlnd php-xml
# php -v
PHP 7.0.24 (cli)

remiriリポジトリに同梱されている、PHPでプログラミングをするときに必要なライブラリをまとめてインストールします。インストールが完了すると、phpコマンドでバージョンを確認しましょう。

各ライブラリの意味については、ご自身で調べてみてください。どのようにPHPプログラミングをしたいかによって使用するライブラリは異なります。PHPの公式ドキュメント(新しいタブで開く)をよく確認をしてインストールをしましょう。

PHPの初期設定

次にPHPの初期設定を行います。

# cp /etc/php.ini /etc/php.ini.org

設定ファイルの内容を変更します。元の設定ファイルについて.orgをつけてコピーしておきます。

# vi /etc/php.ini
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese(コメントアウトを外す)
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off(コメントアウトを外す)
mbstring.detect_order = auto(コメントアウトを外す)
expose_php = Off
session.hash_function = sha512
session.cookie_httponly = On
session.cookie_secure = On

mbstring.language、mbstring.encoding_translation、mbstring.detect_orderには、”;(セミコロン)”でコメントアウトされていますので、そのセミコロンを削除します。それら以外の項目については、右辺の文字列を入力します。

session.cookie_httponly(クッキーのHttpOnly属性)

“session.cookie_httponly”とはJavaScriptからアクセスできないクッキーを設定することです。状態を”On”にすることでクロスサイトスクリプティング攻撃からクッキーを盗み出されることを防ぐことができます。

session.cookie_secure(クッキーのセキュア属性)

“session.cookie_secure”とはクッキーのセキュア属性のことを言います。状態を”On”にするとHTTPS通信の場合のサーバーにのみクッキーが送信されることになります。

# systemctl restart httpd

php.iniの設定変更ができたら、Webサーバーを再起動させて変更の内容を反映します。

PHPの動作確認

前回の記事(新しいタブで開く)でバーチャルホストの機能を利用して、異なるドキュメントルートディレクトリを設けましたので、それぞれのディレクトリ(hoge1とhoge2)でPHPが使用できるかどうか確認します。

hoge1ディレクトリの場合

centos7php7mysql5-6_wordpress_9_1

# cd /var/www/public_html/hoge1
# vi index.php
<?php
phpinfo();

index.phpの中でphpinfoという組み込み関数を入力すると、インストールしたPHP7の情報が表示されます。

hoge2ディレクトリの場合

centos7php7mysql5-6_wordpress_9_2

# cd /var/www/public_html/hoge2
# vi index.php
<?php
echo "Hello World from hoge2";

一方、文字の出力を意味するecho関数を入力すると任意の文字列が表示されます。これでPHP7が正常どおりにインストールできたことになります。次回の記事(新しいタブで開く)ではMySQLのインストールと設定についてご紹介します。