Debian 8: 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

set -e

debian_install_mysql()
{
  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
}

debian_install_wordpress()
{
  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 debian-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}"
}

debian_install_apache()
{
  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
}

debian_main()
{
  [ -z "${WORDPRESS_DOMAIN}" ] && \
    WORDPRESS_DOMAIN=debian-8-wordpress.hiroom2.com
  [ -z "${WORDPRESS_SITENAME}" ] && \
    WORDPRESS_SITENAME=wordpress
  MYSQL_VERSION=5.5
  [ -z "${MYSQL_PASSWD}" ] && \
    MYSQL_PASSWD=mysql
  debian_install_mysql
  debian_install_wordpress
  debian_install_apache
}

debian_main

2 WordPressへアクセスする

WORDPRESS_DOMAINで設定したFQDNにhttps経由でアクセスします。

https://<WORDPRESS_DOMAIN>

マシンの証明書を組み込んでいないので、Chromeの場合は以下の警告が出てアクセスできません。"ADVANCED"を表示させて"Proceed to <server> (unsafe)"をクリックすることで、このウェブサイトに例外的にアクセスするようにします。

Firefox等でも同様にこのウェブサイトを例外的にアクセスできるようにしてください。

0001_YourConnectionIsNotPrivate.png

ロケールの設定画面が表示されます。

0002_SetLocale.png

アカウント作成画面が表示されます。アカウント作成の後にログインして、ブログ記事の投稿やWordPressの管理が可能になります。

0003_WordPress.png