「RockyLinux9」への「WordPress」のインストールはこちらで説明しています。
WordPressを動作させる
最新のWordPressをダウンロードとドキュメント・ルートへ設置
・ホームディレクトリの仮のダウンロードディレクトリに移動
・WordPress 最新版のダウンロード
・圧縮ファイルを展開
・WordPress ディレクトリ全体を、Apacheのドキュメント・ルートへ移動
・必要に応じて、「wordpress」ディレクトリ名を自分の環境へ変更
・WordPressディレクトリ全体の、ユーザーとグループの変更
$ cd ~/Downloads/
$ wget https://ja.wordpress.org/latest-ja.tar.gz
$ tar xvzf latest-ja.tar.gz
$ sudo mv ./wordpress/ /home/www/html/
$ cd /home/www/html/
$ sudo mv ./wordpress/ ./blog/
$ sudo chown -R apache:apache ./blog/
MariaDBにデータベースと管理ユーザーの設定
「CREATE DATABASE」でWordPress用のデータベースを作成し
「GRANT ALL ON」でデータベースへ全権限を持つ ユーザを作成します。
mariaDBに wordpress用のデータベースを作成前に、設定情報をメモしておきます。
・データベース名:WpDb
・ユーザー名:WpAdmin
・パスワード:WpPasswd
・データベースホスト:local
$ mysql -u root -p[パスワード] <----- -pの後スペースなし
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE WpDb; <--- データベース作成
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> SHOW DATABASES; <---- データベース確認
+--------------------+
| Database |
+--------------------+
| WpDb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.001 sec)
<---------- 作成したデータベースの管理者ユーザーの作成
MariaDB [(none)]> GRANT ALL ON WpDb.* TO 'WpAdmin'@'localhost' IDENTIFIED By 'WpPasswd';
Query OK, 0 rows affected (0.008 sec)
MariaDB [(none)]> USE mysql <---- 管理者ユーザーのデータベースは「mysql」
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> SELECT user,host from user; <---- ユーザーデータベースの確認
+-----------------+-----------+
| User | Host |
+-----------------+-----------+
| WpDb | localhost |
| mariadb.sys | localhost |
| mysql | localhost |
| root | localhost |
+-----------------+-----------+
4 rows in set (0.003 sec)
MariaDB [mysql]> SHOW GRANTS FOR 'WpAdmin'@'localhost'; <--- 権限の確認
+------------------------------------------------------------------------------------------------------------------------+
| Grants for WpAdministrator@localhost |
+------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `WpAdmin`@`localhost` IDENTIFIED BY PASSWORD '*1234567AABBB2024A1B2222CC33344A2014Z' |
| GRANT ALL PRIVILEGES ON `WpDb`.* TO `WpAdmin`@`localhost` |
+------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
MariaDB [mysql]> quit
Bye
WordPress 初期設定
さあ、準備が完了したので、アドレスバーに公開サイトURLを入力すると「初期画面」が出てくるはずですが、前回の「RockyLinux」同様、エラーが出てしまいました。
「php-mysql*」の状態を調べてみます
$ dpkg -l | grep php-mysql
l$ apt list php-mysql*
一覧表示... 完了
php-mysql/noble 2:8.3+93ubuntu2 all
「RockyLinux9」では、「php-mysqlnd」が必要でしたが、「ubuntu2.4」では「php-mysql」のようなのでインストールします
$ sudo apt install php-mysql
インストール後再度公開サイトへアクセスすると、無事に初期設定 画面がでてきました。
「さぁ、始めましょう!」をクリックする事で、次の「ようこそ」画面で必要情報を入力する事でサンプルページが出てきます。
確認が済んだら、設定した「データベースのユーザー名」などの情報は、/home/www/html/blog/wp-config.phpに書かれているので、アクセス権は厳しくしておきます
$ cd /home/www/html/blog
$ sudo chmod 600 ./wp-config.php
Apacheの、rewriteモジュールとAllowOverrideの設定
WordPress設定のパーマリンクで「基本」以外の設定にしたい場合、Apache上でURLの書き換えを行う「mod_rewrite」モジュールを有効にする必要があります。
したがって、「mod_rewrite.so」モジュールが組み込まれている必要があります。
またパーマリンクの設定で、「基本」以外に設定した場合、URLの書き換えを行う設定がWordPressのディレクトリ内の「.htaccess」として作成されます。
apacheは「.htaccess」を見つけると、この設定を有効にしますが、AllowOverride がNoneで設定されていると「.htaccess」は無視されます。
「mod_rewriteモジュール」と「AllowOverride ディレクティブ」の確認を行います
$ ls /etc/apache2/mods-enabled/ | grep rewrite
・・ <--- 有効になっていない
$ ls /etc/apache2/mods-available/ | grep rewrite
rewrite.load
・・ <--- 設定ファイルはあるので、有効にする
$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
systemctl restart apache2
・・ <--- AllowOverrideの設定ファイルを作成
$ cd /etc/apache2/conf-available
$ sudo vi ./wordpress.conf
<Directory "/home/www/html/blog">
AllowOverride All
</Directory>
・・ <--- 設定ファイル保存し、有効にする
$ sudo a2enconf wordpress
Enabling conf wordpress.
To activate the new configuration, you need to run:
systemctl reload apache2
WordPress バックアップとリストア
バックアップの詳細はこちらで紹介しているので、興味あればご確認ください
今回以前自作した、バックアップとリストアのスクリプトをダウンロード可能にしました。
環境をあわせれば、使用できると思いますし、スクリプトなのでご自身の環境に合わせる事で使用できると思います。
スクリプトの環境
基本的は構造は下記になります。
・「自分のホームディレクトリ」に「bin」ディレクトリを作成
・「bin」にスクリプトを保存し、スクリプトには実行権限「+X」もしくは「700」に設定
・「自分のホームディレクトリ」にバックアップ用「Backup」ディレクトリを作成
・「Backup」に「MariaDB」と「WordPress」のバックアップ用ディレクトリを作成
$ cd <—– ホームディレクトリに移動
$ mkdir ./bin <—– スクリプトを保存するディレクトリ
$ mkdir ./Backup <—– バックアップ保存用ディレクトリ
$ mkdir ./Backup/MariaDB <——– MariaDBデータ保存用ディレクトリ
$ mkdir ./Backup/Wp-content <—— WordPressコンテンツ保存用ディレクトリ
スクリプトのダウンロードと展開
下記からダウンロードし、展開して使用します。
https://www.kazuban.com/soft/wordpress-back-restore.tar.gz
$ cd
$ wget https://www.kazuban.com/soft/wordpress-back-restore.tar.gz
$ tar xvzf wordpress-back-restore.tar.gz
$ cd .bin
$ chmod 700 ./*
$ ls
MariaDB_Backup.sh MariaDB_Restore.sh Tidyup_backfile.sh Wp-ContentRestore.sh Wp-Content_Backup.sh
5個のスクリプトが展開されます。
・MariaDB_Backup.sh MariaDBデータベースのバックアップ
・MariaDB_Restore.sh MariaDBデータベースの復元
・Tidyup_backfile.sh バックアップデータの整理
・Wp-ContentRestore.sh WordPressコンテンツの復元
・Wp-Content_Backup.sh WordPressコンテンツのバックアップ
自分の環境に合わせて、編集
MariaDBデータベースのバックアップスクリプト
自分の環境に合わせて、変数を編集します。
#!/bin/sh
#
# MariaDB_Backup.sh 2023/12
#
#------------------------------------
BackupDir="/home/hogehoge/Backup/MariaDB" <-------- バックアップディレクトリ
MysqlUser="WpAdmin" <-------- WordPressのユーザー
MysqlUserPasswd="WpPasswd" <-------- WordPressユーザーのパスワード
TidyUpScript="/home/hogehoge/bin/Tidyup_backfile.sh" <---- データ整理スクリプト
DaysAgo="4" <-------- データを整理する日数
LOG="mariadb_backup.log" <------- ログファイル名
#------------------------------------
・
・
実行すると、バックアップを開始します。
設定されている、バックアップディレクトリに、
「実行時の日付」-MariaDB.bak の名前で保存されます
もし、古いバックアップがある場合、その作成日が「DaysAgo=”4″」より古い場合削除されます
MariaDBデータベースの復元スクリプト
自分の環境に合わせて、変数を編集します。
#!/bin/sh
#
# MariaDB_Restore.sh 2024/02
#
#------------------------------------
BackupDir="/home/hogehoge/Backup/MariaDB" <-------- バックアップディレクトリ
MySqlPasswd="Password" <-------- MariaDBのパスワード
DataBase="WpDb" <-------- WordPressデータベース
#------------------------------------
PreBackup="Y" # Do you want to back up? Y/N <---- 事前バックアップの有無
PreBackupFile="Pre-Backup.bak" <------事前バックアップのファイル名
MysqlUser="WpAdmin" <----- WordPressデータベースユーザー
MysqlUserPasswd="WpPassword" <-------- WordPressユーザーのパスワード
BackupScript="/home/hogehoge/bin/MarinaDB_Backup.sh"
#------------------------------------
echo "--------------------"
・
・
復元スクリプトは、引数なしで実行すると、バックアップディレクトリに保存されているファイルのリストを表示するので、再度バックアップしたい日付のファイルを引数に指定して実行します。
「PreBackup=”Y”」に設定されている場合には、
復元前の状態のバックアップととり、確認後復元を開始します
$ ./MariaDB_Restore.sh <---- 引数なしで実行
--------------------
/home/hogehoge/Backup/MariaDB <----- バックアップディレクトリ内のファイルを表示
20240625-MariaDB.bak
20240626-MariaDB.bak
20240627-MariaDB.bak
20240628-MariaDB.bak
20240629-MariaDB.bak
--------------------
MariaDB_Restore.sh [Backup file name]
--------------------
-- You are able to select from the list above.--
--------------------
$ ./MariaDB_Restore.sh 20240629-MariaDB.bak <---- ファイルを指定して再実行
--------------------
/home/hogehoge/Backup/MariaDB
20240629-MariaDB.bak
--------------------
--------------------
preliminary backup start. <----- 実行前データバックアップ
mysqldump -u WpAdmin -pWpPassword -h localhost -A > 20240629-Pre-Backup.bak
-- The backup is complete. --
--------------------
-- Mysql restore start --
mysql -u root -pPassword WpDb < 20240629-MariaDB.bak
Restore?(y/n):y <----- 確認
WordPress内容の復元スクリプト
自分の環境に合わせて、変数を編集します。
#!/bin/sh
#
# WP-contentRestor.sh 2024/02
#
#--------------------------------------------
BackupDir="/home/hogehoge/Backup/Wp-content" <---- WordPressのバックアップディレクトリ
WordPressWpContentDir="/home/www/html/blog/wp-content" <----WordPressコンテンツ本体
#------------------------------------
echo "--------------------"
・
・
MariaDBと同様に、引数なしで実行すると、バックアップディレクトリに保存されているファイルのリストを表示するので、再度バックアップしたい日付のファイルを引数に指定して実行します
復元前の状態のバックアップととり、確認後復元を実行します
$ ./Wp-ContentRestore.sh
--------------------
/home/hogehoge/Backup/Wp-content <----- バックアップディレクトリ内のファイルを表示
20240625-Wp-content.tar.gz
20240626-Wp-content.tar.gz
20240627-Wp-content.tar.gz
20240628-Wp-content.tar.gz
20240629-Wp-content.tar.gz
wp-content_backup.log
--------------------
Wp-content_Backup.sh [????????-Wp-content.tar.gz]
--------------------
-- You are able to select from the list above.--
--------------------
$ ./Wp-ContentRestore.sh 20240629-Wp-content.tar.gz <---- ファイルを指定して再実行
--------------------
/home/hogehoge/Backup/Wp-content
20240625-Wp-content.tar.gz
20240626-Wp-content.tar.gz
20240627-Wp-content.tar.gz
20240628-Wp-content.tar.gz
20240629-Wp-content.tar.gz
wp-content_backup.log
--------------------
--------------------
/home/hogehoge/Backup/Wp-content
tar xzf 20240629-Wp-content.tar.gz <----展開、容量により時間がかかります
---- Restore --------
sudo mv /home/www/html/blog/wp-content /home/www/html/blog/wp-content-20240629
sudo mv /home/hogehoge/Backup/Wp-content /home/www/html/blog/wp-content /home/www/html/blog/wp-content
sudo chown -R apache:apache /home/www/html/blog/wp-content/
Restore completed!
--------------------
WordPress内容のバックアップスクリプト
自分の環境に合わせて、変数を編集します。
#!/bin/sh
#
# WP-content_Backup.sh 2020/03
# 2023/12
#
#--------------------------------------------
BackupToDir="/home/hogehoge/Backup/Wp-content" <-- WordPressのバックアップディレクトリ
BackupSorceDir="/home/www/html/blog/wp-content"<----WordPressコンテンツ本体
TidyUpScript="/home/hogehoge/bin/Tidyup_backfile.sh" <---- データ整理スクリプト
DaysAgo="4" <-------- データを整理する日数
LOG="wp-content_backup.log" <------- ログファイル名
#--------- Help -----------------------------
・
・
バックアップは引数なしで実行が始まります。
事前にWordPressのディレクトリを日付付きのファイルに圧縮して保存します
$ ./Wp-Content_Backup.sh
tar czf 20240629-Wp-content.tar.gz /home/www/html/blog/wp-content/ <---- 事前バックアップ
rm 20240625* <--- バックアップファイル整理
rm 20240626*
バックアップ自動化
Linux の「Crontab」コマンドで、スケジューリングする事で自動的にバックアップする事も可能になります。
「crontab -e」でスケジュールを編集し、「crontab -l」で確認できます。
また、「MAILTO=」を設定する事で、指定ユーザーに結果をメールを送信してくれます
$ crontab -e
MAILTO=root
00 1 * * * /home/hogehoge/bin/MariaDB_Backup.sh
30 1 * * * /home/hogehoge/bin/Wp-Content_Backup.sh
$ crontab -l
MAILTO=root
00 1 * * * /home/hogehoge/bin/MariaDB_Backup.sh
30 1 * * * /home/hogehoge/bin/Wp-Content_Backup.sh
これで、プラグインを使用しなくても、Wordpressのバックアップが可能になりました。
Ubuntu24.04LTSでWordPressを構築する記事一覧
WordPress インストール、バックアップと復元
コメント