====== WordPressインストール ======
[[https://am-i774.f5.si//|WordPress]]をRaspbian(buster)へ構築した際のメモ\\
**参考情報**
[[https://www.ingenious.jp/articles/howto/raspberry-pi-howto/wordpress-server-setup/|Raspberry Pi WordPressサーバの構築]]
===== PHP7.4インストール =====
WordPressのシステム要件であるPHP7.4をインストールする。ただし、Raspbian(buster)のリポジトリには7.3までしか存在しないため、[[https://deb.sury.org/|SURY PPAリポジトリ]]からインストールする。
まず、SURY PPAリポジトリを使用するため必要なパッケージをインストールする。
$ sudo apt install lsb-release apt-transport-https ca-certificates
PHPのGPGキーを取得する。
$ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
SURY PPAリポジトリ情報を追加する。
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
deb https://packages.sury.org/php/ buster main
aptのパッケージ情報を更新し、インストール可能なPHPバージョンを確認する。
$ sudo apt-get update -y
$ sudo apt-get upgrade
$ sudo apt -a list php7.4
PHP7.4をインストールする。
$ sudo apt-get install php7.4
$ php -v
==== PHPモジュールのインストール ====
WordPressに必要なPHPモジュールをインストールする。
$ sudo apt-get install php7.4-curl php7.4-json php7.4-mbstring php7.4-mysql php7.4-imagick php7.4-xml php7.4-zip php7.4-intl
$ sudo apt-get install php7.4-fpm
==== PHP設定 ====
PHPの設定を行う。
$ vi /etc/php/7.4/apache2/php.ini
[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese
memory_limit = 128M
post_max_size = 40M
upload_max_filesize = 30M
===== ApacheのPHPモジュール設定 =====
Apacheで稼働しているPHPバージョンを、phpinfoで確認する。
Apacheで有効になっているモジュールを確認する。
$ ls -l /etc/apache2/mods-available/php* /etc/apache2/mods-enabled/php*
古いバージョンが有効であれば無効化し、PHP7.4を有効化する。
$ sudo a2dismod php7.3.conf php7.3.load
$ sudo a2enmod php7.4.conf php7.4.load
$ ls -l /etc/apache2/mods-available/php* /etc/apache2/mods-enabled/php*
Apacheを再起動し、新しいモジュールを有効化する。
$ sudo systemctl restart apache2
$ sudo systemctl status apache2
モジュールのバージョンは、phpinfoで確認する。
==== ServerNameディレクティブの設定 ====
Apacheをマルチドメイン構成にしているので、該当のドメイン設定ファイルを編集する。
$ su vi /etc/apache2/sites-available/domain2.com
ServerName domain2.com
==== DirectoryIndexディレクティブの設定 ====
Apacheへのアクセスでファイル名が省略された時にデフォルトで**index.php**が選択されるように設定する。
$ sudo vi /etc/apache2/mods-available/dir.conf
**index.php**を最初に設定する。
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
==== Rewriteモジュールの有効化 ====
Apacheの有効なモジュールに**rewrite_module**があることを確認する。
$ sudo apache2ctl -M
(snip)
rewrite_module (shared)
有効でない場合は有効化する。
$ sudo a2enmod rewrite
新たに有効化した場合はApacheを再起動する。
$ sudo systemctl restart apache2
$ sudo systemctl status apache2
==== MariaDBのインストール ====
$ sudo apt install mariadb-server-10.3
=== MariaDBの初期設定 ===
$ sudo mysql_secure_installation
(snip)
Set root password? [Y/n] Y
(snip)
Remove anonymous users? [Y/n] Y
(snip)
Disallow root login remotely? [Y/n] Y
(snip)
Remove test database and access to it? [Y/n] Y
(snip)
Reload privilege tables now? [Y/n] Y
(snip)
==== 初期設定の変更 ====
$ sudo mysql -u root -p
(snip)
MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by 'Password' with grant option;
(snip)
MariaDB [(none)]> flush privileges;
(snip)
MariaDB [(none)]> quit
DB接続を確認する。
$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2026
Server version: 10.3.38-MariaDB-0+deb10u1 Raspbian 10
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)]> quit
Bye
$
==== データベースの作成 ====
$ mysql -u root -p
Enter password:
(snip)
MariaDB [(none)]> CREATE DATABASE db_wordpress;
(snip)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| db_wordpress |
| information_schema |
| performance_schema |
+--------------------+
4 rows in set (0.002 sec)
MariaDB [(none)]> quit
Bye
$
===== WordPressのインストール =====
WordPresssサイトから[[https://ja.wordpress.org/latest-ja.tar.gz|最新版]]をダウンロードし、Document Rootに展開します。
$ wget https://ja.wordpress.org/latest-ja.tar.gz
$ ls -l
$ tar tvzf latest-ja.tar.gz
$ tar xvzf latest-ja.tar.gz
$ cp -R wordpress/* /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
インストールスクリプトを使ってセットアップします。
https://ドメイン名/wp-admin/install.php
===== Apache2設定例 =====
ServerName www.domain2.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/www.domain2.com
Options FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain2.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
ServerName www.domain2.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/www.domain2.com
Options FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/www.domain2.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain2.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf