topimg.jpg


CentOS7.2にWordPress4.6をインストール

CentOS7.2にWordPress4.6をインストールしたので、その覚書。
 
 
●環境
・CentOS 7.2 (全部込み込みインストール) on VMwareWorkstation
 
●必要物
・パッケージ
・Apache HTTP Server
・httpd 2.4
・PHP
・php 5.4
・MariaDB
・mariadb 5.5
・mariadb-server 5.5
・mariadb-libs 5.5
・PHP関連モジュール
・phpMyAdmin 4.4 →MySQLへの操作を行うためのWeb画面インターフェース(オプション)
・php-mysql 5.4 →PHPとMySQLとの連携モジュール
・php-mbstring 5.4 →日本語等のマルチバイト文字対応のためのモジュール
・mod_php →PHPとApacheとの連携モジュール(php 5.4に含まれている模様)
・ワードプレス本体
・WordPress 4.6 日本語版
 
※PHP 5.6以上、MySQL 5.6以上または MariaDB バージョン 10.0 以上が推奨環境である。
 PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作するが、サポートは終了している。
 以下の手順では、CentOSのyum標準リポジトリではPHP 5.4、mariaDB 5.5が最新版のため、サポート外ではあるが、
 これを利用した手順にしている。PHP 5.6、MySQL 5.6のインストール方法については、「参考」サイト参照。
 
 
●手順概要
1. 必要物のインストール
1.1 パッケージインストール
1.2 ワードプレス本体インストール
2. Apacheのセットアップ
2.1 httpd設定ファイル修正
2.2 httpdサービス再起動
3. Linuxセキュリティ関係の設定変更
3.1 Firewallの穴あけ
3.2 SE Linuxの無効化
4. DBのセットアップ
4.1 MariaDB設定ファイル修正
4.2 MariaDBサービス起動
4.3 MySQL Secure Installation実行
4.4 MariaDB内でのデータベース作成、ユーザ作成
5. Wordpressのセットアップ
5.1 PHPとDBの接続設定
5.2 Wordpressのインストール
6.(おまけ)各サービスのOS起動時自動起動設定
6.1 httpd自動起動
6.2 mariadb自動起動
7.(おまけ)phpMyAdminのアクセス確認
7.1 アクセス確認
 
●手順詳細
1. 必要物のインストール
1.1 パッケージインストール
・リポジトリの追加
オプションのphpMyAdminをインストールするため、epelリポジトリを追加。
[root@localhost]# yum -y install epel-release
通常時は見ないように、無効化しておく。
[root@localhost ~]# vi /etc/yum.repos.d/epel.repo
(修正前)
[epel]
enabled=1
(修正後)
[epel]
enabled=0
 
・Apache,PHP,MariaDB,PHP関連モジュールのインストール
mariadb5.5、mariadb-server5.5をインストールすると、依存性の関係でmariadb-libsもインストールされる。
phpMyAdminのインストールのインストール時に、依存性の関係でphp-mysql、php-mbstringもインストールされる。
[root@localhost]# yum install httpd
パッケージ httpd-2.4.6-40.el7.centos.4.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install php
パッケージ php-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost yum.repos.d]# yum install mariadb mariadb-server
パッケージ mariadb-5.5.50-1.el7_2.x86_64 はインストール済みか最新バージョンです
パッケージ mariadb-server-5.5.50-1.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost yum.repos.d]# yum install mariadb-lib
パッケージ mariadb-libs-5.5.50-1.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install phpMyAdmin  --enablerepo=epel
Running transaction
 インストール中          : php-mbstring-5.4.16-36.3.el7_2.x86_64localhost        1/9
 インストール中          : php-php-gettext-1.0.11-12.el7.noarchlocalhost         2/9
 インストール中          : php-bcmath-5.4.16-36.3.el7_2.x86_64localhost          3/9
 インストール中          : libtidy-0.99.0-31.20091203.el7.x86_64localhost        4/9
 インストール中          : php-tidy-5.4.16-4.el7.x86_64localhost                 5/9
 インストール中          : php-tcpdf-6.2.11-1.el7.noarchlocalhost                6/9
 インストール中          : php-tcpdf-dejavu-sans-fonts-6.2.11-1.el7.noarch       7/9
 インストール中          : php-mysql-5.4.16-36.3.el7_2.x86_64localhost           8/9
 インストール中          : phpMyAdmin-4.4.15.7-1.el7.noarchlocalhost             9/9
(略)
[root@localhost]# yum install php-mysql
パッケージ php-mysql-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install php-mbstring
パッケージ php-mbstring-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install mod_php
パッケージ php-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
 
1.2 ワードプレス本体インストール
・ダウンロード&解凍
[root@localhost]# wget https://ja.wordpress.org/latest-ja.tar.gz
[root@localhost]# tar xvzf latest-ja.tar.gz
・解凍後資材を、自分で決めたWeb資材公開用ディレクトリへ移動
[root@localhost]# mkdir /data/web
[root@localhost]# mv wordpress /data/web
・apache用に所有者・所有グループ変更
[root@localhost]# chown -R apache.apache /data/web
  ・MySQL用のファイル格納場所作成、所有者・所有グループ変更
[root@localhost]# mkdir /data/mysql
[root@localhost]# chown -R mysql.mysql /data/mysql
 
 
2. Apacheのセットアップ
2.1 httpd設定ファイル修正
・/etc/httpd/conf/httpd.confを以下のように修正
[root@localhost]#vi /etc/httpd/conf/httpd.conf
(修正前)
Listen 80
DocumentRoot "/var/www/html"
<Directory "/var/www">
   AllowOverride None
   # Allow open access:
   Require all granted
</Directory>
(修正後)
Listen 80 ←お好みのポート番号
DocumentRoot "/data/web"
<Directory "/data/web">
   AllowOverride All ←Wordpressのパーマリンク設定において、.htaccessによるapache設定へのアクセス許可が必要。
   # Allow open access:
   Require all granted
</Directory>
 
2.2 httpdサービス再起動
・サービス起動
[root@localhost]# systemctl start httpd
・サービス状態確認
[root@localhost]# systemctl status httpd
● httpd.service - The Apache HTTP Server
  Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Active: active (running) since 日 2016-09-04 13:30:51 JST; 4h 36min ago
    Docs: man:httpd(8)
          man:apachectl(8)
Main PID: 51398 (httpd)
  Status: "Total requests: 207; Current requests/sec: 0; Current traffic:   0 B/sec"
  CGroup: /system.slice/httpd.service
          tq51398 /usr/sbin/httpd -DFOREGROUND
          tq51400 /usr/libexec/nss_pcache 1966088 off /etc/httpd/alias
          tq51401 /usr/sbin/httpd -DFOREGROUND
          tq51403 /usr/sbin/httpd -DFOREGROUND
          tq51404 /usr/sbin/httpd -DFOREGROUND
          tq51405 /usr/sbin/httpd -DFOREGROUND
          tq51406 /usr/sbin/httpd -DFOREGROUND
          tq51592 /usr/sbin/httpd -DFOREGROUND
 
 
3. Linuxセキュリティ関係の設定変更
3.1 Firewallの穴あけ
・RHEL7からは、iptablesではなく、firewalldというサービスが稼働している。
   デフォルトではOSインストール後から稼働している。
[root@localhost]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  Active: active (running) since 日 2016-09-04 06:42:03 JST; 7h ago
  Main PID: 1219 (firewalld)
  CGroup: /system.slice/firewalld.service
  mq1219 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
   
・CUIからの設定は大変なので、GUIで設定する。
 以下のコマンドを実行し、GUIの設定画面を起動。
[root@localhost]# firewall-config
 
・GUI上で、以下のような操作を行う。
一時的なアクセス許可
設定>実行時>public>http のチェックボックスにチェックを入れる
永続的なアクセス許可  
設定>永続>public>http のチェックボックスにチェックを入れる
   
3.2 SE Linuxの無効化
・外部からのアクセスが失敗
 http://IPアドレス/wordpress にWebブラウザからアクセスしても、アクセス禁止のメッセージが表示され、
 コンテンツが表示されない。シスログを確認すると、SELinux関連のエラーメッセージでていた。 
[root@localhost]# tail /var/log/messages
Sep  4 13:37:36 localhost python: SELinux is preventing /usr/sbin/httpd from getattr access on the file /data/web/wordpress/index.php
 
 ということで、SELinuxを無効化する。
 本当は適切にポリシー設定すべきだが、面倒なので、とりあえず無効化して先に進める。
 
・状態確認
[root@localhost]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
  Max kernel policy version:      28
 
・一時的な無効化
[root@localhost]# setenforce 0
 
・永続的な無効化
[root@localhost]# vi /etc/selinux/config
(修正前)
SELINUX=enforcing
(修正後)
SELINUX=disabled
 
・状態確認
[root@localhost]# sestatus
SELinux status:                 enabled ←OS再起動後にdisableになる
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive ←一時的な無効化により、解除されている
Mode from config file:          disabled
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
 
4. DBのセットアップ
4.1 MariaDB設定ファイル修正
/etc/my.cnf.d/server.cnfを以下のように修正する。
なお、/usr/share/mysql配下に設定ファイルのテンプレートがあるため、それをコピーする手順としている。
[root@localhost]# cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf
[root@localhost]# vi /etc/my.cnf.d/server.cnf
(修正前)
[client]
[mysqld]
[mysqldump]
[mysql]
[myisamchk]
[mysqlhotcopy]
(修正後)
[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
default-character-set = utf8    #手動で追加
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
server-id       = 1
character-set-server = utf8   #手動で追加
datadir=/data/mysql        #手動で追加
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
 
4.2 MariaDBサービス起動
・サービス起動
[root@localhost]# systemctl start mariadb
・サービス状態確認
[root@localhost]# systemctl status mariadb
● mariadb.service - MariaDB database server
  Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Active: active (running) since 日 2016-09-04 14:38:26 JST; 1s ago
 Process: 57244 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
 Process: 57089 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 57243 (mysqld_safe)
  CGroup: /system.slice/mariadb.service
          tq57243 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
          mq57399 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mari...
念のため、指定したパスに、データベースファイルが作成されているかも確認。
[root@localhost]# ls -l /data/mysql/
合計 36892
-rw-rw----. 1 mysql mysql    16384  9月  4 15:32 aria_log.00000001
-rw-rw----. 1 mysql mysql       52  9月  4 15:32 aria_log_control
-rw-rw----. 1 mysql mysql  5242880  9月  4 15:32 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880  9月  4 15:32 ib_logfile1
-rw-rw----. 1 mysql mysql 18874368  9月  4 15:32 ibdata1
drwx------. 2 mysql mysql     4096  9月  4 15:32 mysql
drwx------. 2 mysql mysql     4096  9月  4 15:32 performance_schema
drwx------. 2 mysql mysql        6  9月  4 15:32 test
 
4.3 MySQL Secure Installation実行
・mysql_secure_installationスクリプト実行
[root@localhost]#  mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
Set root password? [Y/n] y
... Success!
 
Remove anonymous users? [Y/n] y
... Success!
 
Disallow root login remotely? [Y/n] y
... Success!
 
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
 
Reload privilege tables now? [Y/n] y
... Success!
 
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!
 
4.4 MariaDB内でのデータベース作成、ユーザ作成
・MariaDBへrootユーザでログイン
[root@localhost]# mysql -u root -p
・wordpressデータベースの作成
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
・wpユーザの作成
MariaDB [wordpress]> use mysql
Database changed
MariaDB [mysql]> SELECT user, host FROM user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
+------+-----------+
MariaDB [mysql]> create user wp@localhost IDENTIFIED BY "password";  ←パスワードは適切な値に設定
MariaDB [mysql]> SELECT user, host FROM user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
| wp   | localhost |
+------+-----------+
・wpユーザへの権限付与
MariaDB [(none)]> show grants for wp@localhost;
+-----------------------------------------------------------------------------------------------------------+
| Grants for wp@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wp'@'localhost' IDENTIFIED BY PASSWORD '*2478C0C06DEE42FD161\809890AIUSH27ELfaA1A2' |
+-----------------------------------------------------------------------------------------------------------+
MariaDB [(none)]> grant all privileges on wordpress.* to wp@localhost;
MariaDB [(none)]> show grants for wp@localhost;
+-----------------------------------------------------------------------------------------------------------+
| Grants for wp@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wp'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wp'@'localhost'                                                 |
+-----------------------------------------------------------------------------------------------------------+
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
Bye
 
 
5. Wordpressのセットアップ
5.1 PHPとDBの接続設定
・ブラウザから、以下のURLへアクセス
http://IPアドレス/wordpress
WordPress へようこそ画面(http://IPアドレス/wordpress/wp-admin/setup-config.php)にリダイレクトされる
・「さあ、始めましょう」ボタンを押下
・データベース接続のために必要な以下の情報を入力
データベース名 wordpress
ユーザ名 wp
パスワード password
データベースのホスト名 localhost
テーブル接頭辞 wp_
・「インストール実行」ボタンの押下
/data/web/wordpress/wp-config.phpファイルにDB接続情報が記載される
 
5.2 Wordpressのインストール
・「Wordpressの有名な5分間インストールプロセス」画面に、必要情報を入力
サイトのタイトル テスト環境Wordpress
ユーザー名 wpuser
パスワード *********
メールアドレス root@localhost.localdomain
・「Wordpressをインストール」ボタンを押下
 
以上で、Wordpressのセットアップ完了。
 
 
6.(おまけ)各サービスのOS起動時自動起動設定
6.1 httpd自動起動
  [root@localhost]#  systemctl list-unit-files |grep httpd
httpd.service                               disabled
[root@localhost]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /etc/systemd/system/httpd.service.
[root@localhost]#  systemctl list-unit-files |grep httpd
httpd.service                               enabled
 
6.2 mariadb自動起動
[root@localhost]#  systemctl list-unit-files |grep mariadb
mariadb.service                             disabled
[root@localhost]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@localhost]#  systemctl list-unit-files |grep mariadb
mariadb.service                             enabled
 
7.(おまけ)phpMyAdminのアクセス確認
7.1 アクセス確認
・サーバ内のWebブラウザから、以下のURLにアクセスし、phpMyAdmin画面が表示されるかを確認する。
http://localhost/phpMyAdmin
※デフォルトでは、ローカルホストからのアクセスからしか許可されていない。
●参考
MySQL 5.7 を CentOS 7 に yum インストールする手順
http://weblabo.oscasierra.net/installing-mysql57-centos7-yum/
CentOS 7 に PHP 5.6 を yum でインストールする手順
http://weblabo.oscasierra.net/centos7-php56-install/
パーマリンクの使い方
https://wpdocs.osdn.jp/%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
CentOS7 firewalldの設定
http://www.unix-power.net/centos7/firewalld.html
5.4.2. SELinux の無効化
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Enabling_and_Disabling_SELinux-Disabling_SELinux.html
CentOSにWordPressをインストールする
http://qiita.com/speg03/items/516c5c0ca727b47c3d23
CentOS 7 : MariaDB インストール、及び初期設定
http://server.etutsplus.com/centos-7-mariadb-install-and-mysql-secure-installation/
CentOS 7 EPEL リポジトリ追加
http://server.etutsplus.com/centos-7-epel-repository-install/
スポンサーサイト
  1. 2016/09/04(日) 18:30:50|
  2. Linux/Unix
  3. | トラックバック:0
  4. | コメント:0
<<DHCP環境でIP変わったらWordpressにアクセスできなくなった | ホーム | VMware-Toolsのサービス起動が失敗している件>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://192168111.blog71.fc2.com/tb.php/116-ff397898
この記事にトラックバックする(FC2ブログユーザー)