姉のワードプレスサイト立ち上げを手伝うことになりました。
デモサイトとして、現在WordPress稼働中のサーバに2つ目のワードプレスを導入したのですが、毎度のごとく手順は忘却の彼方。一から調べて結構な時間を費やしてしまいました。
近い将来、再度WordPressを構築する時の自分のため、手順や遭遇したトラブルを記録しておきます。
もし困っている誰かのためになれば嬉しいです。
Debian10にWordPressを導入する手順
まず手順を振り返ります。
PHPアップグレード
WordPressの管理画面でPHPバージョンが古いとメッセージが表示されてしまっています。
まずはPHPのアップグレードを実施。
server: $ sudo apt-get update
server: $ sudo apt-get upgrade
PHPは普通にアップグレードから保留されてしまったので、ディストリビューションのアップグレードを行います。
server: $ sudo apt-get dist-upgrade
これでPHP8.2 が導入されました。
apache2 の設定
PHP7.3のモジュールを無効化して、PHP8.2のモジュールを有効化します。
server: $ sudo a2dismod php7.3
server: $ sudo a2enmod php8.2
Let’s Encrypt でSSL化
サイトのSSL証明書は、CERTBOT を利用して、Let’s Encryptの認証局から取得する事にします。
server: $ sudo apt-get install certbot
まず、Apache のバーチャルホストを設定します。
/etc/apache2/sites-available/default-ssl.conf をコピーして編集します。
DocumentRootにドキュメントルート(今回はワードプレスの配置先を設定)
ServerName にドメイン名、ServerAlias には、*.ドメイン名を指定しました。
DocumentRoot /var/www/demo-site
ServerName demo-site.com
ServerAlias *.demo-site.com
ここまでやると、あとはcertbotが自動で設定を読み取って、証明書を取得してインストールまでやってくれます。
server: $ sudo certbot --apache
MySQLにデータベース作成
MySQLに今回作成するサイト用のデータベースを作成します。
mysql > CREATE DATABASE demo-site;
既存の環境で使用していたワードプレス管理ユーザ『wpadmin』を今回も使用することにします。
ということで、wpadminにデータベースの全権限をつけます。
mysql > GRANT ALL PRIVILEGES ON demo-site.* TO wpadmin@localhost;
WordPress のダウンロード 〜 配置
WordPressのソースコードをダウンロードして、サーバに配置します。
本家ダウンロードサイト: https://ja.wordpress.org/download/
サーバは、SSHが使用できるためSCPでサーバにコピーします。
pc:$ scp wordpress-6.1.1-ja.tar.gz demo-server:/var/www/demo-site/
サーバにリモートログイン。
pc:$ ssh demo-server
展開して配置します。
server: $ tar xzvf wordpress-6.1.1-ja.tar.gz
普通に展開すると、wordpress フォルダが作られてその配下にファイルが展開されます。
今回はドキュメントルート直下に配置したいため、
server: $ cd wordpress
server: $ mv * ..
あとはブラウザでの設定となる訳ですが、wordpressがソースコードを作ったりするのに、書き込み権限が必要となります。
ドキュメントルート配下のファイルのオーナーをapacheの実行ユーザ www-dataに変更しておきます。
server: $ chown -R /var/www/demo-site
管理画面にログインしてインストール続行
あとは、ブラウザで管理画面にログインして、データベース情報などを設定していきます。
トラブル
環境を作り直した際、インストール済みと判定されてしまう
構築後に訳あってまっさらな環境を作り直そうとしました。
mysqlでテーブルを全てドロップした後、再度インストールすべくwp-adminにアクセスしたのですが、何故かワードプレスにはインストール済みと判定されてしまいます。
『すでに wordpress をインストール済みのようです。再インストールするには、まず以前のデータベーステーブルを削除してください。』
以前のデータベーステーブルは全て削除してあるのに。
色々試行錯誤したのですが、どうやらmysql のクエリキャッシュが悪さをしていたようで、クエリキャッシュをクリアしたらインストールに進んでくれました。
mysql> RESET QUERY CACHE;
PHPのバージョンアップで非対応プラグインが引き起こす「重大なエラー」
PHPバージョンアップ後、「重大なエラー」が表示され、管理画面にログインできなくなってしまいました。
apacheのエラーログを見てみると、
[Sun Feb 05 14:22:23.504255 2023] [php:error] [pid 1971] [client 66.249.75.227:59170] PHP Fatal error: Uncaught TypeError: MailPoetVendor\\Carbon\\Carbon::setLastErrors(): Argument #1 ($lastErrors) must be of type array, bool given, called in /var/www/calapanshop/blog/wp-content/plugins/mailpoet/vendor-prefixed/nesbot/carbon/src/Carb...
MailPoetプラグインでエラーが起きている模様。
プラグインのエラーにより管理画面にログインできない時は、プラグインフォルダの名称を変更してプラグインを読み込ませないようにすると、管理画面が表示できるようになります。
server:$ cd wp-content
server:$ mv plugins plugins_bk
管理画面で該当プラグインを削除した後、プラグインフォルダ名を戻しておきます。
server:$ mv plugins_bk plugins
テーマファイルアップロードで「辿ったリンクは期限が切れています」エラー
このエラーは、サイズの大きすぎるファイルをアップロードすると出るようです。
とは言っても、アップロードファイルのサイズは15M
念の為、PHP8.2の設定を見てみると、、
server: $ sudo vi /etc/php/8.2/apache2/php.ini
なんと、POSTデータのサイズ上限が8M、アップロードのファイルサイズ上限が2Mになっています。
post_max_size = 8M
upload_max_filesize = 2M
両方とも、128Mに変更して、apache再起動すると、15Mのテーマファイルがアップロードできるようになりました。
まとめ
今回は、2つ目のワードプレスを導入した際の手順とトラブルをメモに残しました。
コメント