Mozilla のコミュニティーサイトで、ログインしてもイベントが作成できない不具合が続いている。発生しているユーザーとそうでないユーザーがいるらしい。手元で再現を試みるため、Wordpress パッケージをインストールしてみた。
しかし、パッケージをインストールしただけでは、Permalink を post-name にした場合に固定ページが Not Found になって表示されない。
試行錯誤した結果、固定ページが表示されるようになった。
作業した順序とは違うが、後で見たときにポイントがわかるよう、まとめる。
想定:
- Apache の VirtualHost を使う。 comm.quarx.islocal をサイト名に使用し、/etc/hosts でも設定してある。
- Apache2 パッケージでインストールされる既定のサイト設定000-default.conf は使わない
- マルチホストは使わない
- /etc/wordpress/htaccess は使わない(すべてコメントアウト)
手順:
- インストールするパッケージ
明示的に、この4つを指定すると必要なものは依存関係で入ってくる。Apt の設定で、Recommended パッケージはインストールしないことにしている
# apt install apache2 wordpress mariadb-server wordpress-theme-twentytwentythree
- MariaDB で Wordpress 用にデータベースを作る
緑字の wordpress wordpress_user password は、データベース名、接続ユーザー名、接続パスワード なので、適宜変更すること。
# mariadb
MariaDB> create database wordpress default character set utf8 collate utf8_unicode_ci;
MariaDB> grant all on wordpress.* to 'wordpress_user'@'localhost' identified by 'password';
MariaDB> flush privileges;
MariaDB> exit;
- Wordpress の設定ファイルに、DBの設定を書き込む。
comm.quarx.islocal はブラウザーで開くときのサイト名なので、適宜変更すること。
# cp /usr/share/doc/wordpress/examples/config-default.php /etc/wordpress/config-comm.quarx.islocal.php
# vi /etc/wordpress/config-comm.quarx.islocal.php
- Wordpress パッケージから Apache の設定をコピーし編集する。 ベースにするのは一番上の VirtualHost の例
# cd /etc/apache2/sites-available
# cp /usr/share/doc/wordpress/examples/apache.conf wordpress-virtualhost.conf
# vi wordpress-virtualhost.conf
- rewrite:trace2 は、Rewriteモジュールでの書き換えを追いかけるためにログレベルを設定したもの。
- /wp-content 以下のファイルは、 /var/lib/wordpress/wp-content に入っている
- 固定ページはデータベース内に格納されるため、固定ページへのリクエストはファイルシステム上には存在しないファイルを指すことになる。(そうでないと、固定ページの表示に混乱が生ずるはず。)これらは、 /usr/share/wordpress/index.php に面倒を見てもらう。
- このあたりの書き換えは、 .htaccess に書くのが一般的なようだが、 /etc/wordpress/htaccess は使わないため、ここに書く。
<VirtualHost comm.quarx.islocal:80>
ServerName comm.quarx.islocal
UseCanonicalName Off
VirtualDocumentRoot /usr/share/wordpress
Options All
LogLevel rewrite:trace2
# wp-content in /var/lib/wordpress/wp-content/$0
RewriteEngine On
RewriteRule ^/wp-content/(.*)$ /var/lib/wordpress/wp-content/$1
RewriteCond /usr/share/wordpress/%{REQUEST_URI} !-f
RewriteCond /usr/share/wordpress/%{REQUEST_URI} !-d
RewriteRule . /usr/share/wordpress/index.php [END]
</VirtualHost>
- Apache のモジュールを有効化し、Wordpress サイトを有効化し、デフォルトサイトを無効化して Apache を起動する
# a2enmod rewrite && a2enmod vhost_alias
# a2ensite wordpress-virtualhost.conf && a2dissite 000-default.conf
# systemctl start apache2
- Wordpress で設定する
- ブラウザーで http://comm.quarx.islocal/ を開く
- Site Title:
Username:
Password:
Your Email:
を設定する。
- 管理画面 の 一般設定で、Wordpressアドレスと、サイトアドレスを comm.quarx.islocal とする。
- 管理画面 の Permalink 設定で、post-name にする。
- 固定ページを作成して、表示できればOK。
最近のコメント