Ubuntu 16.04にWordPressをインストールする方法

Ubuntuインストールの全体像は👇にまとめております。

WordPressの開発をやりたいと思い、Ubuntu 16.04 ServerにWordPressをインストールしました。

ローカル環境にWordPressがあるとCSSやプラグインの開発がやりやすくなります。

目的
  • WordPress専用機 (ルートディレクトリにインストールする)
  • URL【https://ygkb.jp.lan/】でWordPress画面が開くようにインストール
  • 開発目的で動けば良いのでファイアウォールなどセキュリティ面の設定は省略 もしくは制限なしにする
スペック
  • 処理系・・・PHP7
  • DB・・・MySQL5.7
  • Webサーバー・・・Apache2
記事内容
  • WordPressの動作に必要なソフトを追加インストール
  • WorpPressのインストールと設定
もくじ(押すと各章に飛ぶ)

追加インストール

WordPressの動作に必要な以下のソフト(ミドルウェア)をインストール。

  1. PHP
  2. MySQL
  3. Apache2

インストールコマンドを実行。

sudo apt update
sudo apt install mysql-server php php-mysql apache2 libapache2-mod-php php-gd php-mbstring php-xmlrpc php-zip

1行目…リポジトリを最新にする
2行目…インストール実行。php-と付くものはよく使われるPHPの拡張モジュール。
レンタルサーバーに必ず入っているようなものはあるはず。

MySQLのrootパスワード

途中、MySQLの管理者(root)のパスワードの入力を求められる。

1回目

1回目

2回目

2回目

空にすると、インストール中にしつっこく「良いのか?危ないぞ?」と割り込んでくるので、何か適当に入れておきましょう。

MySQLの設定

ログイン

mysqlコマンドでMySQLにログインする。

mysql -u root -p

インストール時に設定した(MySQLの)rootパスワードを入力する。

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.17-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

データベース作成 – CREATE DATABASE

mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)

ここではwordpressという名前で作っています。

常用ユーザー作成

WordPress用のユーザーを作成します。

ここではygkb_techoというユーザーを作り、先ほど作成したwordpressデータベースへのアクセス権限を全て与えています。

ユーザー作成 – CREATE USER

mysql> CREATE USER ygkb_techo IDENTIFIED BY '【パスワード】';
Query OK, 0 rows affected (0.00 sec)

権限を与える – GRANT ALL ON

DB名の後の「.*」はDB内の全てのオブジェクトという意味。

mysql> GRANT ALL ON wordpress.* to ygkb_techo;
Query OK, 0 rows affected (0.00 sec)

権限情報の即時反映

稼働中のDBに設定変更結果を即時反映させる。

mysql> FLUSH PRIVILEGES;

確認 – SHOW GRANTS FOR

mysql> SHOW GRANTS FOR ygkb_techo;
+-----------------------------------------------------------+
| Grants for ygkb_techo@%                                   |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ygkb_techo'@'%'                    |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO 'ygkb_techo'@'%' |
+-----------------------------------------------------------+
2 rows in set (0.00 sec)

quitでMySQLコマンドを抜ける。

WordPressインストール

UbuntuにおけるApacheのデフォルト設定は

  • ルートディレクトリ:/var/www/html
  • グループ・所有者共にroot

となっています。

ルートディレクトリにWordPressをインストールします。

 

デフォルト設定だと、セキュリティ条件がちと厳しいです。

このままだとプラグインの更新や本体の自動アップデート等に支障をきたすので、権限周りを緩くしながらインストールします。

WordPressの最新版入手

作業用ディレクトリに移動

cd /tmp

日本語版WordPress最新版の入手

ダウンロード
curl -OL http://ja.wordpress.org/latest-ja.tar.gz
$ curl -OL http://ja.wordpress.org/latest-ja.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0     0    656      0 --:--:-- --:--:-- --:--:--   659
100 8281k  100 8281k    0     0   262k      0  0:00:31  0:00:31 --:--:--  263k
解凍
tar -xzvf latest-ja.tar.gz

/tmp/wordpressディレクトリが出来ている。

公開用ディレクトリの準備

.htaccessを作る。後でWordPressが書き込むので空で良い。
WordPressが書き込めるようにグループ書き込み権限を加える。

touch /tmp/wordpress/.htaccess
chmod 660 /tmp/wordpress/.htaccess

サンプルをコピーして設定ファイルの雛形を作る。

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

自動更新用ディレクトリを作っておく。

mkdir /tmp/wordpress/wp-content/upgrade

/var/www/html内にwordpressディレクトリをコピーする。
コピー元ディレクトリに .(ドット) を付けるとファイル名先頭にドットを含むファイルもコピーしてくれる。

sudo cp -a /tmp/wordpress/. /var/www/html/wordpress

wordpressディレクトリ以下の所有者をログインユーザーに変更する。

sudo chown -R fuka:www-data /var/www/html/wordpress

WordPress本体のバージョンアップ、テーマ・プラグインのインストール、翻訳のインストールができるようにグループに書き込み権限を与える。

sudo chmod -R g+w /var/www/html/wordpress/wp-content
sudo chmod -R g+w /var/www/html/wordpress/wp-includes

設定ファイル(wp-config.php)の修正

WordPressインストール先ディレクトリに移動。

cd /var/www/html/wordpress/

wp-config.phpを修正する。
修正箇所は

  1. 認証用ユニークキー
  2. データベース設定
  3. ファイルアクセス方法

の3箇所。

sudo vi wp-config.php

データベース設定

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //

という箇所を探し、先程MySQLに設定したDB名、アクセス用IDとパスワードを記入。

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

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

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

認証用ユニークキー

/**#@+
 * 認証用ユニークキー

という箇所を探し、

curl -s https://api.wordpress.org/secret-key/1.1/salt/

を実行した結果を貼り付ける。

/**#@+
 * 認証用ユニークキー
 *
 * それぞれを異なるユニーク (一意) な文字列に変更してください。
 * {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成することもできます
。
 * 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、すべてのユーザーを強制的に再ログインさせ
ることになります。
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         '?u6Z…(略)…z|<j');
define('SECURE_AUTH_KEY',  '.Tf/…(略)…LZZa');
define('LOGGED_IN_KEY',    'm3uy…(略)…@j+C');
define('NONCE_KEY',        'FcS0…(略)…[(!,');
define('AUTH_SALT',        '{VY|…(略)…,N<h');
define('SECURE_AUTH_SALT', ':-5&…(略)…(BX~');
define('LOGGED_IN_SALT',   '3B>Z…(略)…W1z-');
define('NONCE_SALT',       '&<}?…(略)…oSMH');

ファイルアクセス方法

Apacheに直接ファイルアクセスさせるようにしてプラグイン更新時の認証を不要にします。
前段でwordpressディレクトリにグループ書き込み権限を与えたのはこのためです。
Apacheはwww-dataグループに属しているため、書き込めるようになります。

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

を探し、その手前に

define('FS_METHOD', 'direct');

を記入する。

define('FS_METHOD', 'direct');
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

Apache設定

apache2.confの変更

設定ファイルをのバックアップ。

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bk

設定ファイルを編集。

sudo vim /etc/apache2/apache2.conf
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

の下に

<Directory /var/www/html/wordpress>
    AllowOverride All
</Directory>

を追加。

動作チェック。

sudo apache2ctl configtest
$ sudo apache2ctl configtest
[sudo] fuka のパスワード:
Syntax OK

mod_rewrite有効化

パーマリンク設定のためにURLリライトを有効化します。

sudo a2enmod rewrite
$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  service apache2 restart

WordPress用の設定を作る

デフォルト設定のコピーを作る。

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/010-wordpress.conf

コピーした設定ファイルを開き、ドキュメントルートをWordPress用ディレクトリに指定する。

sudo vi /etc/apache2/sites-available/010-wordpress.conf
<VirtualHost *:80>
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/wordpress

    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

デフォルト設定を無効。

sudo a2dissite 000-default
$ sudo a2dissite 000-default
Site 000-default disabled.
To activate the new configuration, you need to run:
  service apache2 reload

WordPress用設定を有効。

sudo a2ensite 010-wordpress
$ sudo a2ensite 010-wordpress
Enabling site 010-wordpress.
To activate the new configuration, you need to run:
  service apache2 reload

Apacheサービスを再起動。

sudo systemctl restart apache2

動作確認

ブラウザで https://ygkb.jp.lan/ を開き、WordPress初期画面が開くことを確認。

まとめ

ローカル環境にWordPressがあると、本番ではやりにくい事がガンガンできるようになるので便利です。

Hyper-V仮想マシンの準備、Ubuntuのインストール、ネットワーク周りの設定、WordPressのインストールなど、Ubuntuに関することを一通りまとめたページです。

WordPress開発環境をVagrantでも作ったことがあります。
Vagrantを触ってみたい方は読んでみてください。

では(^O^)/

お役に立てたらシェアお願いします(^O^)/
  • URLをコピーしました!
もくじ(押すと各章に飛ぶ)