Indigo 初期設定からWordPressが動くまで

細かい事は、必要ないのでとりあえずWordPressが動くまでを簡単に実施したいという人向けです。
VPSを借りると、まずはお決まりの儀式をしなくてはならない訳ですが、それも飽きてきたなあという人向きの記事です。モデルは、WebARENA Indigo CentOS 7.5 向けです。

まずは、何もないところから、WordPressを最小限で走らすための設定。

レポジトリの導入編

作業用のディレクトリを作成してそこで作業を進めていきます。
# yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum install -y epel-release
# yum install -y http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
MySQLまでの導入

WordPressには、MySQL DBが必要なので、適当なバージョンををインストールします。
今回は、CentOS 7.xで標準化されたMariaDBではなく、mysql 5.5を使います。
# yum remove mariadb-libs
# rm -rf /var/lib/mysql
# yum install yum-utils -y
# yum-config-manager --disable mysql56-community
# yum-config-manager --enable mysql55-community
# yum install mysql mysql-devel mysql-server mysql-utilities -y

※MariaDBはMySQLよりも速くなっているのですが、Indigoのようなネットワークディスクが
採用されていて、ディスクIOがそれほど良くない場合には大きなスピードアップは望めないので
メモリーモデルが512MB~1GB程度のサーバーではむしろ、MySQLd 5.5あたりを使っておいたほうが
互換性を含めて、快適と判断しました。

以上の操作で、MySQL DBまでのインストールが終了しましたので、その確認を行います

# rpm -qa |grep mysql
mysql-community-release-el7-5.noarch
mysql-connector-python-8.0.18-1.el7.x86_64
mysql-utilities-1.6.5-1.el7.noarch
php-mysqlnd-7.0.33-14.el7.remi.x86_64
mysql-community-common-5.5.62-2.el7.x86_64
mysql-community-client-5.5.62-2.el7.x86_64
mysql-community-server-5.5.62-2.el7.x86_64
mysql-community-libs-5.5.62-2.el7.x86_64
mysql-community-devel-5.5.62-2.el7.x86_64
MySQL version 5.5.xがインストールされていればOKです。

ここでは、まだ、MySQLdは走らせません。
必要に応じて、InnoDBを無効化したい場合には、この時点で/etc/my.cnfを編集して、以下を追記しておきます。
後からだと、InnoDBテーブルが出来てしまうので、面倒です。

my.cnfの調整

# vi /etc/my.cnf
[mysqld]
中略
skip-innodb
default-storage-engine=MyISAM
#query_cache_limit=1M
#query_cache_min_res_unit=4k
#query_cache_size=24M
#query_cache_type=1
:wq!

この段階で、MySQLdを走らせることが可能なので、初期パスワードなどの設定をします。

MySQLサーバーの初期設定

# systemctl start mysqld
表示されるメッセージに従い、以下2つのパスワードを設定しましょう。
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
new-passwordの部分に自分の設定するパスワードを入れます。

/usr/bin/mysql_secure_installation
を必要に応じて走らせて設定しても良いですが、Local環境で使うならば、特に必要はありませんので、
このままの状態で使うことが出来ます。

# mysql -u root -p
と入力すると、パスワードを聞いてきますので、今設定したパスワードを入力すると、MySQLサーバーへの接続が
完了するハズです。
mysql> のプロンプトが出れば、OKです。
mysql> quit     <-- 一端抜けます。

とりあえず、WordPressの走行環境までをざっとインストールしてしまいましょう。

PHPのインストール

# yum install php php-mysql php-gd php-devel php-opcache php-fpm php-apcu php-mbstring php-xml php-mcrypt --enablerepo=remi-php70
// php-opcache,php-apcu,php-fpmはphp高速化をする場合に必要 //

phpをインストールすると、httpdと、httpd-toolsも依存関係でインストールされると思います。 
もしインストールされていないなら、以下を実行してインストールを完了させます。 
# yum install httpd httpd-tools -y 
MySQLdとhttpdを再起動した場合にもサービスとして立ち上がる様にしておく。

# systemstl enable httpd
# systemctl enable mysqld

Apacheの調整
以下の2箇所を変更しておく
これをやっておかないと、パーマリンクが正しく動作しない。
# vi /etc/httpd/conf/httpd.conf
#
<Directory />
 Options FollowSymLinks
 AllowOverride All
</Directory>
#
<Directory "/var/www/html">
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>
#
:wq!

ここまでの操作で、必要な物は全て整いました。
とりあえず、Apacheを起動して、アクセス可能かどうかを確かめておきます。
自分のサーバーにhttp://domain.name/とした時に、Apacheの初期画面が表示されればOKです。

それでは、いよいよ、WordPressをインストールします。

データベースの準備

# mysql -u root -p
Enter password: 
-- 中略 --
mysql> create database user01_wp character set utf8;
Query OK, 1 row affected (0.00 sec)

一般ユーザーを作る
user01_*というワイルドカードのデータベースへのアクセスを許可するuser01というユーザーを作る。
CREATE USER 'user01'@'localhost' IDENTIFIED WITH mysql_native_password;
GRANT USAGE ON *.* TO 'user01'@'localhost';
SET PASSWORD FOR 'user01'@'localhost' = password('new-password');
GRANT ALL PRIVILEGES ON `user01\_%`.* TO 'user01'@'localhost';

これで、user01が、user01_wpへのアクセスが可能になる。

他のアドレスからのrootユーザーを許可するには
CREATE USER 'root'@'xxx.xxx.xxx.xxx' IDENTIFIED WITH mysql_native_password;
GRANT USAGE ON *.* TO 'root'@'xxx.xxx.xxx.xxx';
SET PASSWORD FOR 'root'@'xxx.xxx.xxx.xxx' = password('password');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'xxx.xxx.xxx.xxx'WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
GRANT ALLとすると管理者権限とすることができる
他のサーバー上で、phpMyAdminから、rootにアクセスする場合rootを追加する。

WordPressの最新版をインストール

最新のWordPressをダウンロードして/var/www/htmlへ配置する

# cd /var/www/html
# wget -O - 'http://ja.wordpress.org/latest-ja.tar.gz' |tar zxf -
これで、wordpressというディレクトリ内に最新版のWordPressが展開される。
このままでも良いが、html直下に移動しておく。
# cd /var/www/html/wordpress
# mv * ../
# cd ../
# rmdir wordpress

インストールは、これで、完了しているので、後は、http://domainName.tld/ などとしてアクセスすれば、WordPressのインストール画面へと遷移する。

ここで設定するのは、先のuser01_wpへ、user01でアクセス出来るようにする。
データベース名:user01_wp
ユーザー名:user01
パスワード:new-password
データベースホスト名:localhost
テーブル接頭辞:wp_

後は適宜に。

最短コースのつもりで、仕上げてみたつもりなのだが、なんとなく、まだまだ、やることが多すぎる感があるが、上から順に実施していけば、そこそこ最新のWordPress環境が整うハズ。

後は、ここでは触れないが、php-opcache,php-apcuあたりをインストールしたり、必要に応じてphpMyAdminあたりをインストールすれば、より快適になる。
※なにもない限り、mysqlのコマンドラインで処理できるので特に必須というわけではない。

CentOS 7.xのための、iptables 有効化の設定

# systemctl stop firewalld
# systemctl disable firewalld
# systemctl status firewalld

# yum install iptables-services
# systemctl start iptables
# systemctl enable iptables
# systemctl status iptables

WebARENA IndigoのCentOS 7 5は、初期状態で、selinuxが有効化されているので、disabledとしておくと良い場合が多く、パーミッションチェックが緩和されるので、セキュリティーは低下するが、互換性は上がる。
また、ipコマンドを叩かなくても良いように、最初から、ifconfigがインストールされている。