• このエントリーをはてなブックマークに追加

CentOS6.7へのWordPressインストール手順

  • このエントリーをはてなブックマークに追加

Ushioです。

WordPressをインストールするにあたって作成していた手順のメモを公開したいと思う。Linuxの有識者であれば、下記を一通りその通り実行すれば簡単にWordpress検証環境が構築出来るだろう。(突っ込みどころあるかも…)

特徴としてはWEBサーバとして一般的なApacheでなく、処理性能・高い並行性・メモリ使用量の小さいと評判のNGINXを用いた構成である点。ググッても結構情報ありますね。

検証環境の準備は下記を御覧ください

MacOSへのVirtualBoxインストール手順
VirtualBox + CentOS6 (minimal) 初期設定

環境

・OS:Centos 6.7

・Middle
WebServer:nginx
Database:MySQL 5.6
CGI:PHP 5.6

・Wordpress 4.5 (2016/4時点での最新)

※Wordpress4.5の推奨動作環境:MySQL5.6、PHP5.6

スポンサーリンク
Sponsords Link

WordPressをインストールする流れ

Linuxをある程度触れる人、コマンドの意味、応用が分かる人向けですね。まぁ初心者でもこの通りコマンド流して、そのまま同じことやればインストール出来るはずです。

コマンドは全てルート権限である前提なので、必要に応じてsudoしてください。

WEBサーバNGINXのインストール

標準のyumリポジトリでは提供されないため、まずはリポジトリ登録

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

yumインストール実行

yum install -y nginx

iptables を編集

vim /etc/sysconfig/iptables

ポート80へのアクセス許可として下記を追加

-A INPUT -m state --state NEW -m tcp -p --dport 80 -j ACCEPT

NGINXのサービスを起動

/etc/init.d/nginx start

NGINXの動作確認
・ブラウザでサーバのアドレスにアクセス
http://~~サーバのアドレス~~/

・ブラウザで下記NGINXのページが表示されること

NGINXテスト
※これはデフォルトのドキュメントルートの/usr/share/nginx/html/直下のindex.htmlを表示している。

起動設定

chkconfig nginx on

できたか確認。

chkconfig --list nginx

PHP5.6インストール

標準のリポジトリでインストールされるのはPHP5.3なので、5.6対応のリポジトリを登録。ただ、PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作する。公式サポートを気にしない、検証環境でセキュリティも気にしない人は、いきなりエイッとyumってもいいかも。

参考。php5.3エイッの人向け。
yum -y install php-mysql php-common php php-cgi php-fpm php-gd php-mbstring

php5.6はremiリポジトリで提供されるが、remiはepelリポジトリに依存しているため、epelリポジトリをrpmインストール。

 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

remiリポジトリをrpmインストール

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

※リポジトリのURLが更新されていないかご確認ください。

リポジトリインストールできたかな。

ll /etc/yum.repos.d/
 ~~
-rw-r--r--  1 root root 1056 11月  5 12:52 2012 epel-testing.repo
-rw-r--r--  1 root root  957 11月  5 12:52 2012 epel.repo
-rw-r--r--  1 root root 1177 12月  9 18:14 2015 remi-php70.repo
-rw-r--r--  1 root root  449 12月  9 18:14 2015 remi-safe.repo
-rw-r--r--  1 root root 2340  4月 15 22:25 2016 remi.repo
 ~~

リポジトリファイル覗いてみるとポイントになるのはこんなところかな

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

~~
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1   #←デフォルトでepelリポジトリは有効みたい
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
~~

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

~~
[remi-php56]    #今回はphp5.6をインストールしたいので注目はここ
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0     #←他の行見てもデフォルトでremiリポジトリは無効みたい。インストール時にリポジトリ指定必要。
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
~~

上記の通りなので、remiリポジトリを指定してphpの必要モジュールをyumインストール

yum -y install --enablerepo=remi,remi-php56 php-mysql php-common php php-cgi php-fpm php-gd php-mbstring

iniファイルのタイムゾーン設定を設定しておく

vim /etc/php.ini
~~

~~
;date.timezone
date.timezone="Asia/Tokyo"       ;←追加

設定ファイル/etc/php-fpm.d/www.confのuser/group設定をnginxに設定

vim /etc/php-fpm.d/www.conf 
~~

;user=Apache      ;←コメントアウト
user=nginx     ;←追加
;group=Apache  ;←コメントアウト
group=nginx    ;←追加
~~

phpのサービスを起動

/etc/init.d/php-fpm start

起動設定

chkconfig php-fpm on

出来たかな

chkconfig --list php-fpm

nginx上でphpを動作出来るよう設定

ドキュメントルートにphp動作確認用のファイルを作成。

cd /usr/share/nginx/html
touch test.php
vim test.php

下記内容を記述。余計な改行等ないよう。

<?php
phpinfo();
?>

NGINXの設定

現時点ではデフォルトの設定でファイル/etc/nginx/conf.d/default.confにて動作している。default.confは適当に名前を変えてバックアップ。
※動作的には/etc/nginx/nginx.conf内の記述で/etc/nginx/conf.d/直下の”*.conf”というファイル名のファイルをincludeしているため、ファイル名末尾を.confから変えれば読み込まれなくなる。

cd /etc/nginx/conf.d/
cp default.conf default.conf.bk

default.confはサービス毎に管理するのであれば名前を変えてもよし。default.confの下記部分を更新

vim /etc/nginx/conf.d/default.conf
~~
    location / {
        root   /usr/share/nginx/html;
    #    index  index.html index.htm;
        index  index.php index.html index.htm;  #←index.phpを追加
    }

~~##下記は最初から記述されてているため、#を外し、必要に箇所を追記

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
        root           /usr/share/nginx/html;  #←追記
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #←追記
      include        fastcgi_params;
    }

NGINXのサービスを再起動。.confに記述ミスがあればここで怒られるから要確認。

/etc/init.d/nginx restart

ブラウザで最初作成したtest.phpにアクセスすると下記のように標準される。標準されなければphpとnginxが連携できていない。

phpテスト

MySQL5.6インストール

標準リポジトリでは、MySQL5.1。こちらもPHP同様に5.1でいいやって人はエイッとしてもいいだろう。

参考。エイッの人向け
 yum -y install mysql-server

MySQL5.6はMySQL公式yumリポジトリからインストール出来る。リポジトリインストール。

yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

インストール実出来たかな

ll /etc/yum.repos.d/
~~
-rw-r--r--. 1 root root 1060 12月  2 20:15 2013 mysql-community-source.repo
-rw-r--r--. 1 root root 1209 12月  2 20:15 2013 mysql-community.repo
~~

mysql-community-serverをインストール

yum -y install mysql-community-server

mysql起動

/etc/init.d/mysqld start

起動設定

chkconfig mysqld on

出来たかな

chkconfig --list mysqld

MySQL WordPress用DB,User作成

◆各名称を下記とする。適宜変更してね。
・Wordpress用DB名 :wpdb1
・Wordpress用ユーザ名 :wpuser1
・Wordpreess用ユーザパスワード :wppassword1

rootユーザにパスワードを設定していなければ下記で設定
パス無しでログイン

mysql -u root

パスワード設定、変更を反映、一度ログアウト、設定したパスワード設定でログイン出来るか確認

update mysql.user set password=password('root用の任意パスワード') where user = 'root';
flush privileges; 
exit;

ログイン出来ればOK

mysql -u root -p
~~パスワード入力
  

データベースの作成

create database wpdb1;

できたかな

show databases;
~~

ユーザを作成し、作成ししたDBに対してALLの権限を付与、パスワードをpasswordに設定

grant all on wpdb1.* to 'wpuser1'@'localhost' identified by 'wppassword1';

出来たかな

show grants for 'wpuser1'@'localhost';

作ったユーザとホスト名とパスワード設定状況

select user,host,password from mysql.user;

WordPress インストール

まずは公式ページからWordpressをダウンロードしよう。サーバからwgetしてもいいし、ローカルPCに一度落としてからサーバにFTPかSCPしてもいいだろう。

https://ja.wordpress.org/

ワードプレスを置きたいディレクトリへ解凍したファイル配置
※ルートディレクトリはnginxデフォルトのusr/share/nginx/htmlとする。
例えばhttp://yoursite/blogとしたければ、回答したファイルの中身全てusr/share/nginx/html/blogに格納する。
解凍ファイルはwordpressというディレクトリになると思うので、その中身全てという点に気をつけよう。

cp wordpress/* /usr/share/nginx/html/blog/

※ルートディレクトリでワードプレスを運用したい場合、デフォルトのindex.htmlなどが悪さしないよう避けておくこと。

新しく作成したワードプレスのディレクトリ(配下ファイルをすべて)のユーザグループをnginxにしておく。

chown -R nginx:nginx /usr/share/nginx/html/blog

配置したWrodpressファイル直下のwp-conf-sample.phpをcpしwp-conf.phpを作成し、編集。
この辺りは公式サイトのインストール手順を見たほうがわかりやすい

上記で設定でしたデータベースの名称、ユーザ名、パスワードを入力。

私は検証環境としてはマルチサイトで使用するほうが便利なのでこのような設定も。
下記の$table_prefix=の値をwp1_などに変更。上記のユーザ名DB名になぜ番号が付いているのか気になった人…。こうやって番号を2、3と作って複数マルチサイトを建てられるというわけだ。

/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
$table_prefix  = 'wp_';

なお、上記リンクにもあるが、”認証用ユニークキー”は下記リンクから乱数を取得して変更しておこう。
https://api.wordpress.org/secret-key/1.1/salt/

ここまで来たら、wordpress配置ディレクトリにブラウザからアクセスしてみよう。以下の画面が標準されるはずだ。

wordpress

後で変更もできるし、ソレらしく入力してインストールボタンをクリック!

できたんじゃないかな。

wordpress

糠喜びで、画像がアップできないぞ?という方はこちらもご覧ください。

Pax_tux

WordPress ファイルアップロード出来ない件、SELinuxが悪さしてない?

ZacoUshio

スポンサーリンク
Sponsords Link
  • このエントリーをはてなブックマークに追加

ZacoDesign

スポンサーリンク
Sponsords Link