基本的に、debian本家のWordpressのページ(https://wiki.debian.org/WordPress )のやり方に沿って導入。このページの内容の半分は、このサイトの邦語訳。
パッケージ導入 – Debian 9 (Stretch) 及び 10 (Buster)の場合
必要なソフトウェアのインストール。
$ sudo apt update
$ sudo apt install wordpress curl apache2 mariadb-server
以下のコマンドでMySQLの導入をセキュアに行う。
$ sudo mysql_secure_installation
基本導入ガイド – サイトの作成
ウェブサーバ”apache”のワードプレス用の設定ファイルを作成します。 ”editor”は好きなエディタに置き換えて設定ファイル編集してください。 まんま”editor”と打つとnanoが立ち上がります。(私はviを使うけど、 不案内な人がviを立ち上げると終了の仕方がわからなくて終了するので…^^;)
$ sudo editor /etc/apache2/sites-available/wp.conf
以下を追記、example.comは自分のドメインに置き換える。(このためにmydns.jpでドメインを取得しましたー)
<VirtualHost *:80>
ServerName myblog.example.com
ServerAdmin webmaster@example.com
DocumentRoot /usr/share/wordpress
Alias /wp-content /var/lib/wordpress/wp-content
<Directory /usr/share/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /var/lib/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
置き換える場所はイタリックにしました。また、https に対応させるには”*:80″を”*.80 *.443″にする必要があるようです。
また、ウェブに公開されるディレクトリは、aptでインストールした際の/usr/share/wordpressになっています。
デフォルトの仮想ホストを無効にして、このサイトを有効にする
初期は、 /etc/apache2/sites-available/000-default.conf の設定で/var/www/htmlディレクトリ以下が公開されているようです。この設定を無効化して、ワードプレスのディレクトリの公開を有効化します。設定は次項でウェブサーバをリロードして有効になります。
$ sudo a2dissite 000-default
$ sudo a2ensite wp
ウェブサーバのリロード
$ sudo systemctl reload apache2
データベースの設定
エディタで /etc/wordpress/config-$DM.phpを作成します。$DM はドメイン名で、ドメイン名全体がmyblog.example.comだとすると、次のようなファイルを作成します。
- /etc/wordpress/config-myblog.example.com.php (よくわからなければ、これが標準)
- /etc/wordpress/config-example.com.php (これはサブドメインの複数のサイトに利用)
- /etc/wordpress/config-default.php (これは、ほかのファイルがあなたのドメインにマッチしない場合のフォールバックとして使用)
WordPressは上記の順で検索して、最初に見つかった設定ファイルを利用します。 ドメイン名はブラウザのHTTPリクエストから取得されます。これにより、異なる複数のドメインをホストする際に、各ホストに異なる設定を指定できます。
$ sudo editor /etc/wordpress/config-myblog.example.com.php
以下の内容を入力します。(注意!)passwordは適切にセキュアなパスワードに置き換えてください。(!)
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
?>
↑なお、自宅のPCでブラウザにURLを入力しても見られず、Wifiをオフにしたスマホでドメインを入力してみたら見られました。ソフトバンクの光BBユニットがヘアピンNATという機能に対応していないせいで、ネットワーク内のサーバにリクエストを転送してくれないようです。PCからはIPアドレス直打ちで見る必要があり、そのためのconfigファイルも必要になってしまうので、シンボリックリンクを作成しています
⇒$ sudo ln -s /etc/wordpress/config-snowflake.forecast.mydns.jp.php /etc/worpress/config-192.168.x.x.php
(同日追記:あくまで端末側から見た見かけ上の話ですが、端末側のhostsファイルにドメイン名とサーバのIPアドレスの対応を書いておくと、ドメイン名を入力してもリクエストはルータに行かず、直接サーバのIPアドレスにアクセスするようになります。端末の見かけの挙動は変わりますが、サーバ側には関係ないので、引き続きシンボリックリンク必要…かな?未検証です。hostsファイルは、 Linuxなら/etc/hosts,Windows 10 ならc:\Windows\system32\drivers\etc\hostsにあります。)(後日追記:検証しました。シンボリックリンク必要でした。)
データベース作成手順を描いたファイルを作成します。
$ editor ~/wp.sql
以下の内容を記入します。 (注意!)passwordは適切にセキュアなパスワードに置き換えてください。(注意!) configファイルで指定したパスワードと同じものを指定するのですよ!
CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
手順を読み込んでデータベースを作成します。
sudo cat ~/wp.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf
ブラウザでワードプレスのディレクトリを閲覧する。
例: http://myblog.example.com/
これは、http://myblog.example.com/wp-admin/install.php にリダイレクトされ、”classic” wordpress 5分間インストールページが表示されます (実際にはDebianのパッケージングのおかげで5秒のインストールです)
サイト名、管理者のユーザ名、パスワードを入力して完了です。
上記の手順に従ってやりましたが
なぜか”GRANT SELECT,INSERT, …”でできるはずの”wordpress@localhost”のデータベースへのアクセス権限がうまくいきませんでした。以下のようにごちゃごちゃやっていつの間にかうまく動くようになっていました…(汗
$ mysql -u wordpress -p
#(パスワードを入力してログインし、”SHOW DATABASES;”したが"wordpress"が見えない)
$ sudo mysql
#( ”SHOW DATABASES;”で"wordpress" は見つかるが、うまく動かないので"DROP DATABASE wordpress;"してやり直す)
補足:管理画面を日本語表記に変更する方法
WordPressの管理画面は、設定から言語選択することができます。こちらは 以下のURLから転載させていただいています。”https://help.mixhost.jp/hc/ja/articles/115003742392-WordPressの管理画面を日本語表記に変更する方法”
WordPress管理画面 > 設定 > サイトの言語で日本語を選択して変更を保存ボタンを押してください。(転記注:WordPress管理画面 > Settings > Site Language で「日本語」を選択した後、「Save Changes」ボタンで保存が必要)