CentOS7にインストールしたnginxにWordpressをセットアップします。CentOS7にはnginxとphp環境が構築済みであることが前提になります。前回記事(CentOS7にNginxとPHP7をセットアップ)の続きになります。
目次
1.mariadb(mysql)セットアップ
(1)インストール
Baseリポジトリからインストールします。
1 |
# yum -y install mariadb mariadb-server |
バージョンを確認します。
1 2 |
# mysql --version mysql Ver 15.1 Distrib 5.5.50-MariaDB, for Linux (x86_64) using readline 5.1 |
(2)mariadb デーモンの起動
dbユーザーの設定を行うために一度mariadbを起動します。自動起動の設定を行います。
1 2 |
# systemctl start mariadb.service # systemctl enable mariadb.service |
(3)管理者パスワード設定
mariadbにログインし、初期値が空のrootパスワードに値を登録します。 不要なユーザーは削除します。
select user,host,password from mysql.user; 現在のユーザー登録情報を表示します。
set password for root@localhost=password(‘rootパスワード’);ルートパスワードを設定。
DELETE FROM mysql.user where password=”;パスワードが空のユーザーを削除。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# mysql -u root MariaDB[(none)]> select user,host,password from mysql.user; +------+-----------------------+----------+ | user | host | password | +------+-----------------------+----------+ | root | localhost | | | root | localhost.localdomain | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | localhost.localdomain | | +------+-----------------------+----------+ MariaDB[(none)]>set password for root@localhost=password('rootパスワード'); MariaDB[(none)]>DELETE FROM mysql.user where password=''; MariaDB[(none)]>select user,host,password from mysql.user; +------+-----------------------+----------+ | user | host | password | +------+-----------------------+----------+ | root | localhost | XX#$%&XX | +------+-----------------------+----------+ MariaDB[(none)]>Exit Bye |
mariadbの初期設定手順は、他にmysql_secure_installationスクリプトを使用する方法もあります。mysql_secure_installationでは対話形式で上記設定と同等以上のことができます。
詳しくは「CentOSで自宅サーバ」様の記事を参考にしてください。
2.Wordperssデータベース作成
Wordperssで使用するデータベースを作成しWordpressDBの管理ユーザーとパスワードを設定します。
(1)SQLスクリプト準備
以下のようにSQLファイルを新規作成します。
1 2 3 4 5 |
# vi wordpress.sql create database wpdb; insert into user set user="hoge_usr", password=password("XX##XXXX"), host="localhost"; grant all on wpdb.* to hoge_usr; FLUSH PRIVILEGES; |
(2)実行と確認
以下のようにSQLを実行します。
1 |
# mysql -uroot -Dmysql < wordpress.sql |
追加したユーザー「hoge_usr」でwpdbにログインできることを確認します。
1 2 3 4 5 6 7 |
# mysql -uhoge_usr -pXX##XXXX -Dwpdb Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [wpdb]> exit |
ログインできることが確認できたので一旦終了します。
3.Wordpressのセットアップ
(1)インストール
コミュニティーより最新版を入手します。
1 |
# wget https://ja.wordpress.org/latest-ja.tar.gz |
(2)展開と配置
展開ディレクトリでWordpressを展開し所有権をnginxへ変更します。
1 2 3 |
# tar xzfv latest-ja.tar.gz # mv wordpress /usr/share/nginx/gtrt7/ # chown -R nginx:nginx /usr/share/nginx/gtrt7/wordpress |
(3)Wordpress環境設定
サンプルをコピーしてconfigファイルの設定を行います。
1 |
# cp /usr/share/nginx/gtrt7/wordpress/wp-config-sample.php /usr/share/nginx/gtrt7/wordpress/wp-config.php |
コピーしたconfファイルに必要な設定を追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /var/www/wp/hoge1/wp-config.php define('DB_NAME', 'wpdb'); ← // データベース名 ←データベース名 define('DB_USER', 'username_here'); ←// ユーザー名 ←データベースユーザー名 define('DB_PASSWORD', 'XX##XXXX'); ← // パスワード ←データベースユーザーパスワード define('FS_METHOD','direct'); // PHPからのファイル書き込みを許可 define('AUTH_KEY', 'put your unique phrase here'); ←ユニークなSalt Keyを設定する define('SECURE_AUTH_KEY', 'put your unique phrase here'); ←以下7カ所 define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); $table_prefix = 'blg_'; ←テーブルプレフィックスを変更 |
(4)初期情報設定
ブラウザよりWordpressをインストールしたディレクトリにアクセスします。
http://gtrt7.com/
下記にリダイレクトされます。
http://gtrt7.com/wp-admin/install.php
初期画面が表示され、ユーザー名とパスワード入力を求められるのでそれに従いユーザー名とパスワードを設定します。設定したユーザー名とパスワードでログインをして以降Wordpressにコンテンツを登録していきます。Wordpress環境構築はこれで一旦完了です。
(5)アクセス制限
wp-login.phpとxmlrpc.phpにアクセス制限をかけセキュリティーリスクを下げておきます。
対象とする設定ファイルは、前回記事のgtrt7.confです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# vi /etc/nginx/conf.d/gtrt7.conf server { listen 80; server_name gtrt7.com; root /usr/share/nginx/gtrt7/wordpress; index index.php; charset utf-8; # wordpress パーマネントリンク設定 try_files $uri $uri/ /index.php?q=$uri&$args; # wp-config.phpへのアクセス拒否設定 location ~* /wp-config.php { deny all; } # php-fpm用設定 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include fastcgi_params; } location ~ /(wp-login\.php$)$|/(xmlrpc\.php$)$ { auth_basic "Restricted"; ←Basic認証 auth_basic_user_file "/etc/nginx/.htpasswd"; ←Basic認証パスワードファイル allow 127.0.0.1; ←IPアクセス許可 deny all; ←それ以外のIP接続を拒否 fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include fastcgi_params; } } |
●アクセス制限
auth_basic “Restricted”;・・・ベーシック認証をかけます。
auth_basic_user_file “/etc/nginx/.htpasswd”; ・・・Basic認証パスワードファイル
allow 127.0.0.1; ・・・接続を許可するユーザーのIP。ここではローカルのみ許可
deny all; ・・・それ以外のIP接続を拒否
これで悪意のあるユーザーのアクセスをブロックできるようになりました。