思いつきでWordPress4.4-jaをCentOSに構築してみた

wordpressの構築について思いつきで現時点での
最低限での導入方法をまとめてみた。

>公開サーバを構築する際はセキュリティ等に配慮を行って下さい。この記事通りに構築しても不正アクセスに対する責任は負いかねます。


2016/1/8時点でyum経由での最新版を導入すると以下の通り。

```
CentOS
uname -a
Linux hogeserver 2.6.32-573.12.1.el6.x86_64 #1 SMP Tue Dec 15 21:19:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

httpd -V
Server version: Apache/2.2.27 (Unix)

php --version
PHP 5.6.17 (cli) (built: Jan  6 2016 19:05:40)

mysql --version
mysql  Ver 14.14 Distrib 5.6.28, for Linux (x86_64) using  EditLine wrapper
```

以下導入手順を記載。

selinuxの無効化

```vim:/etc/selinux/config
SELINUX=disabled
```

epelのレポジトリ登録
`rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm`

remiのレポジトリ登録
`rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm`

CentALTのレポジトリ登録
`rpm -ivh http://mirror.sysadminguide.net/centalt/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm`

「centalt.repo」の入手先変更(デフォルトのサーバに繋いでも動かないため)

```vim:/etc/yum.repos.d/centalt.repo
[CentALT]
name=CentALT Packages for Enterprise Linux 6 - $basearch
#初期のレポジトリはコメントアウト
#baseurl=http://centos.alt.ru/repository/centos/6/$basearch/
baseurl=http://mirror.sysadminguide.net/centalt/repository/centos/6/$basearch/
```
Apache導入
`yum install httpd httpd-devel --enablerepo=CentALT`

MySQL導入
`yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm`
`yum install mysql-community-server`

PHP周り導入
`yum install php php-mysql php-mbstring gd php-gd --enablerepo=remi-php56 --disablerepo=CentALT`

mysqld起動
`service mysqld start`

MySQLのセキュアインストール
`mysql_secure_installation`
→rootのパスワード以外全てYを選択

mysqld.logディレクトリ作成

```
mkdir /var/log/mysqld/
mv mysqld.log ./mysqld
chown -R mysql:root /var/log/mysqld/
```

「my.cnf」修正

```vim:/etc/my.cnf
[mysqld]
character-set-server = utf8

[mysqld_safe]
log-error=/var/log/mysqld/mysqld.log

mysqld起動
service mysqld start
```
DB,ユーザ,パスワード登録
`mysql -u root -p`

```
mysql> CREATE DATABASE wordpress;
mysql> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'hogehogefugafuga';
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';

mysql> FLUSH PRIVILEGES;

mysql> quit
```

「php.ini」編集

```vim:/etc/php.ini
date.timezone = Asia/Tokyo
```

「httpd.conf」編集

```vim:/etc/httpd/conf/httpd.conf
ServerName {hogeのIP}:80
ServerSignature Off
ServerTokens Prod
    Options -Indexes FollowSymLinks
<IfModule prefork.c>
StartServers            8
MinSpareServers         5
MaxSpareServers        20
ServerLimit           256
MaxClients            256
MaxRequestsPerChild  4000
MaxMemFree           4096
</IfModule>
```


ログのローテート

```vim:/etc/logrotate.conf
daily
rotate 30
compress
```

```vim:/etc/logrotate.d/httpd
/var/log/httpd/*log {
    daily
    rotate 30
    compress
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}
```

```vim:/etc/logrotate.d/mysql
/var/log/mysqld/mysqld.log{
        # create 600 mysql mysql
        notifempty
        daily
        rotate 30
        missingok
        compress
        postrotate
        # just if mysqld is really running
        if test -x /usr/bin/mysqladmin && \
           /usr/bin/mysqladmin ping &>/dev/null
        then
           /usr/bin/mysqladmin flush-logs
        fi
    endscript
}
```

自動起動設定
`chkconfig mysqld on`
`chkconfig httpd on`


wordpressのコンテンツ展開

```
cd /var/www/html`
wget https://ja.wordpress.org/wordpress-4.4-ja.tar.gz
tar -zxvf ./wordpress-4.4-ja.tar.gz
mv ./wordpress ./wp
chown -R root:root ./wp
```

サイトアクセス
http://{hogeのIP}/wp/

後は良しなに。