Ubuntu 18.04: CMSのWordPressをインストールする

コンテンツマネージメントシステムのWordPressをインストールする手順を記載します。

1 WordPressをインストールする

  • WORDPRESS_DOMAINをお使いの環境のFQDNに変更してください。
  • この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
  • httpではなくhttpを使用する場合は、/etc/apache2/sites-available/wordpress.confにて、443を80にしてSSLXXXのディレクティブを削除してください。
#!/bin/sh -e

[ -z "${WORDPRESS_DOMAIN}" ] && \
  WORDPRESS_DOMAIN=$(hostname)
[ -z "${WORDPRESS_SITENAME}" ] && \
  WORDPRESS_SITENAME=wordpress
MYSQL_VERSION=5.7
[ -z "${MYSQL_PASSWD}" ] && \
  MYSQL_PASSWD=mysql

mysql_install()
{
  cat <<EOF | sudo debconf-set-selections
mysql-server-${MYSQL_VERSION} mysql-server/root_password password ${MYSQL_PASSWD}
mysql-server-${MYSQL_VERSION} mysql-server/root_password_again password ${MYSQL_PASSWD}
EOF
  sudo apt install -y mysql-server
}

wordpress_install()
{
  sudo apt install -y wordpress

  # Change filesystem access method from FTP to direct.
  # This will change plugin installation via FTP to plugin installation
  # with direct filesystem access.
  sudo sed -e "s/^<?php/<?php\ndefine('FS_METHOD', 'direct');/g" \
       -i /usr/share/wordpress/wp-config.php

  TMP=$(mktemp -t wordpress.sh.XXXXXX)
  trap 'rm $TMP* 2>/dev/null' 0
  zcat /usr/share/doc/wordpress/examples/setup-mysql.gz > "${TMP}"

  # You can select remote mysql server with -t option.
  # You can set mysql database username with -u option.
  sudo bash "${TMP}" -n "${WORDPRESS_SITENAME}" "${WORDPRESS_DOMAIN}"
}

apache_install()
{
  sudo apt install -y apache2
  cat <<EOF | sudo tee /etc/apache2/sites-available/wordpress.conf
<VirtualHost _default_:443>
  SSLEngine on
  SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
  SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

  ServerName ${WORDPRESS_DOMAIN}
  DocumentRoot /usr/share/wordpress/
  DirectoryIndex index.php index.html
  ErrorLog /var/log/apache2/wp-error.log
  TransferLog /var/log/apache2/wp-access.log
  Alias /wp-content /var/lib/wordpress/wp-content

  <Directory /usr/share/wordpress>
    Options FollowSymLinks
    Require all granted
  </Directory>

  <Directory /var/lib/wordpress/wp-content>
    Options FollowSymLinks
    Require all granted
  </Directory>
</VirtualHost>
EOF
  sudo a2enmod ssl
  sudo a2ensite wordpress
  sudo systemctl enable apache2
  sudo systemctl restart apache2
}

wordpress_main()
{
  mysql_install
  wordpress_install
  apache_install
}

wordpress_main

2 WordPressへアクセスする

WORDPRESS_DOMAINで設定したFQDNにhttps経由でアクセスします。ブラウザでこのページの証明書を許可してください。

https://<WORDPRESS_DOMAIN>

0001_WordPress.png