LoginSignup
5

More than 5 years have passed since last update.

CentOS 7 WordPressのインストール

Posted at

動作確認環境

  • 仮想環境 VMware Workstation Player 14.1.1
  • OS Windows 10 Pro 64bit

仮想環境

  • OS CentOS 7.4 (1708) minimalインストール
  • メモリ 2GB
  • HDD 250GB

前提条件

  • gcc 7.2.0
  • cmake 3.10.2
  • MySQL 5.7.21
  • OpenSSL 1.1.0.g
  • Apache 2.4.29
  • PHP 7.2.3

WordPressのダウンロード

最新バージョンの確認
日本語 « リリース — WordPress

Apacheの初期ディレクトリにインストールするとします。/usr/local/apache2/htdocsディレクトリに移動する。

/usr/local/apache2/htdocs

ファイルをダウンロードする。

wget https://ja.wordpress.org/wordpress-4.9.4-ja.tar.gz

ダウンロードしたファイルを展開する。

tar zxvf wordpress-4.9.4-ja.tar.gz

展開したディレクトリはwordpressで作成されます。
必要に応じて変更してください。
所有を変更します。

chown -R apache:apache wordpress

Apacheの設定

httpd.confで設定します。

vi /usr/local/apache2/conf/httpd.conf

以下の内容を追記します。

DocumentRoot "/usr/local/apache2/htdocs/wordpress"
<Directory "/usr/local/apache2/htdocs/wordpress">
     AllowOverride All
</Directory>

wordpressに移動し、ファイルをコピーし、所有を変更する。

cd wordpress
cp wp-config-sample.php wp-config.php
chown -R apache:apache wp-config.php

wp-config.phpの設定をします。

vi wp-config.php

database_name_here, username_here, password_hereを任意に変更し、localhost127.0.0.1に変更します。

wp-config.php
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'database_name_here');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'username_here');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password_here');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');
wp-config.php(設定例)
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wp_knutdb_zvy1vb4u');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'wp_knut_mv43no3x');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'LVMc47NIpmRR');


/** MySQL のホスト名 */
define('DB_HOST', '127.0.0.1');

通常だとファイルの書き込みにFTPが必要なので、directにします。

vi wp-config.php

以下の文を追記します。

define('FS_METHOD', 'direct');

サーバのIPアドレスで接続すると「データベース接続確立エラー」と表示されます。

MySQLの設定

MySQLにログインするには、初期の設定では、rootユーザにパスワードが無いため、ログインできません。パスワード無しでログインできるようにします。

vi /etc/my.cnf

[mysqld]の下にskip-grant-tablesを追記します。

[mysqld]
skip-grant-tables

これでrootでもパスワードなしでログインできます。
mysql -u rootと入力し、mysql>が表示されuse mysqlを入力します。

mysql -u root
[(none)] mysql>use mysql

入力すると、以下の文が表示される。

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

rootのパスワードを設定するため、以下のコマンドを入力する。

update user set authentication_string=password('パスワード') WHERE user='root';

成功すると、以下の文が表示される。

Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

Warning (Code 1681): 'PASSWORD' is deprecated and will be removed in a future release.

設定をflush privilegesで保存します。

flush privileges;

成功すると、以下の文が表示される。

Query OK, 0 rows affected (0.00 sec)

quitで終了する。

rootのパスワードを設定したので、先ほどのmy.cnfからskip-grant-tablesを削除するかコメントアウトする。

MySQLの操作

MySQLにログインします。

mysql -u root -p

パスワードを入力します。
wp-config.phpで設定したデータベース、ユーザを作成します。(作成例)

データベースの作成

create database wp_knutdb_zvy1vb4u CHARACTER SET utf8;

成功すると、以下の文が表示される。

Query OK, 1 row affected (0.00 sec)

ユーザの作成

create user 'wp_knut_mv43no3x'@'localhost' identified by 'LVMc47NIpmRR';

成功すると、以下の文が表示される。

Query OK, 0 rows affected (0.00 sec)

作成したユーザへ権限の付与

grant all privileges on wp_knutdb_zvy1vb4u.* to 'wp_knut_mv43no3x'@'localhost';

成功すると、以下の文が表示される。

Query OK, 0 rows affected (0.00 sec)

quitで終了する。

ブラウザでサーバのIPアドレス/WordPressのインストールディレクトリにアクセスすると、「WordPress › インストール」画面が表示され、指示に従いタイトル、ユーザ名等を入力する。
パスワードはメモしておくこと。

入力が終わり「WordPressをインストール」をクリックする。
「Forbidden」が表示された方は、対策が必要です。

対策

原因はセキュリティ対策で導入したModSecurityが原因です。httpd.confを編集します。

vi /usr/local/apache2/conf/httpd.conf

WordPressを操作や書き込みをするIPアドレス追記する。(先頭でも可能)
注意:DMZで仮想サーバを構築した場合、ルータのIPアドレスがアクセス元になります。(access_logで確認)
(例:IPアドレスが192.168.10.1の場合)

SecRule REMOTE_ADDR "^192\.168\.10\.1$" "phase:1,id:133,nolog,allow"

これで再度アクセスし、「WordPressをインストール」をクリックすると画面が切り替わり、「成功しました !」と表示される。

必要なディレクトリ等の操作

このままの状態では、不具合が発生するため、ディレクトリの作成、パーミッションの変更が必要になります。
wp-contentに移動します。

cd wp-content

upgrade, uploadsディレクトリを作成し、権限を変更します。

mkdir upgrade
mkdir uploads
chown -R apache:apache upgrade
chown -R apache:apache uploads

WordPressディレクトリ内部のパーミッションを一括で変更します。
他の解説サイトだと様々なパーミッションが紹介されていますが、この設定だとプラグインの更新やテーマの導入でエラーが発生しません。

cd ..
find ./ -type d -exec chmod 707 {} \;
find ./ -type f -exec chmod 707 {} \;

参考

【WordPress】プラグインをインストールしようとしたら「パッケージを展開しています… ディレクトリを作成できませんでした。」とエラーが出た時の対処法 | 駆け出しwebクリエイター黒ブタの気まぐれブログ
LAMP構築-Linux(CentOS)へWordPressをインストール | 俺の開発研究所
ModSecurity で IP アドレスをホワイトリストに追加しチェックをスルーする方法 | Webセキュリティの小部屋


目次

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5