はじめに、この記事群は前に行った事を思い返して書いています。それ故、実際の内容とズレや抜けが生じているかも知れません。

前回で、とりあえずサーバがウェブサイトを表示する事は出来るようにはなった。頑張れば、そのままブログを書き始めることも出来る。

しかし、だ。作者はHTMLやCSS、JavaScript、その他Web言語に関する知識があまり無い。今の段階だと、サーバにはあくまで「ファイルの内容を表示させる」機能しか搭載されていないため、いちいちHTMLファイルやらなんやらを作り自分で全て管理しなければならなくなる。それはあんまりにも面倒だ。そこで今回はブログソフトウェアをインストールしてブログを作成していく事にする。

WordPress:単語のプレス加工(?)

さて、今回はあまり悩まずに決める事が出来た。使用するソフトウェアはWordPressだ。なんですぐ決まったかって?競合しているサービスが全くと言って良いほど無かった(見つけられなかったから)だ。

ブログを始めるにあたっておすすめのサービスは多く見つかったが、そのどれもが「サーバも込でサービスの1部」というものだった。「既に立ててあるサーバに対してインストールして使用するタイプ」では無かったのだ。そんな中唯一あったのがWordpressだった。機能もかなり優れているらしい。早速インストールしよう。

インストール(ファイル設置編):5分間では終わらない

まずWordPressをここからダウンロードして・・・ダウンロードしてだな・・・そういえば、今みなさんはおそらくサーバをヘッドレス(CUI、つまり画面上にコマンドしか出ていないモード)で運用しているはず。つまりブラウザからクリックしてダウンロードは出来ないか。(作者はヘッドレスにする前にブラウザからインストールしてしまった)こういう時は、wgetだ!

「wget」コマンドを使うと、インターネット上のデータをダウンロードする事が出来る。

こんな感じにだな・・・

wget https://ja.wordpress.org/latest-ja.tar.gz
--2019-03-15 02:56:25--  https://ja.wordpress.org/latest-ja.tar.gz
Resolving ja.wordpress.org (ja.wordpress.org)... 198.143.164.252
Connecting to ja.wordpress.org (ja.wordpress.org)|198.143.164.252|:443... connected.
Unable to establish SSL connection.
#SSL接続出来ませんでした(笑)

だめじゃねーか。もう1回、今度は「–no-check-certificate」を付けて(このサイトを参考にしました)

いかん、駄目だ。ダウンロード出来ん。いや、待ってくれ。こんなはずでは無い。ちょっと待ってくれ。

何だ、SSHでサーバに繋いでないだけだったか。今のは見なかった事にしてもう1度!

#wgetでファイルをダウンロード
wget https://ja.wordpress.org/latest-ja.zip
--2019-03-15 03:15:01--  https://ja.wordpress.org/latest-ja.zip
ja.wordpress.org (ja.wordpress.org) をDNSに問いあわせています... 198.143.164.252
ja.wordpress.org (ja.wordpress.org)|198.143.164.252|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 12171656 (12M) [application/zip]
`latest-ja.zip' に保存中

latest-ja.zip                       100%[=================================================================>]  11.61M  3.07MB/s    in 3.8s

2019-03-15 03:15:05 (3.07 MB/s) - `latest-ja.zip' へ保存完了 [12171656/12171656]

#lsでファイルがダウンロードできたか確認
ls
Desktop  Documents  Downloads  MagPi  Music  Pictures  Public  Templates  Videos  latest-ja.zip

よし!上手く行った!「latest-ja.zip」が無事ダウンロードされている。こいつを移動させて・・(作者は既に環境を構築した後なので、ここからのコマンド入力結果は再現したものになる)

#ファイルの移動
sudo mv latest-ja.zip /var/www/html
#操作ディレクトリの移動
cd /var/www/html
#/var/www/html にlatest-ja.zipが有るかを確認する
ls
latest-ja.zip
#latest-ja.zipを解凍する
sudo unzip latest-ja.zip
#こんな感じにファイルが解答される
inflating: wordpress/wp-includes/nav-menu.php
inflating: wordpress/wp-includes/class.wp-dependencies.php
inflating: wordpress/wp-signup.php
inflating: wordpress/wp-links-opml.php

すると、wordpressフォルダが「/var/www/html」に作成される。のだが、ここで問題が発生した。解凍したファイルをどこに置いたら良いかが分からなくなってしまった。

何言ってんだって?つまりだ。WordPressの各ファイルは現在「/var/www/html/wordpress」以下にある。そうだろう?だがもしかしたら「/var/www/html」以下にファイルを配置しなければならない、即ち一旦「wordpress」フォルダからファイル達を取り出して配置し直さなければならないのかもしれない・・・

「そんなのどっちだって良いじゃねーか!」

いや、全く良くない。この手の予め用意されているソフトは、位置が1つずれるだけでまともに動かなくなってしまう事がよくある。そのため、この決断は結構重要なのだ(まあ駄目だったらやり直せば良いが)。

結局作者は 「/var/www/html/wordpress」 スタイルにした。閲覧したブログでそうやっている人がいたし、こうしてフォルダ分けすれば、後で他のサービスを入れる時に上手く区画分けする事が出来そうだと考えたからだ。(結論から言うと設定が若干面倒になった。しかし、その分の利点もあったはず)

インストール(設定編):進まぬインストール

さーてと、ファイル設置も終わったし、いよいよ設定だ。どれどれ・・・これによるとなんとたったの5分間でWordPressのインストールは終わり、誰でもブログが書けるようになるらしい。こんな事言ったらがっかりさせるかもしれないが

絶対に無理だ

いや、絶対は盛り過ぎか。しかしこういう場合大抵何かが上手く行かなくなりとてつもなく時間がかかる。(無論WordPressが悪いと言っているわけではない。インストールにエラーはつきものだ。)残念ながら今回もそうだった。

本来、WordPressをインストールして元々「 /var/www/html 」にあった「index.html」というテストファイルを削除した後、ブラウザから「wp-admin/install.php」にアクセスするとインストール&設定画面が表示されるようになっている。しかし、何度「readme.html」にあるインストールリンクをクリックしても目的の画面に到着しない。そこで「http://blackblastraven.com/wordpress/wp-admin/install.php」にアクセスしてみると・・・

スクリーンショットを撮っていなかったのだが、「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」といった内容の表示が。しかし、PHPは既にインストールされている。厄介な事になった。

どうやらPHP自体は入っていたが、その拡張版が入っていなかったみたいだ(このサイトを参考にしました)。

 php -m | grep mysql

と入力しても、成程何も表示されない。そのため、

#PHP拡張機能をインストール
sudo apt install php-mysql
#インストールされたか確認
mysqli
mysqlnd
pdo_mysql

まあ、とりあえずインストールされたんだろう。実際作者はこれだけで上手く行った。

いよいよインストール画面に到達

した途端これだよ。この時は画面の指示に従い手動で書き込みできたが、後でやっぱりエラーが起きて直す羽目になった。どうやらApache2が特定の場所に対するファイルの書き込み権限を持っていないことによるエラーらしい。

#Apache2にファイルの操作権限を渡す。
chown -R apache:apache /var/www/html/wordpress
#はいエラー(^o^)
chown: ユーザ指定が不正: `apache:apache'

この**が!1つのソフトインストールするのに何個エラーと戦わなけりゃいけないんだよ。どうやらRaspberriPiだとapache2は「apache」という名前では動いていないらしい。このサイトによると、どうやら「/etc/apache2/apache2.conf」にユーザ名が書いてあるらしい。

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
たらい回しかよ。どうやら「/etc/apache2/envvars」に書いてあるらしい。本当だろうな?

#ユーザ名
export APACHE_RUN_USER=www-data
#ユーザグループ
export APACHE_RUN_GROUP=www-data

やっと見つけた・・・他にも今現在動いているサービス名からたどる方法もあるらしいが、それは疲れたのでまた今度。(ひょっとしたら作者はそっちの方法を使ってたかも・・結構前の事だから確証が無い。すまん)

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

これで今度こそ権限が渡された。

インストール(MySQL編):データバンクとエラーラッシュ

そうすると、いよいよそれっぽい画面が表示される(作者がスクリーンショットを無くしていなければ実物を見せられたんだが)。画面には

  • データベース名
  • ユーザー名
  • パスワード
  • データベースのホスト名
  • テーブル接頭詞

を入力するように表示されている。

WordPressは記事をMySQLと言うデータベース(データの金庫みたいなやつだ)で管理しているため、まずはデータベースの作成をする必要があるらしい。

と思ったが違うわこれ。どうやらデータベースはこっちが予め作って用意しておかないといけないらしい。データベースの操作とかわからんぞ。とりあえずまずはMySQLをインストールする必要があるから

sudo apt install mysql

何故かパスワード設定が無いままインストールが完了した後、多くのサイトを参考に(すいません、最も参考にしていたサイトのリンクが見つからなくなってしまいました)して・・・

#mysql を root ユーザで操作する
mysql -u root -p
#パスワードを入力してください
Enter password:
#アクセス権限がありません
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

てめえいい加減にしとけよ

てめぇがパスワード無しでインストールさせたんじゃねーか!

・・・失礼、ただ実際作者はこの辺から結構疲労困憊状態になっていた。(まあまだまだ終わらんが)

どうやら、ログインするにはsu状態かsudoする必要があるみたいだ。慌てず落ち着いて考えればなんのことはない、余裕だ。

ここからいよいよMySQLについて書きたいのだが、さんざん参考にしたサイトのURLが見つからなくなってしまった。デタラメ書く訳には行かないし、MySQLの設定内容はその記事が見つかったらという事で・・・とりあえず今はMySQLにデータベーステーブルを作り終わったところから話を再開する。

インストール(MySQLの接続編):ドッキング失敗!

ではいよいよWordPressにMySQLの登録内容を記入して、記入してだな、予想はつくだろうがまたエラーだ。「ユーザー名もパスワードも合っているがデータベースにアクセスする事が出来ない」らしい。ユーザ名とパスワード合ってるの確認できるならデータベースもなんとか見つけろよ。

こういう時は手動操作だ。なんと言っても作者は一国一城の主、サーバの保有者だ。自動で設定出来ないならsuでもsudoでも使って実力行使直接書き込む事が出来る。まずwordpress内の「wp-config-sample.php」を「wp-config.php」という名前でコピーして

cp wp-config-sample.php wp-config.php

wp-config.phpを編集する。

/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'xxxxxxxxx' );

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

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

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

/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8mb4' );

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

/**#@+
 * 認証用ユニークキー
 *
 * それぞれを異なるユニーク (一意) な文字列に変更してください。
 * {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成することもできます。
 * 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、すべてのユーザーを強制的に再ログインさせることになります。
 *
 * @since 2.6.0
 */
#自動生成した鍵をここに記述

/**#@-*/

/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
$table_prefix = 'wp_';
/**
 * 開発者へ: WordPress デバッグモード
 *
 * この値を true にすると、開発中に注意 (notice) を表示します。
 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
 *
 * その他のデバッグに利用できる定数については Codex をご覧ください。
 *
 * @link http://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0
 */
define('WP_DEBUG', false);

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

(アクセスするべきURLは「https://api.wordpress.org/secret-key/1.1/salt/WordPress.org」ではなく「https://api.wordpress.org/secret-key/1.1/salt/」だ。こういうイージーミスが精神にダメージを与える。)

これでよし。念の為1度再起動して(多分しなくて良い)、もう1度「http://blackblastraven.com/wordpress」にアクセスすれば・・・いよいよインストール完了だ!!

・・・続きは次回にしよう。書き疲れた。しかもまだ設定完了してないし

また次回、それまでさらばだ!!

この記事が気に入ったら
フォローしよう

最新情報をお届けします

おすすめの記事