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の動作に必要な以下のソフト(ミドルウェア)をインストール。
- PHP
- MySQL
- 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回目
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
を修正する。
修正箇所は
- 認証用ユニークキー
- データベース設定
- ファイルアクセス方法
の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^)/