Ubuntu 20.04/18.04にWordPress環境構築


基本的に20.04を前提に記載。
18.0420.04とおもに以下が異なる。

  • PHPバージョンはPHP 7.2
  • MySQL 5.7がインストール可能

バージョン&アーキテクチャ確認

# バージョンを確認
$ sudo cat /etc/lsb-release
// DISTRIB_ID=Ubuntu
// DISTRIB_RELEASE=20.04
// DISTRIB_CODENAME=focal
// DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
# アーキテクチャを確認
$ sudo arch
// x86_64

Ubuntu パッケージ

apt update -y && apt upgrade -y

  1. apt update:リポジトリから有効で更新可能なパッケージ一覧を取得
  2. apt upgrade:パッケージをアップデート

apt updateだけではパッケージのアップデートしない。

$ sudo apt update -y && sudo apt upgrade -y

Ubuntu Packages Search

以下でインストール可能なUbuntuパッケージを検索できる。
Ubuntu – Ubuntu パッケージ検索

登録リポジトリ確認

$ cat /etc/apt/sources.list

ref. https://kujira16.hateblo.jp/entry/2019/10/14/190008

インストール済みパッケージ一覧

$ sudo apt list --installed

ref. https://news.mynavi.jp/article/20190222-775519/

パッケージインストール

  1. Ubuntu – Ubuntu パッケージ検索で対象パッケージを検索
  2. $ apt install {{package}}

Apache

$ sudo apt install apache2

PHP

$ sudo apt install php

上記を実行すると以下パッケージがインストールされる。

$ sudo apt list --installed | grep php

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libapache2-mod-php7.4/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 amd64 [installed,automatic]
php-common/focal,now 2:75 all [installed,automatic]
php7.4-cli/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 amd64 [installed,automatic]
php7.4-common/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 amd64 [installed,automatic]
php7.4-json/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 amd64 [installed,automatic]
php7.4-opcache/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 amd64 [installed,automatic]
php7.4-readline/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 amd64 [installed,automatic]
php7.4/focal-updates,focal-security,now 7.4.3-4ubuntu2.4 all [installed,automatic]
php/focal,now 2:7.4+75 all [installed]
WordPressに必要な拡張モジュール(extnsions)をインストール

インストール済みの拡張モジュールを表示。

$ php -m
calendar
Core
ctype
date
exif
FFI
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

WordPressに必要なモジュールは以下リンク参照。
https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

足りないモジュールをインストールする。

  • curl
  • dom
  • mbstring
  • mysqli
  • imagick
  • xml
  • zip
// Ubuntu 20.04
$ sudo apt install php7.4-curl php7.4-dom php7.4-mbstring php7.4-mysqli php7.4-imagick php7.4-xml php7.4-zip

18.04は、7.47.2にする(ただしphp7.4-imagickphp-imagick)。

imagickGD

WordPress画像関連処理は、imagickを使用。imagickがインストールされていないときはフォールバックとしてGDを使用。
なのでimagickをインストールすれば良い。

imagick – Provides better image quality for media uploads. See WP_Image_Editor is incoming! for details. Smarter image resizing (for smaller images) and PDF thumbnail support, when Ghost Script is also available.

gd – If Imagick isn’t installed, the GD Graphics Library is used as a functionally limited fallback for image manipulation.

Server Environment

参考までに18.04php-imagckphp-gdをインストールする方法を記載する。

imagickインストール

$ sudo apt install php7.2-imagick

GDインストール

imagickがインストールできない場合はGDをインストール。

$ sudo apt install php7.2-gd

ref. https://packages.ubuntu.com/ja/bionic/php7.2-gd

Apache再起動
$ sudo apachectl graceful

以下メッセージが表示されたら/etc/apache2.confServerName xxx.xxx.xxx.xxxxを追記。
/etc/apache2/sites-availables/000-default.confに追加してもエラーは解消されない)

sudo apachectl graceful
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxxx. Set the 'ServerName' directive globally to suppress this message

MySQL

Ubuntu 20.04のリポジトリにはMySQL 5.7はないが、以下を参考にインストール。
https://computingforgeeks.com/how-to-install-mysql-on-ubuntu-focal/

18.04

MySQL 5.7がインストール可能。
以下に留意。

  • MySQL 5.7はインストールした状態ではsudoなしではアクセスできない
  • sudo mysql_secure_installationを実行
  • sudo無しで接続するためsudoでログインした後にパスワード変更(sudo有りだとWordPressから接続するときに面倒)
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{{password}}';

ref. https://note.com/junf/n/na40fbca9e6ea

なにかあって、MySQL 5.7を完全に削除したいときは、以下記事を参考にする。
https://qiita.com/King_kenshi/items/b6f217a8a3083c98904b

sudo apt-get remove --purge mysql-server* mysql-common
sudo apt-get autoremove --purge
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql

WordPressインストール

  1. 本体ダウンロード
  2. データベース作成
  3. htmlディレクトリ所有者:グループ変更
  4. テストデータ挿入

本体ダウンロード

$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar -xzvf latest-ja.tar.gz

データベース作成

mysql > CREATE DATABASE <database> DEFAULT CHARACTER SET utf8mb4;

htmlディレクトリ所有者:グループ変更

$ chown -R www-data:www-data /var/www/html

www-dataUbuntu 20.04/18.04にインストールしたApacheのユーザーグループ
/etc/apache2/apache2.confに下記記載がある。

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

/etc/apache2/envvarsの記載。

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

テストデータ挿入

  1. WP-CLIインストール
  2. wordpress-importer有効化
  3. テストデータ(wordpress-theme-test-data-ja.xml) インポート

WP-CLIインストール

$ sudo curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ sudo chmod u+x wp-cli.phar
$ sudo mv ./wp-cli.phar /usr/bin/wp

wordpress-importer有効化

$ sudo wp plugin install wordpress-importer --activate

テストデータ(wordpress-theme-test-data-ja.xml) インポート

$ cd /var/www/html/wordpress
$ sudo curl -O sudo curl -O https://raw.githubusercontent.com/WPTT/theme-unit-test/master/themeunittestdata.wordpress.xml
$ sudo wp import themeunittestdata.wordpress.xml --authors=create --allow-root

テストデータとして挿入されるuploads配下の画像ファイル(およびディレクトリ)はユーザー・グループともにroot
そのままではWordPressで画像編集ができないのでユーザー・グループをwww-dataに変更。

$ chown -R www-data:www-data /var/www/html/wp-content/uploads

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。