💭

CentOS7 + Nginx で WordPress をインストールする

2021/02/21に公開

はじめに

WordPressは導入が簡単と聞いていましたが、ひっかかるポイントが多く苦戦したので、メモとしてインストール手順を残しておこうと思います。

WordPressをダウンロード

公式サイトからファイルをダウンロードします。今回はホームディレクトリ以下にWordPressのファイルを置くことにします。ホームディレクトリに移動したあと、以下のコマンドを実行します。
$ wget https://ja.wordpress.org/latest-ja.tar.gz

ダウンロードが完了したらファイルを展開します。
$ tar xzf latest-ja.tar.gz

展開すると、ホームディレクトリにwordpressディレクトリが生成されます。展開が完了したらlatest-ja.tar.gzは必要ないので削除してOKです。

PHPの実行環境を整える

WordPressはPHPで動いています。PHPの実行環境の導入に関しては以下の記事を参照してください。

CentOS7 + Nginx + PHP-FPM でPHPを実行する環境を整える

MySQLの環境を整える

WordPressではMySQLを使用します。

mysql-communityをインストールする

MySQLをWordPressで利用するにはmysql-serverをインストールする必要がありますが、これはデフォルトではyumリポジトリに登録されていないので、まずはmysql-communityをインストールする必要があります。以下のコマンドでインストールできます。
$ sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

MySQL Server をインストールする

以下のコマンドでインストールします。
$ sudo yum -y install mysql-server

WordPressに必要なMySQL拡張をインストールする

これがないとMySQLは使用できてもWordPressでは使用できません。以下のコマンドでインストールします。
$ sudo yum -y install php-mysql

インストール後、反映させるためにはPHP-FPMを再起動する必要があります。
$ sudo systemctl restart php-fpm

MySQLデーモンを起動する

MySQLを起動します。
$ sudo systemctl start mysqld

MySQLが起動できるか確認する

以下のコマンドでMySQLが起動できるかどうか確認してください。
$ mysql

mysql>というプロンプトになれば成功です。MySQLを終了する場合は\qと入力してください。

エラーが出てMySQLが起動できない場合

mysqlコマンドを実行したときに、Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' と表示された場合は何らかの理由でソケットファイルが削除されてしまった可能性があります。以下のコマンドでソケットファイルを作成します。
$ sudo touch /var/lib/mysql/mysql.sock

念のためMySQLデーモンを再起動します。
$ sudo systemctl restart mysqld

もう一度mysqlコマンドを実行して、mysql>プロンプトが出れば成功です。

データベースを設定する

WordPressで使用するデータベースを作成します。rootでMySQLに接続します。
$ mysql -u root

プロンプトがmysql>となれば成功です。

その状態で以下のSQL文を実行します。

mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on wordpress.* to dbuser@localhost identified by '任意のパスワード';
Query OK, 0 rows affected (0.04 sec)

mysql> \q
Bye

⚠️ 入力するのはmysql>の行のみです。

wordpressの箇所はデータベース名です。好きなデータベース名を設定してください。dbuserはこのデータベースのユーザです。データベース名と同じく好きな名前を設定してください。任意のパスワードの箇所にパスワードを設定してください。なお、ここで設定したデータベース名、データベースユーザ名、パスワードは後で使用するので覚えておいてください。

設定したデータベースをWordPressに登録する

先ほど設定したデータベースをWordPressで使用できるように設定します。

設定はwordpressディレクトリ内のwp-config.phpというファイルに記述します。configファイルのサンプルはwp-config-sample.phpなので、これをコピーしてwp-config.phpとします。
$ cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php

コピーしたwp-config.phpを開き、以下のように変更します。

- define('DB_NAME', 'database_name_here');
+ define('DB_NAME', 'wordpress');

- define('DB_USER', 'username_here');
+ define('DB_USER', 'dbuser');

- define('DB_PASSWORD', 'password_here');
+ define('DB_PASSWORD', '設定したパスワード');

- define('AUTH_KEY',         'put your unique phrase here');
- define('SECURE_AUTH_KEY',  'put your unique phrase here');
- 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');
+ define('AUTH_KEY',         'ランダムな文字列');
+ define('SECURE_AUTH_KEY',  'ランダムな文字列');
+ define('LOGGED_IN_KEY',    'ランダムな文字列');
+ define('NONCE_KEY',        'ランダムな文字列');
+ define('AUTH_SALT',        'ランダムな文字列');
+ define('SECURE_AUTH_SALT', 'ランダムな文字列');
+ define('LOGGED_IN_SALT',   'ランダムな文字列');
+ define('NONCE_SALT',       'ランダムな文字列');

DB_NAMEに先ほど設定したデータベース名、DB_USERにデータベースユーザ名、DB_PASSWORDにデータベースで設定したパスワードを入力します。

AUTH_KEY, SECURE_AUTH_KEY , LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT の8つはランダムな文字列を設定します。この文字列は自分で設定するよりも以下のサイトで自動生成された内容をコピーして丸々貼り付けたほうが楽です。

WordPress.org の秘密鍵サービス

Nginxの設定をする

Nginxの設定は CentOS7 + Nginx + PHP-FPM でPHPを実行する環境を整える でも紹介したのでここでは細かいことは省略しますが、今回は説明を簡単にするためにrootをホームディレクトリに変更します。

/etc/nginx/conf.d/default.conf
  location / {
-     root   /home/ユーザ名/www;
+     root   /home/ユーザ名;
      index  index.html index.htm index.php;
  }

  location ~ \.php$ {
-     root           /home/ユーザ名/www;
+     root           /home/ユーザ名;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include        fastcgi_params;
  }

設定したら再起動します。
$ sudo systemctl restart nginx

WordPressを設定する

ここまででWordPressが利用できるようになっているはずです。あとはWordPressのインストール画面にアクセスしてインストールを完了させてください。

お使いのブラウザで、http://ドメイン名/wordpress/wp-config.php にアクセスします。ドメイン名にはサーバで設定したドメインを入力してください。ローカルで環境を整えている場合は、http://localhost/wordpress/wp-config.php または http://IPアドレス/wordpress/wp-config.php にアクセスしてください。

バージョンによってレイアウトは異なりますが、以下のような画面が表示されればOKです。

wordpress_installation.png

表示された画面に従って、サイトのタイトル、ユーザ名、パスワード、メールアドレスを設定してインストールボタンを押すとインストールは完了です。お疲れさまでした。

「お使いのサーバーのPHPではWordPressに必要なMySQL拡張を利用できないようです」と表示された場合

WordPressのインストール画面でこのメッセージが表示された場合はphp-mysqlがインストールされていないことを警告しています。

また、重要なのが、このメッセージを確認したあと、php-mysqlをインストールしてからPHP-FPMを再起動する必要があります。
$ sudo systemctl restart php-fpm

これは忘れがちなので注意してください。

また、確認していないのでわかりませんが、念のためmysqldnginxを再起動しておくと確実かもしれません。
$ sudo systemctl restart mysqld
$ sudo systemctl restart nginx

参考: お使いのサーバーのPHPではWordPressに必要なMySQL拡張を利用できないようです@Nginx

参考サイト

GitHubで編集を提案

Discussion