仮想マシンのUbuntuServerにWordPressをインストールする記事も今回で3つめになります。
前回までに、仮想マシンにLAMP環境を整え、アクセスするとHTMLファイルが表示できるようにしました。
今回は、WordPressのインストールから、WebブラウザでアクセスしてWordPressを表示できるようにします。
困ったら、WordPressのCodex(コーデックス)を参照するのも大切です。
書き込むのなら、印刷するのも良さそう。
このページを印刷しておくと、インストールの間、手元に置けて便利です。
環境・ソフトウェアなど
ホストOS:Ubuntu 16.04 LTS (64bit)
VirtualBox:5.1.14
(2017年8月10日現在、5.1.26)
ゲストOS:UbuntuServer 16.04 (64bit)
WordPress:4.8.1(2017年8月12日現在)
まずは、WordPressをダウンロードするところから始めていきます。
最新版のWordPressをダウンロード
SSHで仮想マシンにログインして作業を進めます。
最新版のWordPressを指定のディレクトリにダウンロードし(Fig1)、展開(解凍)します。
「/var/www/html」ディレクトリにダウンロードします(Fig2)。
この場合、作成したWordPressのURLは「192.168.56.101/wordpress/」になります。
(このとき、このwordpressディレクトリを、「サブディレクトリ」といいます)
phpファイルのテストも兼ねているのでhtmlディレクトリの中にwordpressディレクトリを置いていますが、「192.168.56.101/」でWordPressにアクセスしたい場合は、ディレクトリの保存、及び展開する場所を変える必要があります。
【参考】
WP★サブディレクトリにインストールしたWordPressをルートディレクトリに表示する方法
【htmlディレクトリに移動するコマンド】
$ cd /var/www/html
【最新版のWordPressをダウンロードするコマンド】
$ sudo wget http://ja.wordpress.org/latest-ja.tar.gz
5年ほど前にダウンロードしたときはファイル名にバージョン番号が入っていましたが、「latest(最新)」で統一されているのは便利ですね。
モダンブラウザのようなGUIじゃないとバージョンを確認できないから、「CUIのサーバしかない環境だとどうするんだ?」って思った頃がありました。
Codexには「wordpress.org/latest.tar.gz」とありますが、これは英語版です。
一度やらかしました。
また、「多言語対応」なのですが、インストール後の設定画面では英語しか選択できず、インストールをやり直すことになりました(Fig2)。
必ず日本語版をダウンロードしましょう。
【WordPress日本語ローカルサイト】
日本語 — WordPress
圧縮ファイルを展開する
ダウンロードに成功したら、WordPressのアーカイブファイルが存在するハズです。
【ディレクトリの中身を表示するコマンド】
$ ls -al
(「/var/www/html」ディレクトリに移動している場合)
次は、アーカイブファイルを解凍しましょう。
【アーカイブを展開するコマンド】
$ sudo tar -xzvf latest-ja.tar.gz
「tar」コマンドは、アーカイブの作成(圧縮)と展開(解凍)を行います。
「-xzvf」というオプションを見ていきましょう。
- 「-x」:展開・抽出(解凍)を行う
- 「-z」:gzip形式を圧縮・解凍する
- 「-v」:処理したファイルを詳しく出力する
- 「-f」:処理する対象(ファイル)を指定する
なお、圧縮するには「-c」オプションを使います。
「-x」とは対の関係ですね。
【参考】
Linux基本コマンドTips(40):tarコマンド――アーカイブファイルを作成する/展開する – @IT
実行すると、/var/www/html/ディレクトリにwordpressディレクトリが作成されます(Fig3)。
WordPressのインストール
WordPress用のデータベースを作成
Codexには、3つの選択肢が示されています。
cPanel、PHPmyadomin、MySQLが挙げられますが、MySQL以外は試したことがありません。
MySQLでの手順を紹介しますが、それ以外の方法は調べてください。
▼MySQLにログインする
LAMPのインストール、もしくはMySQLを個別にインストールした際に決めたパスワードが必要になります。
また、いくつかの重要な情報を控えておく作業もあります。
あらかじめ決めておくとスムーズに進むでしょう。
・データベース名
・MySQLユーザ名
・MySQLパスワード
【MySQLにログインするコマンド】
$ mysql -u (ルートユーザ名) -p
(ここでの例は、アカウント名:root、パスワード:rootpassになります)
ログインが完了すると、MySQLのプロンプトに切り替わります。
▼WordPress用のデータベースを作成する
データベースを作成するにあたって、「データベース名」が必要になります。
(ここでは、「wordpress」にしています)
【新規にデータベースを作成するSQLコマンド】
mysql> CREATE DATABASE 【データベース名】;
末尾のセミコロンを忘れずに。
▼MySQLのユーザを作成する
【MySQLユーザを作成するSQLコマンド】
mysql> GRANT ALL PRIVILEGES ON 【データベース名】 .*TO "【MySQLユーザ名】"@"【ホスト名】"
> IDENTIFIED BY "【MySQLパスワード】";
(ここでは、ユーザ名を「wpdbadmin」、パスワードを「wpdbpass」にしてあります(Fig4))
ホスト名の直後に区切っていますが、1行で書いても実行されます。
長過ぎるので区切っているのでしょう。
ここでは、ホスト名は「localhost」が入ります。
実行したコマンドを反映させるために、「FLUSH」構文を使います。
FLUSH ステートメントは、MySQL に利用された様々な内部キャッシュをクリアー、または再ロードします。FLUSH を実行するためには、RELOAD 権限を持つ必要があります。
【MySQLのキャッシュをクリア、リロードするSQLコマンド】
mysql> FLUSH PRIVILEGES;
スペルミスに注意しましょう。
FLESHではなく、FLUSHです。ちなみに、フレッシュ(新鮮)は「FRESH」。
最後に、MuSQLからログアウトします。
【MuSQLからログアウトするコマンド】
mysql> EXIT
これで、WordPress用のデータベースを作成できました。
wp-configの作成と編集
wp-config.phpファイルは、データベースのや秘密鍵などの情報を持ちます。
展開したファイルの中には存在せず、wp-config-sample.phpから作成することになります。
なので、ここではコピーとリネームを行います。
▼wp-config.phpの作成
「cp」コマンドを使うことで、コピーとリネームを行うことができます。
そのために、wordpressディレクトリの中に移動しましょう。
【現在の居場所を表示するコマンド】
$ pwd
「html」ディレクトリにいるなら、wordpressディレクトリに移動する必要があります。
【wordpressディレクトリに移動するコマンド】
$ cd wordpress/
wp-config-sample.phpが存在するかどうか、「ls」コマンドで見てみましょう。
wp-config-sample.phpがあるなら、コピーとリネームを行います。
【ファイルをコピー・リネームするコマンド】
$ sudo cp wp-config-sample.php wp-config.php
サンプルファイルをA、wp-config.phpをBとすると、「AをBという名前でコピーする」を解釈できます。
「ls」コマンドを使うと、リネームされたwp-config.phpが存在するハズです(Fig5)。
▼wp-config.phpの編集
viエディタを使って、先ほど入力したデータベースの情報や公開鍵を入力していきます(Fig6)。
編集が怖い人は、FTPで送り込んでもいいでしょう。
この例では、以下のフレーズを入力しています。
DB_NAME:wordpress
DB_USER:wpdbadmin
DB_PASSWORD:wpdbpass
DB_HOST:localhost
DB_CHARSET:UTF-8
DB_COLLATE:(空欄)
認証ユニークキーは、ランダムな文字列を生成してくれるサイトを利用します。
これに関しては、Codexの方が詳しいと思います。
(実は、私たちが知らないだけで、Windowsでも「Shift+Insert」を使えます。15へぇ)
【参考】
wp-config.php の編集 – WordPress Codex 日本語版
データベースの接頭辞もここで編集できます。
テスト環境なので変更しませんが、セキュリティのためには変更した方がいいようです。
(Xserverでは、自分でデータベースを作成しない限り接頭辞はデフォルトになります)
【番外】viでの操作ミスの対処
インストールのガイドからは離れますが、少しviエディタでの失敗談を紹介させてください。
当時はまだviに慣れてなくて、正しく保存されずにエラー(E325)を出したことがありました(Fig7)。
異常終了した際にバックアップ(スワップ)ファイルが作成され、それを復元(Recover)するかどうかを訊かれます(Fig8)。
指示された方法では復元できず、不要なファイルが残っているのも気持ち悪いので、削除する方法を試みました。
バックアップファイルは「隠しファイル」なので、lsコマンドにオプションを指定する必要がありました。
【隠しファイルも含めてディレクトリの中身を表示するコマンド】
$ ls -al
リストの中に、「wp-config.php.swp」がありました。
削除するには「rmコマンド」を使いますが、工夫する必要があります。
隠しファイルを削除するには、ファイル名の先頭に「.(ドット)」を付け加えます(Fig9)。
【隠しファイルを削除するコマンド】
$ sudo rm -v wp-config.php.swp
Linuxのコマンドは「成功しても沈黙を貫く」場合があります。
「-v」オプションを指定することで、結果を表示させられます。
ここでもう一度リストを表示させたところ、今度は「wp-config.php.swo」が作られていました。
拡張子「swo」もバックアップファイルの模様。
これも同じように削除して、作業に戻りました。
閑話休題。
サーバにWordPressのインストール
wp-config.phpの編集が終わったので、WordPressのインストールへ進みましょう。
仮想マシンのサーバにブラウザでアクセスします。
設定が同じなら、「192.168.56.101/wordpress/wp-admin/install.php」です。
あとは、サイト名やユーザ名を任意に入力してください。
インストールが終わればダッシュボードが表示されるハズです。
これで仮想マシンのUbuntuServerにWordPressをインストールできました。
インストール後の作業
インストールは終わりましたが、サーバの設定でいくつかトラブルに遭うことが予想されます。
というか、トラブルに遭います。
「FTPの情報を求められた」とか、「パーマリンクを変更すると404になる」とか。
その辺りの情報も書いておくので、参考になれば幸いです。
【+α】FTP情報の入力を回避する方法
WordPressのインストールが終わったら、本体やプラグインのアップデートをしたいと思うでしょう。
おそらく、FTPの情報を求められるハズです。
しかし、「管理者に問い合わせろ」と言われても自分自身が管理者だし、そんなものはありません。
これは、WordPressディレクトリの所有者が適切でないために、情報の入力が求められているものです。
その条件とは、「Wordpressのディレクトリのownerがphp(httpd)実行ユーザと同一であること」です。
WordPressでは、「wp-admin/includes/file.php」で以下のように一時ファイルの作成と、そのファイルのownerとphp実行者が同じかを判定して、同じであれば、Wordpress配下のフォルダに、アップグレードするために必要なファイルを作成したり、更新したりしても問題ないと判断します。
適切な所有者は「www-data」です。
「chown」(change owner)コマンドでwordpressディレクトリの所有者を変更します(Fig10)。
【wordpressディレクトリの所有者とグループを変更するコマンド】
$ sudo chown -R www-data:www-data wordpress
(このコマンドをそのまま使う場合、「/var/www/html」ディレクトリに移動してから実行してください)
「ls -al」コマンドで変更されていればOKです(Fig)。
【+α】パーマリンクの変更を適用する方法
パーマリンクの設定を変更することで、記事のURLを変更することができます。
変更というより、実際はWordPress内部で変換されています。
なので、変換ができないと、デフォルトのパーマリンク以外ではページを表示することができずに404のエラーになります。
解決するにはhttpd.confを編集する……と言いたいところですが、それはCentOSでの話。
Ubuntuでは編集するファイルが違います。
(解説記事でもOSを明記しないから混乱することもしばしば)
Ubuntuでは、「/etc/apache2/apache2.conf」ファイルになります。
以下の内容を、「 ~ 」の下に追記します(Fig11)。
<Directory /var/www/html/wordpress>
AllowOverride All
</Directory>
mod_rewriteモジュールを有効化します。
【mod_rewriteを有効化するコマンド】
$ sudo a2enmod rewrite
mod_rewriteを有効化すると、apacheの再起動を要求されます。
【apacheを再起動するコマンド】
$ sudo service apache2 restart
これでパーマリンクを変更すると、無事にページが表示されます。
仮想マシンでWordPressをインストールした場合、ほとんどと言っていいほど、この問題に遭遇します。
私は5年前から、WordPressをインストールする度に繰り返しています。
(WordPressがフロントエンドなら、ダッシュボードから全部設定させてくれよと思ったりします……)
【参考】
WordPressのパーマリンクが表示されないときの解決法(ubuntu × apache2) – Qiita