WEBサイト制作

WordPressのインストールと初期設定 [CentOS 6.9]

今回はCentOS 6 にWordPressをインストールして、管理画面を表示するまでの一例を紹介します。

環境

Linux 6.9(さくらのクラウド)

# … root権限で実行
$ … ユーザー権限で実行可
[hoge] … 置き換え文字

初期設定

出来立てのLinuxにrootで、立ち上げ時に設定したパスワードでSSH接続します。
接続にはTera Term等のターミナルエミュレータを使用してください。

ユーザー作成

初期状態だとrootしか存在しませんが、セキュリティの観点から好ましくないのでユーザーを作成します。

# useradd [user_name]
# passwd [user_name]
[password]
# cat /etc/passwd
# cat /etc/shadow

SSH設定

同じくセキュリティの観点からrootでのログインを禁止します。

# cd /etc/ssh
# ls -l
# cp -p sshd_config sshd_config.org
# sed -i -e 's/^#\(PermitRootLogin\) yes/\1 no/' sshd_config
# diff sshd_config sshd_config.org

先ほど作成したユーザー名でSSHログイン出来ることを確認しましょう。
Tera Termなら新しくウィンドウを開けば楽です。

できたら下のコマンドでSSHの変更を反映させます。

# service sshd restart

rootユーザーでSSHログインが出来なくなっていれば成功です。

タイムゾーン設定

# date

で表示されたタイムゾーンがJST以外なら、下記を行います。

# cd /etc
# strings localtime
# cp -p localtime localtime.org
# cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# strings localtime
# date

WEBサーバインストール

# yum install httpd
# service httpd start
# chkconfig httpd on
# chkconfig --list | grep httpd

127.0.0.1に対してホスト名を設定します。

# vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 hostname

/etc/sysconfig/networkに記載されているホスト名をconfファイルにも設定します。
初期状態だと400 error等でドメイン名等の情報を返してしまい、ハッカーがハッピーになってしまうので、
ログへの記録等でドメイン名の逆引き等のDNS問い合わせ処理をしないよう設定します。

# cd /etc/httpd/conf
# cp -p httpd.conf httpd.conf.org
# vi httpd.conf
...
ServerTokens ProductOnly
...
KeepAlive On
...
ServerName [host_name]
...
ServerAdmin [e-mail]
...
HostnameLookups Off
...
ServerSignature Off
...
# service httpd configtest
# service httpd start

最後のコマンドで「Syntax OK」と表示されたら成功です。

PHP 5.6 インストール

epelとremiレポジトリを追加します。

# yum install epel-release
# yum install php-mysqlnd php-mbstring php-gd php-pdo php-gd php-xml --enablerepo=remi,remi-php56,epel

remi-php56リポジトリを有効化し、プライオリティを設定します。

# vi /etc/yum.repos.d/remi.repo
...
[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
...
[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
priority=1
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
...

# yum install --enablerepo=remi-php56 php php-common php-mbstring php-mysqlnd php-gd php-pecl-apcu php-pear php-pdo php-xml

PHPの設定

# cd /etc
# cp -p php.ini php.ini.org
# vi php.ini
...
date.timezone = "Asia/Tokyo"
...
upload_max_filesize = 32M
...
# service httpd reload

PHPモジュール動作の確認

# cd /var/www/html/
# vi phpinfo.php

ブラウザでPHPinfoが確認できたら、chmodやrm等で閲覧不可にしましょう。

htmlディレクトリをWordPressが変更できるようにする為にApacheに権限を付与します。

# chgrp -R apache /var/www/html

MySQLのインストール

Mysql以外のDBでも大丈夫です。

# yum install mysql mysql-server mysql-devel mysql-utilities
# chkconfig mysqld on
# cd /etc
# cp -p my.cnf my.cnf.org
# vi my.cnf
...
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8 ←この行を追加します。

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
...
# service mysqld start

※次のようなエラーが出るときは、mysql_install_db をオプション付きで実行します。

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

# mysql_install_db --datadir=/var/lib/mysql --user=mysql

続いて、MySQLのセキュリティ設定をします。
7行目はnにしても良いと思います。

# mysql_secure_installation
...
Enter current password for root (enter for none):
Set root password? [n]
Remove anonymous users? [Y]
Disallow root login remotely? [Y]
Remove test database and access to it? [Y]
Reload privilege tables now? [Y]
...

4行目…rootアカウントのパスワードを設定しますか?
5行目…ローカルホスト以外からアクセス可能な root アカウントを削除しますか?
6行目…リモートからのrootログインを拒否しますか?
7行目…testデータベース、および test_ で始まる名前を持つデータベースへのアクセスを許可する権限を削除しますか?
8行目…今すぐ再ロードしますか?

DB作成

# mysql -u root -p [password]
set names utf8;
create database [dbname] default character set utf8;
grant all privileges on [dbname].* to [dbuser]@localhost identified by '[password]';

パスワードは最初にホストに接続した時のパスワードです。

文字コード確認

show variables like "char%";

権限確認

show grants for '[user_name]'@'localhost';
show grants for '[dbname]'@'%';

WordPressインストール

ここでようやく、WordPressのインストールです。

# cd /usr/local/src/
# wget https://ja.wordpress.org/wordpress-4.0-ja.zip
# unzip wordpress-4.0-ja.zip
# mv wordpress wordpress-4.0-ja
# su - [user_name]
$ cp -pr /usr/local/src/wordpress-4.0-ja /var/www/html/
$ cd html/wordpress/
$ mv wordpress-4.0-ja [sitename]
$ chmod -R g+w [sitename]/
$ cd [site_name]
$ ls -l
$ cp -p wp-config-sample.php wp-config.php
$ vi wp-config.php
...
define('DB_NAME', '[db_name]');
define('DB_USER', '[user_name]');
define('DB_PASSWORD', '[passs_word]');
...
define('DB_COLLATE', '');

define('DISABLE_WP_CRON', 'true');
...
$table_prefix  = '[prefix]';
...
define('FS_METHOD', 'direct');

ブラウザで開き、WordPressのログイン画面が表示されれば成功です。

終わりに

ずいぶん長くなりましたが、以上が「CentOS 6.9 にWordPressをインストールして初期設定をする一例」になります。
セキュリティが気になる方はポート変更やファイアウォールの設定等を別途するようにしてください。

最後までご覧いただき、ありがとうございました。