ホーム >  PHP >  VagrantのCentOS7にPHP7+WordPressをインストール


Posted:2017/08/17 9:00:13 AM|Category : PHP

VagrantのCentOS7にPHP7+WordPressをインストール

Vagrantで作ったCentOS7環境にWordPressをインストールします。PHP7を使います。

PHP7を導入する

まず、CentOS7にPHP7を導入します。PHP7はPHP5系と比べて爆速との噂です。デフォルトの状態でPHPをyumから導入すると、PHP5.4と古いバージョンが導入されてしまいますので、Remiリポジトリを利用します。今回は、自分が運営しているプログをPHP7へ移行するにあたり、開発環境を作ります。

作業の流れ

  1. EPEL・Remiのリポジトリのインストールします。
  2. PHP7のインストールします。
  3. apacheのインストールします。
  4. irewalld, SELinuxを停止します。
  5. phpの設定します。
  6. phpをhttpdで動かす設定します。
  7. MariaDBを削除し、MySQLをインストールします。DataBaseを作成します。
  8. WordPressをインストールします。

準備

Vagrantでゲスト環境(仮想環境)を作ります。

①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。

VirtualBoxをインストールする for Ubuntu

②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。

Vagrantをインストールしてテスト環境を作る for Ubuntu

ホスト環境

OS Ubuntu 16.04.1 LTS 64bit
Virtualbox 5.1
Vagrant 1.9.5

ゲスト環境

OS CentOS 7.1.1503
MySQL 5.7.19
Apache 2.4.6
php 5.6

Vagrantへログイン

①【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。

cd vagrant/wpphp7/

②【ホスト環境】仮想マシンを起動します。

vagrant up

③【ホスト環境】ログインします。

vagrant ssh

環境の確認

VagrantでCentoOS7を立ち上げたばかりの環境を利用します。

①カーネルのバージョンを確認します。

uname -r

3.10.0-229.el7.x86_64

②rootにログインします。

sudo -i

③パッケージをアップデートします。

yum update -y

EPEL・Remiのリポジトリのインストール

標準のyumでは、PHP5.4が導入されるので、Remiリポジトリを追加してPHP7を導入していきます。

①Remiリポジトリの追加にはEPELリポジトリが必要なので、先にインストールします。

yum -y install epel-release

②EPELのリポジトリを明示的に使用するため、インストールされたEPELのリポジトリの設定ファイル「/etc/yum.repos.d/epel.repo」を編集します。

vi /etc/yum.repos.d/epel.repo

以下のように編集します。

[epel]
:(略)
enabled=1
↓変更
enabled=0

③Remiのリポジトリを追加します。

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

④Remiのリポジトリをインストールします。

rpm -Uvh remi-release-7.rpm

Remiリポジトリの場合は、デフォルトでyumコマンドの実行時にremiのリポジトリは自動的には使用されないようになっています。この設定は、Remiのリポジトリの設定ファイル「/etc/yum.repos.d/remi.repo」を見ればわかります。

vi /etc/yum.repos.d/remi.repo

[remi]
:(略)
enabled=0

⑤remi-safeというリポジトリが自動的に使用されるようになっています。こちらを明示的に使用するため、リポジトリの設定ファイル「/etc/yum.repos.d/remi-safe.repo」を、以下のように編集します。

vi /etc/yum.repos.d/remi-safe.repo 

[remi-safe]
:(略)
enabled=1
↓変更
enabled=0

PHP7のインストール

①php7をインストールします。

yum -y install --enablerepo=remi,epel,remi-php70 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlnd

②バージョンを確認します。

php -v
PHP 7.0.22 (cli) (built: Aug  2 2017 09:39:55) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

apacheのインストール

①apacheをインストールします。

yum -y install httpd

firewalld, SELinux停止

①本番用ではfirewallを使うべきですが、開発環境で確認する時は停止しています。

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

②apacheを自動起動設定します。

# apache起動
systemctl start httpd
# apache自動起動
systemctl enable httpd.service

③ホスト環境のブラウザから、以下のURLを入力します。vagrantのipアドレスは「192.168.33.15」とします。

http://192.168.33.15

以下のように表示されます。

phpの設定

①phpの設定のため、php.iniを編集します。

cp /etc/php.ini /etc/php.ini.org
vi /etc/php.ini

以下のように変更します。

# 以下のように変更(変更箇所のみ抜粋)
default_charset = "UTF-8" 
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 
mbstring.substitute_character = none; 
mbstring.func_overload = 0 
mbstring.strict_detection = Off 
mbstring.http_output_conv_mimetype=

phpをhttpdで動かす設定

①httpd.confを編集します。

vi /etc/httpd/conf/httpd.conf

以下のように編集します。

# 変更前 #Options Indexes FollowSymLinks
Options Includes ExecCGI FollowSymLinks

# 変更前 AllowOverride None
AllowOverride All

# 以下のようにコメントアウトする
# AddDefaultCharset UTF-8

# 以下を追記
AddType text/css .css
AddType text/javascript .js

②httpdを再起動します。

systemctl restart httpd

③php動作確認用ページ作成します。

touch /var/www/html/phpinfo.php
vi /var/www/html/phpinfo.php

以下のように記述します。

# 以下を入力、保存
<?php phpinfo(); ?>

④ホスト環境のブラウザから、以下のURLを入力します。vagrantのipアドレスは「192.168.33.15」とします。

http://192.168.33.15/phpinfo.php

MySQLのインストールと設定

CentOS7から、データベースサーバがMySQLからMariaDBになります。機能はだいたい同じです。しかし、今回はmariadbを削除し、MySQLをインストールします。

①mariaDBを削除します。

yum -y remove mariadb-libs.x86_64

②リポジトリを追加します。

yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

③MySQLをインストールします。

yum -y install mysql-community-server

④バージョンを確認します。

mysqld --version
mysqld  Ver 5.7.19 for Linux on x86_64 (MySQL Community Server (GPL))

⑤MySQL開始し、自動起動設定を行います。

systemctl start mysqld
systemctl enable mysqld

⑥初期設定を行います。

mysql_secure_installation

あれ??

Access denied for user 'root'@'localhost' (using password: YES)

と言われて初期設定できませんでした。

ググッてみたところ、MySQLのrootの初期パスワードは無いとの情報が多かったのです。しかし、本当は初期パスワードが何か設定されているらしく、MySQL5.7では初期パスワード(ランダム文字列)が発行されています。今回は、rootユーザーのパスワードを「root」に変更したます。

⑦パスワードを初期設定します。一旦MySQLを停止して、ユーザ権限チェックをスキップしつつMySQLを起動します。

cat /var/log/mysqld.log | grep "temporary password"

2017-08-15T07:47:53.673930Z 1 [Note] A temporary password is generated for root@localhost: *****

*****が初期設定のパスワードです。

⑧MySQLの初期データの設定を行います。パスワードは⑦の初期設定パスワードを入力し新しいパスワードを設定します。

mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: 初期パスワードを入力する

The existing password for the user account root has expired. Please set a new password.

New password: 新しいパスワードを入力する

Re-enter new password: 再度同じ新しいパスワードを入力する

あとは全部「y」です

新しいパスワードは、英大文字小文字記号数字を含んだ8文字以上のパスワードを入力しなければなりません。

⑨ログインして、現在のパスワードのポリシー(決まり事)を表示します。

mysql -u root -p
mysql> SHOW GLOBAL VARIABLES LIKE 'validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

初期設定では、英大文字小文字記号数字を含んだ8文字以上のパスワードを入力しなければなりません。

⑩パスワードをrootにするため、「validate_password_length = 4」、「validate_password_policy = LOW」に設定します。

mysql> SET GLOBAL validate_password_length=4;
mysql> SET GLOBAL validate_password_policy=LOW;
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+

⑪rootユーザのパスワードをrootに変更し、ログアウトします。

mysql> set password for root@localhost=password('root');
mysql> quit

⑫my.cnfを修正します。

vi /etc/my.cnf

以下のように記述します。

# 以下を追記
character-set-server = utf8
default_password_lifetime = 0

⑬再度ログインし、wpという名前のdatabaseを作成します。

mysql -u root -p
mysql> create database wp;
mysql> grant all privileges on wp.* to wp@localhost identified by 'root';
mysql> quit

WordPressのインストール

①wordpressをダウンロードするディレクトリへ移動します。

cd /tmp

②最新版をダウンロードし、解凍します。

wget http://ja.wordpress.org/latest-ja.tar.gz
tar zxvf latest-ja.tar.gz

③コピーしてapacheユーザとグループに権限を設定します。

cp -r wordpress /var/www/
chown -R apache.apache /var/www/wordpress

④httpd.confを修正します。ドキュメントルートをWordPressにします。

# 変更前 DocumentRoot "/var/www/html
DocumentRoot "/var/www/wordpress

# 変更前 <Directory "/var/www/html">
<Directory "/var/www/wordpress">

⑤httpdを再起動します。

systemctl restart httpd

⑥ホスト環境のブラウザから、以下のURLを入力します。

http://192.168.33.15

⑦「さあ始めましょう」をクリックします。データベース名・ユーザ名をすべて「wp」にします。入力したら「送信」をクリックします。(※パスワードには「root」を入力します。)

⑧「インストール実行」をクリックします。

⑨WordPressへログインするためのユーザ名、パスワードを入力します。

⑩WordPressを利用できます。


トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 2008年04月 金融機関系I

最近の投稿
人気記事
カテゴリー
広告