Ubuntu 16.04: CMSのDrupalをインストールする

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

1 Drupalをインストールする

  • この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
  • httpではなくhttpを使用する場合は、/etc/apache2/sites-available/drupal.confにて、443を80にしてSSLXXXのディレクティブを削除してください。
  • MYSQL_PASSWDはMySQLで使うrootユーザのパスワードで、DRUPAL_PASSWDはMySQLで使うdrupal7ユーザのパスワードです。
#!/bin/sh

set -e

MYSQL_VERSION=5.7
[ -z "${MYSQL_PASSWD}" ] && \
  MYSQL_PASSWD=mysql
[ -z "${DRUPAL_PASSWD}" ] && \
  DRUPAL_PASSWD=drupal

ubuntu_install_postfix()
{
  cat <<EOF | sudo debconf-set-selections
postfix postfix/main_mailer_type select No configuration
EOF
  sudo apt install -y postfix

  cat <<EOF | sudo tee /etc/postfix/main.cf
compatibility_level = 2
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix/sbin
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = localhost
inet_interfaces = all
mydestination = localhost
local_recipient_maps = unix:passwd.byname \$alias_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = subnet
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtpd_banner = \$myhostname ESMTP \$mail_name (Ubuntu)
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd \$daemon_directory/\$process_name \$process_id & sleep 5
sendmail_path = /usr/sbin/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
inet_protocols = ipv4
EOF

  sudo newaliases
  sudo systemctl enable postfix
  sudo systemctl restart postfix
}

ubuntu_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
}

ubuntu_install_drupal()
{
  cat <<EOF | sudo debconf-set-selections
drupal7 drupal7/dbconfig-install boolean true
drupal7 drupal7/mysql/admin-pass password ${MYSQL_PASSWD}
drupal7 drupal7/password-confirm password ${MYSQL_PASSWD}
drupal7 drupal7/mysql/app-pass password ${DRUPAL_PASSWD}
drupal7 drupal7/app-password-confirm password ${DRUPAL_PASSWD}
EOF
  sudo apt install -y drupal7
}

ubuntu_install_apache()
{
  sudo apt install -y apache2 libapache2-mod-php

  sudo mv /etc/apache2/conf-available/drupal7.conf \
       /etc/apache2/conf-available/drupal7.conf.orig
  cat <<EOF | sudo tee /etc/apache2/conf-available/drupal7.conf
<VirtualHost _default_:443>
  SSLEngine on
  SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
  SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

$(sed -e 's/^/  /g' /etc/apache2/conf-available/drupal7.conf.orig)
</VirtualHost>
EOF

  sudo a2enmod php7.0
  sudo a2enmod ssl
  sudo a2enconf drupal7
  sudo systemctl enable apache2
  sudo systemctl restart apache2
}

ubuntu_main()
{
  ubuntu_install_postfix
  ubuntu_install_mysql
  ubuntu_install_drupal
  ubuntu_install_apache
}

ubuntu_main

2 Drupalへアクセスする

以下のURLにアクセスしてDrupalをセットアップします。

https://<server>/drupal7/install.php

セットアップ後は以下のURLにアクセスします。

https://<server>/drupal7/