基本的に20.04
を前提に記載する。
18.04
の場合は適宜読み替える。
WordPress関連では18.04は以下の違いがある。
以下AWS EC2を仮定するので、ほとんどsudo
で実行する。
AWSの初期設定ではほとんどのコマンドをsudoをつけないと実行できない。
以下のようにrootにスイッチすることもできる(備忘録のために記載しているがrootのままでいるのは危険なので推奨はしない)。
$ sudo su -
# バージョンを確認
$ sudo cat /etc/os-release
// DISTRIB_ID=Ubuntu
// DISTRIB_RELEASE=20.04
// DISTRIB_CODENAME=focal
// DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
# アーキテクチャを確認
$ sudo arch
// x86_64
apt update
:リポジトリから有効で更新可能なパッケージ一覧を取得apt upgrade
:パッケージをアップデート$ sudo apt update -y && sudo apt upgrade -y
$ sudo 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/
$ apt install {{package}}
$ sudo apt install apache2
$ 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]
インストール済みの拡張モジュールを確認する。
$ 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
足りない拡張モジュールをインストールする。
// 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
※ Ubuntu 18.04は、上記をphp7.2
に置き換える(ただしphp7.4-imagick
はphp-imagick
)。
imagick
とGD
WordPressの画像関連処理では、imagick
がインストールされていないときはフォールバックとしてGD
が使用される.
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.
https://make.wordpress.org/hosting/handbook/handbook/server-environment/
Ubuntu 18.04にphp-imagck
,php-gd
をインストールする方法は以下のとおり。
imagickインストール
$ sudo apt install php-imagick
※バージョンを指定しない(php7.2-imagick
はNG)
GDインストール
imagick
がインストールできない場合にインストール。
$ sudo apt install php7.2-gd
ref. https://packages.ubuntu.com/ja/bionic/php7.2-gd
$ sudo apachectl graceful
以下メッセージが表示されたら/etc/apache2.conf
にServerName 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
Ubuntu 20.04のリポジトリにはMySQL 5.7はないが、以下を参考にインストール。
https://computingforgeeks.com/how-to-install-mysql-on-ubuntu-focal/
MySQL 5.7がインストール可能。
$ sudo apt install mysql-server
以下に留意。
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を完全に削除したいときは、以下記事を参考にする。
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
$ sudo usermod -a -G www-data ubuntu
$ sudo chown -R ubuntu:www-data /var/www
$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar -xzvf latest-ja.tar.gz
WordPress用データベース作成
mysql > CREATE DATABASE <database> DEFAULT CHARACTER SET utf8mb4;
/var/www/html
の所有者変更
$ sudo chown -R www-data:www-data /var/www/html
www-data
はUbuntu 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
wp-cli
インストールwordpress-importer
有効化$ 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
$ cd /var/www/html/wordpress
$ sudo curl -O https://raw.githubusercontent.com/jawordpressorg/theme-test-data-ja/master/wordpress-theme-test-data-ja.xml
$ sudo wp plugin install wordpress-importer --activate
$ sudo wp import wordpress-theme-test-data-ja.xml --authors=create --allow-root
※ 上記でテストデータをインストールした場合、テストデータとして挿入されるuploads配下のファイル(およびディレクトリ)はユーザー・グループともにroot
になる。
そのままでは画像編集ができないのでユーザー・グループをwww-data
に変更。
$ cd /path/to/wp-content
$ sudo chmod -R www-data uploads
$ sudo chgrp -R www-data uploads
Bad
$ apt remove php
Good
$ apt remove php-common
以下を例に記載。
/etc/letsencrypt/live/exxample.com/
に作成`)$ a2enmod ssl
で有効化/etc/apache2/sites-available
にバーチャルホスト用のconf
ファイル作成(例としてexample.com.conf)/etc/apache2/site-available/default-ssl.con
をコピー(example.com.conf
)を作成example.com.conf
にする(ドメイン名.conf
)$ a2ensite example.com
でSite example.com does not exist!
が発生する場合があるexample.com.conf
にSSL用バーチャルホスト設定$ apachectl configtest
$ a2enmod ssl
$ apachectl graceful
(推奨)または$ service apache2 reload
apachectl graceful
は、AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.3. Set the 'ServerName' directive globally to suppress this message
が発生apache graceful
で上記メッセージが表示されたら/etc/apache2.conf
にServerName xxx.xxx.xxx.xxxx
を追記。
(/etc/apache2/sites-availables/000-default.conf
に追加してもエラーは解消されない)
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/exxample.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>
deb(ディーイービー)は、Debianなどで利用されるソフトウェア・パッケージのフォーマット。
拡張子 ".deb" のファイルは、Debian、Ubuntuなど多くのLinuxディストリビューションで利用されるバイナリのパッケージである。これらのパッケージはgzipやbzip2、LZMAで圧縮された2つのアーカイブで構成される。そのうち1つはコントロールの情報、もう1つはデータを含む。
dpkg、aptまたはaptitudeでコントロールすることができる。